Chost 发表于 2019-5-19 18:23

学习过程之记录贴

本帖最后由 Chost 于 2019-5-19 18:37 编辑

1.      利用ESP定律手工脫殼
2.       介紹ESP定律运用的是堆栈平衡原理,一般的加壳软件在执行时,首先要初始化,保存环境(保存各个寄存器的值),一般利用PUSHAD(相当于把eax,ecx,edx,ebx,esp,ebp,esi,edi都压栈),当加壳程序的外 壳执行完毕以后,再来恢复各个寄存器的内容,通常会用POPAD(相当与把eax,ecx,edx,ebx,esp,ebp,esi,edi都出栈),通过跨区段的转移来跳到程序的OEP来执行原程序!
   在脱壳的时候,我们可以根据堆栈平衡来对ESP进行下断,进而快速到达OEP!
3.      查殼 UPX殼

4.      寻找OEP并脫殼
(1)    用OD载入该程序

(2)    按下F8单步步过,注意观察OD右上角的寄存器中ESP有没有成红色
   
(3)选中红色ESP部分,右键HW break下硬件断点   
   
(4)然后按F9找到popad   

    (5)在popad附近找到一个大跳jmp,直接这行f4运行到指定位置。

      
      
   (6)然后取消硬件断点,按f7进入jmp跳过去就是OEP了
          
(7)右键选择OD脱殼
            
(8)把重建输入表前面的勾去掉,并复制修正的地址28F883之后用到,在点脱殼
          
(9)保存名为test2,
          
不要关掉OD,打开ImportREC选择刚才的程序载入

      
      在OEP处填上刚才复制的地址28F883,并点击TAT自动搜索,如果出现已发现一些信息就说明地址正确

   
然后获取导入表,查看是否有无效的

            
接下来修正
   
修正刚才保存的test2   

5.      最后查殼






相关文件供大家参考学习,一同交流进步,(注意文件程序可能涉及病毒,请于虚拟机中学习使用。)
链接:https://pan.baidu.com/s/1rW_g3NQGSsXoWSAg23uaXQ 提取码:yrkb

ll018213 发表于 2019-5-19 22:51

夜陌 发表于 2019-5-19 22:28
其实 壳 这东西吧 有没有 都无所谓了解就是咯

.net混淆壳的程序不脱壳,修改不了{:301_1008:}

随风动 发表于 2019-5-19 20:07

学习一下

jmpengbo 发表于 2019-5-19 21:44

感谢楼主分享

夜陌 发表于 2019-5-19 22:28

其实 壳 这东西吧 有没有 都无所谓 {:301_1001:} 了解就是咯

YasudaKoudou 发表于 2019-5-19 23:19

多谢楼主分享啊!

haicyn4170 发表于 2019-5-19 23:29

好复杂,学习了{:1_893:}

℡小疯、 发表于 2019-5-20 08:26

兄弟这都是几十年前的教程了,没啥意义,别学了

学士天下 发表于 2019-5-20 09:05

总之,谢谢分享!!!

sunny1682019 发表于 2019-5-20 09:09

页: [1] 2 3
查看完整版本: 学习过程之记录贴