手脱EZIP v1.0
2015-11-14 15:52
183 查看
一、单步
1.载入PEID查壳
2.载入OD,一上来就是一个大跳转,F8单步一直走
3.基本上这个壳靠F8就可以走完了,除了一个向上跳转的位置在下一行F4,然后继续F8
4.找到指向OEP的跳转
5.来到OEP
6.脱壳后不能运行,我们需要使用loadPE重建PE表
7.运行查壳
二、ESP
1.载入OD,一上来就是一个大跳转,F8单步一直走
2.跳转落脚点,落脚点是一个push,push的下一行使用ESP定律,下硬件访问断点,然后SHIFT
+F9运行一次
3.来到指向OEP的跳转,再F8一下
4.来到OEP,脱壳,重建PE表,运行,查壳
1.载入PEID查壳
EZIPv1.0
2.载入OD,一上来就是一个大跳转,F8单步一直走
0040D0BE>$/E919320000jmpNotepad.004102DC;//入口点 0040D0C3.|E97C2A0000jmpNotepad.0040FB44 0040D0C8$|E919240000jmpNotepad.0040F4E6 0040D0CD$|E9FF230000jmpNotepad.0040F4D1 0040D0D2.|E91E2E0000jmpNotepad.0040FEF5 0040D0D7$|E9882E0000jmpNotepad.0040FF64 0040D0DC$|E92C250000jmpNotepad.0040F60D
3.基本上这个壳靠F8就可以走完了,除了一个向上跳转的位置在下一行F4,然后继续F8
00410611|.83C028|addeax,0x28
00410614|.8985ECFDFFFF|mov[local.133],eax
0041061A|.^E940FFFFFF\jmpNotepad.0041055F;//向上跳转的下一行F4
0041061F|>FFB5E8FDFFFFpush[local.134]
00410625|.FF95D4FCFFFFcall[local.203]
0041062B|.8D8594FCFFFFleaeax,[local.219]
00410631|.50pusheax
4.找到指向OEP的跳转
00410684|.5Bpopebx
00410685|.8BE5movesp,ebp
00410687|.5Dpopebp
00410688|.-FFE0jmpeax;//指向OEP的跳转
0041068A|>5Fpopedi
0041068B|.5Epopesi
0041068C|.5Bpopebx
0041068D|.C9leave
5.来到OEP
004010CC55pushebp;//来到OEP
004010CD8BECmovebp,esp
004010CF83EC44subesp,0x44
004010D256pushesi
004010D3FF15E4634000calldwordptrds:[0x4063E4]
004010D98BF0movesi,eax
004010DB8A00moval,byteptrds:[eax]
004010DD3C22cmpal,0x22
6.脱壳后不能运行,我们需要使用loadPE重建PE表
7.运行查壳
运行OK,查壳:MicrosoftVisualC++v6.0SPx
二、ESP
1.载入OD,一上来就是一个大跳转,F8单步一直走
0040D0BE>$/E919320000jmpNotepad.004102DC;//入口点 0040D0C3.|E97C2A0000jmpNotepad.0040FB44 0040D0C8$|E919240000jmpNotepad.0040F4E6 0040D0CD$|E9FF230000jmpNotepad.0040F4D1 0040D0D2.|E91E2E0000jmpNotepad.0040FEF5 0040D0D7$|E9882E0000jmpNotepad.0040FF64 0040D0DC$|E92C250000jmpNotepad.0040F60D
0040D0E1$|E9AE150000jmpNotepad.0040E694
0040D0E6$|E9772B0000jmpNotepad.0040FC62
2.跳转落脚点,落脚点是一个push,push的下一行使用ESP定律,下硬件访问断点,然后SHIFT
+F9运行一次
004102DC/>\55pushebp;//落脚点
004102DD|.8BECmovebp,esp;//这里使用ESP
004102DF|.81EC28040000subesp,0x428
004102E5|.53pushebx
004102E6|.56pushesi
004102E7|.57pushedi
004102E8|.8D8594FCFFFFleaeax,[local.219]
004102EE|.50pusheax
3.来到指向OEP的跳转,再F8一下
00410688|.-FFE0jmpeax;//指向OEP的跳转
0041068A|>5Fpopedi
0041068B|.5Epopesi
0041068C|.5Bpopebx
0041068D|.C9leave
0041068E\.C3retn
0041068FCCint3
4.来到OEP,脱壳,重建PE表,运行,查壳
004010CC55pushebp;//来到OEP
004010CD8BECmovebp,esp
004010CF83EC44subesp,0x44
004010D256pushesi
004010D3FF15E4634000calldwordptrds:[0x4063E4]
004010D98BF0movesi,eax
004010DB8A00moval,byteptrds:[eax]
004010DD3C22cmpal,0x22
相关文章推荐
- SQL基础语句
- 关于UITableView的间隔问题(header和footer)和分割线
- 第一版爬虫,爬补天漏洞链接及标题
- 用MVC4练习,后台用aspx,数据库DemoDb《MvcUserDemo》
- 解决ListFragment中getListView()为空的方法
- windows下安装系统或者重要程序总结
- sqlserver无法在服务器上访问指定的路径或文件
- Fragment 与Activity Fragment传数据的方法
- Why Xcode 7 shows *.tbd instead of *.dylib?
- UVA 1642 Magical GCD(gcd的性质,递推)
- 数据库时间计算函数
- yo generator 强制更新文件
- Eclipse快捷键大全
- 0.35.0 cocoapods安装步骤
- webpack打包avalon+oniui+jquery
- Android性能分析工具-TraceView
- 590 A. Median Smoothing
- 海南海口舞蹈培训信息中心
- STL容器之vector
- cenos7.1 安装openstack kilo 心得之一安装环境介绍及环境下载