今天在学习脱壳, 下载了几个软件都脱壳不成功,没办法重新学过。
看了手脱教程,决定整个软件下来练习一下
就拿系统自带的“记事本”来练习一下吧, 用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 //查看ESP值
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. 运行正常, 脱壳成功!