码迷,mamicode.com
首页 > 其他好文 > 详细

手脱PECompact v2.xx

时间:2019-12-09 10:27:39      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:出现   对比   运行   跳转   注意   info   tmp   png   修复   

1、使用Detect It Easy进行查壳;
技术图片
2、使用x32dbg打开该带壳程序,在选项->选项->异常中添加区间设置0~FFFFFFFF全忽略;技术图片
3、我们F9运行到程序入口处,会看到mov eax,puah eax,push dword,我们单步跳转到push dword的位置,堆栈窗口压入了一行地址,右键,内存窗口跟随该地址;
技术图片
4、在该内存处下dword的硬件访问断点,然后F9运行,至图中位置后,向下查找(可能会由于异常或断点,一次无法跳转至此,可以F9,直到此位置);
技术图片
5、找到pop ebp,jmp eax后,向jmp eax下断点,然后F9运行(注意删除之前的硬件访问断点),此处是由于我们可以看到jmp eax时,eax的值为004012CD,而EIP的地址为00406C5A,对比两地址,该处是个大跳转,非常有可能是OEP;
技术图片
6、单步步入jmp eax中,该处就是OEP位置,在此处使用Scylla进行脱壳;
技术图片
7、再次查壳,已成功将壳脱下;
技术图片
8、总结;
该脱壳需要注意,尽量使用x32dbg,因为OD在脱壳后修复IAT表时会出现错误,会比较麻烦,另外向堆栈的上一个地址下硬件访问断点,这种手法被称为广义ESP定律,原理是加壳的程序,必然会在解密后运行前进行堆栈平衡,我们在此处下访问断点,出栈的时候极有可能是正常程序运行前的位置;





手脱PECompact v2.xx

标签:出现   对比   运行   跳转   注意   info   tmp   png   修复   

原文地址:https://www.cnblogs.com/HOPEAMOR/p/12009416.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!