ghwj1985 发表于 2009-9-9 18:09

天在学习脱壳, 下载了几个软件都脱壳不成功,没办法重新学过。

天在学习脱壳, 下载了几个软件都脱壳不成功,没办法重新学过。

看到手脱“黑色 诱 惑 ”的 手脱ASProtect1.2 和 ASProtect1.23 壳,决定整个软件下来练习一下

就拿系统自带的“记事本”来练习一下吧, 用ASPack加下壳, 用PEid 查询, 显示为ASPack 2.12 -> Alexey Solodovnikov

好了, 不废话了, 第一篇. 脱壳, 高手见笑了...

脱壳目标: notepad.exe 记事本
加壳类型: ASPack 2.12 - Alexey Solodovnikov


1. 使用Peid 查壳, 显示为 ASPack 2.12 -> Alexey Solodovnikov

2. OD载入, 停在

01013001 note>60                  pushad
01013002      E8 03000000      call notepad.0101300A
01013007      - E9 EB045D45      jmp 465E34F7
0101300C      55                  push ebp

3. 按F8步进到 01013002,查看寄存器中的ESP值, 值为0007ffa4
(这算不算是使用ESP定律呢? 不太清楚, 有空再复习下.)

4. 将0007ffa4 设置为访问中断, 如在命令中输入 hr 7ffa4, 在调试->硬件断点可以查看到
(也可以 dd 7ff4, 断点 -> 硬件访问断点 -> Word 字)

5. F9 运行, 运行到这里被中断

010133B0      /75 08            jnz short notepad.010133BA
010133B2      |B8 01000000      mov eax,1
010133B7      |C2 0C00            retn 0C
010133BA      \68 A5730001      push notepad.010073A5
010133BF      C3                  retn

6. 清除硬件断点. F8步过. 直到retn 过后, 就是入口点了(push 70)
010073A5      6A 70            push 70
010073A7      68 B0180001      push notepad.010018B0
010073AC      E8 E3010000      call notepad.01007594


查出, 入口点为73A5

7. LoadPe 脱壳

8. Import Re 修复输入表(在OEP 输入刚找到的入口点73A5->自动搜索IAT->获取输入表->显示无效函数-> 全部有效 ->修复转存文件)

9. 看看脱壳成功了没有, 查壳显示为Microsoft Visual C++ 7.0 Method2 [调试]

10. 运行正常, 脱壳成功!

小鸡拜拜 发表于 2009-9-9 18:57

手脱ASProtect1.2? 还是手脱ASPack 2.12

王者之剑 发表于 2009-9-9 19:02

ASPack 2.12 不是一个ESP就行了么

小黑冰 发表于 2009-9-9 19:18

楼主ASProtect1.2 和 ASPack 2.12 是不一样的饿`````

西氏 发表于 2009-9-9 21:27

确实,楼主好像搞错了。1.2和2.12差好远。
页: [1]
查看完整版本: 天在学习脱壳, 下载了几个软件都脱壳不成功,没办法重新学过。