脱壳_详细_ZC

1、第1课

  【1892】【10:30】"dd ESP" / "hr ESP"

  OD工具栏里面的 按钮"C" 就是来到 反汇编窗口

 

2、脱完壳,修复完之后,还是无法运行,可以尝试一下方式:

  (1)、尝试手动修复IAT  ==> 第4课【1233】【06:50】

  (2)、尝试 LoadPE-->"重建PE"  ==> 第6课,补充内容中,发现OD插件脱壳的程序需要"重建PE"(注意他的操作步骤)

  (3)、脱壳成功脱掉,也用importREC修正了 --> 可以试试 是否exe有检测程序入口点的功能,可以尝试不改变原来exe的入口点,而使用JMP(或PUSH&RETN)的方式从壳的入口点跳转到exe真正入口点。(如果有stolen代码的话,可以将stolen代码放到壳的入口处,也可以放在别处 再跳一次) ==> 【第18课】

  (4)、Overlay ==> 【第11课】

  (5)、自校验 ==> 【第12课】

 

3、OD中设置断点(多种方式):

  3.1、F2 / F4

  3.2、第4课【1755】【09:45】ZC: 反汇编窗口-->某条指令处-->右键-->断点--> 设置各种断点 (这里也可以设置 硬件执行断点)

  3.3、第4课【1755】【09:45】"dd 指令所在地址"-->在 数据窗口中设置 硬件执行断点--> (Shift)F9 (或者直接设置硬件执行断点 "he 指令所在地址")

 

4、ZC: 

  4.1、importREC1.6 "显示无效函数",注意观察 显示的 无效指针的ptr为0x7FFFFFFF 或 0xFFFFFFFF,这样的指针估计就是垃圾指针 应该不可能有这样的指针的 而且还是多个指针都是0x7FFFFFFF/0xFFFFFFFF),直接“剪切指针”

  4.2、OD中 内存映射窗口 中设置断点(也就是 2次内存镜像法 使用的方式),实际上 设置的是 内存访问断点,∵ OD中有说明:内存映射窗口-->右键-->“在访问上设置中断  F2”

    我用 内存访问断点 模拟了一下,效果是一样的 (只是 内存访问断点 需要手动的删除)

5、ZC:

  PEiD 的版本为 0.94

6、

7、

8、

posted @ 2016-06-12 09:04  DebugSkill  阅读(211)  评论(0编辑  收藏  举报