手脱 ASPack 2.12 -> Alexey Solodovnikov

来源:互联网 发布:洛丹伦的夏天 知乎 编辑:程序博客网 时间:2024/05/09 00:46

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

看了手脱教程,决定整个软件下来练习一下

就拿系统自带的“记事本”来练习一下吧, 用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. 运行正常, 脱壳成功!

原创粉丝点击