[学习笔记]通过各语言特征码寻找按钮事件

今天的课件都无壳。

一  Delphi和BC++

DIE检测一下,是Delphi

[学习笔记]通过各语言特征码寻找按钮事件

 

OD载入

反汇编窗口右键---查找---二进制字符串

[学习笔记]通过各语言特征码寻找按钮事件

 

查看一下特征码

[学习笔记]通过各语言特征码寻找按钮事件

复制Delphi的特征码,粘贴进刚才打开的查找二进制的窗口

[学习笔记]通过各语言特征码寻找按钮事件

点击确定返回反汇编窗口。查看一下找到的第一个特征码

一般情况下,找到特征码对应的会是一个跳转,而跳转下面如果有一个CALL就说明是我们要找的,F2下断点。

如果跳转下面没有CALL就CTRL+L跳过,继续寻找下一个

(应对较大的程序可以直接用脚本搜索下断)

[学习笔记]通过各语言特征码寻找按钮事件

找到所有的搜索结果,并下好断点后,F9运行程序,输入假码,点击注册,程序会被断下来。

这个就是Delephi的按钮事件。

接下来就是F7依次进入设置断点的CALL里去寻找关键代码了。

[学习笔记]通过各语言特征码寻找按钮事件

 

二 VB

DIE看一下信息

[学习笔记]通过各语言特征码寻找按钮事件

载入OD,查找--二进制字符串,输入“816C24 ”

[学习笔记]通过各语言特征码寻找按钮事件

 

[学习笔记]通过各语言特征码寻找按钮事件

点确定后,发现找到了四个结果和结果下面的四个JMP。

依次下断。

[学习笔记]通过各语言特征码寻找按钮事件

F8单步,就进入了按钮事件的代码段。

 

三 MFC

DIE查看一下

[学习笔记]通过各语言特征码寻找按钮事件

发现识别出的语言是VC++,不是MFC

载入OD看一下到底是什么语言编写的

载入后,点击工具栏上的E按钮

[学习笔记]通过各语言特征码寻找按钮事件

有调用MFC42.DLL的就是MFC语言,正常的VC++是不会调用这个库的。

接下来在这一行双击回到反汇编窗口,右键---查找---命令,输入"sub eax,oa"

(VB比较特殊,这里查找的就不是二进制字符串了)

[学习笔记]通过各语言特征码寻找按钮事件

然后看一下查找的结果

[学习笔记]通过各语言特征码寻找按钮事件

[学习笔记]通过各语言特征码寻找按钮事件

然后跳到下一个特征码处,相同的方法继续找JE,回车跟随到跳转目的地找CALL

所有的特征码找一遍然后F9运行,依次进去检查下断点的CALL

 

四  易语言

 

[学习笔记]通过各语言特征码寻找按钮事件

 

 

OD载入,查找---二进制字符串,输入“FF25”,可以看到

(注意:这个FF25是易语言特征码,和下面的FF 55 FC 5F 5E不同,那是易语言按钮事件的特征码)

[学习笔记]通过各语言特征码寻找按钮事件

push 0x52010001 这一行未必每次都能出现,但下面的连续JUMP是一定会有的,视程序大小数量不同而已。

既然确定了是易语言,那就在“搜索二进制字符串”出输入易语言按钮事件的特征码“FF 55 FC 5F 5E”

[学习笔记]通过各语言特征码寻找按钮事件

 

五 VC++

 

[学习笔记]通过各语言特征码寻找按钮事件

 

[学习笔记]通过各语言特征码寻找按钮事件

[学习笔记]通过各语言特征码寻找按钮事件

[学习笔记]通过各语言特征码寻找按钮事件

回车跟到JE结尾处,下面会有一个CALL,在此处下断。

[学习笔记]通过各语言特征码寻找按钮事件

重新载入,F9运行,弹出的程序登录窗口任意输入假码注册,被OD断在刚才设置的断点处。F7进CALL

注意,此时并不是VC++程序的核心代码区域

[学习笔记]通过各语言特征码寻找按钮事件

[学习笔记]通过各语言特征码寻找按钮事件

上一篇:练习demo


下一篇:(10)交通预测-如何在深度学习框架下考虑动态时空相似性? - 案例研究