您的位置:首页 > 其它

简单去除exe自校验方式

2015-10-20 10:24 302 查看

简单去除exe自校验方式

一、 自校验定义:

这些程序会检查自己有没有被修改,如果发现被修改的话,便会离开或进行其它动作。基本的校检方法包括 checksum, 检查大小, 检查跳转代码,等等。

对于我们而言,如果脱壳后的程序运行起来跟脱壳前的程序运行起来不一样,基本上就可以断定为程序增加了自校验机制

二、 自校验示例:





[align=left]三、如何去除自校验:[/align]
[align=left]1. 先进行OD脱壳[/align]
[align=left]注:脱壳完毕后停留在脱壳界面,不要把OD关闭[/align]
[align=left]2. 再开启一个OD,打开脱壳后的程序[/align]
[align=left]3. 两个程序同时下断点 bp CreateFileA然后分别点击运行(F9)[/align]

注:在win7环境下无法OD无法使用这个命令进行断点,只要Ctrl+G, 输入"kernel32.CreateFileA",我们就可以定位到kernel32的CreateFileA了



[align=left]4. 两个OD都点击【Alt+F9】执行到用户代码[/align]

5. 两边同时单步(F8)往下走,查看两个程序是否有不一样的跳转(比如一个实现了一个没实现)



[align=left]6. 接下来我们要做的就是把脱壳后的文件的跳转让它不实现就可以了[/align]

① 最简单的方法就是直接把脱壳后的程序那里的跳转给NOP掉



②观察跳转的上一行汇编代码cmpeax,dword prt ss:[ebp-8],这是汇编代码,意思是eax和dwort进行比较,如果不相等就跳转,相等就不跳转,不懂可以百度,把它改成cmp eax,eax就可以了



③或者把jnz改成je或jz也可以,具体的意思可以去百度一下



7. 然后保存退出OD



8. 再次执行脱壳后的文件,OK,成功了

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: