今天的课件都无壳。

一  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++程序的核心代码区域

posted on 2019-04-03 09:33  vawa  阅读(1019)  评论(0编辑  收藏  举报