首页
社区
课程
招聘
[旧帖] [原创]手脱 UPX3.0 0.00雪花
发表于: 2007-5-8 16:43 6520

[旧帖] [原创]手脱 UPX3.0 0.00雪花

2007-5-8 16:43
6520
【破解作者】 mrvampire
【使用工具】 Ollydbg1.10,peid0.94
【破解平台】 WinXP
【软件名称】 acafeel的crackme
【下载地址】 http://www.unpack.cn/thread-12462-1-1.html
【加壳方式】 UPX3.0
【使用工具】 Ollydbg110,peid0.94
【破解声明】 看了acafeel 兄的Crackme觉得很不错,就用他UPX3.0加壳的CrackMe.UNpackCN做个简单的手脱教程吧,很简单没有技术含量,菜鸟学习而已!
【破解过程】
1.用peid0.94查壳, 什么也没发现  要是layper 不说还以为没壳呢!Upx3.0是个压缩壳,试试esp定律吧,let's go!

2.用OD载入,忽略所有异常,用插件隐藏OD,程序停在  00570B00 >  60              PUSHAD
                       ∨
F8 步过一下,发现右边寄存器窗口中的ESP 由0012FFC4 变为 0012FFA4
                       ∨
在0012FFA4处右键---在数据窗口跟随
                       ∨
在左下角的窗口   0012FFC4  7C816FD7  返回到 kernel32.7C816FD7   (红字7C816FD7)处点右键--断点--设置硬件访问断点--字
                       ∨
F9运行一下,程序停在 00571694  然后清除断点,
///////////////////////////////////////////////////////////
00571694    8D4424 80       LEA EAX,DWORD PTR SS:[ESP-80]    // 停在此处
00571698    6A 00           PUSH 0                                             // F8
0057169A    39C4            CMP ESP,EAX                                    // F8  
0057169C  ^ 75 FA           JNZ SHORT CrackMe_.00571698         //往回跳? NO!脱壳时尽量不要让程序往回跳!
0057169E    83EC 80         SUB ESP,-80                                    // 左键点这一下,然后F4
005716A1  ^ E9 BEDAFAFF     JMP CrackMe_.0051F164              //这步也往回跳?不过只能让它跳,要不就不出错, 这步应该就能跳到OEP了!      
005716A6    0000            ADD BYTE PTR DS:[EAX],AL           //
005716A8    C016 57         RCL BYTE PTR DS:[ESI],57                 ; 移动常数超出 1..31 的范围
/////////////////////////////////////////////////////////
0051F164    55              PUSH EBP                                 //   个人觉得这就是OEP了(不知道对不对,在此DUMP ! 再查壳为Borland Delphi 4.0 - 5.0)
0051F165    8BEC            MOV EBP,ESP
0051F167    83C4 F4         ADD ESP,-0C
0051F16A    B8 E4EE5100     MOV EAX,CrackMe_.0051EEE4
0051F16F    E8 D076EEFF     CALL CrackMe_.00406844
0051F174    A1 204A5200     MOV EAX,DWORD PTR DS:[524A20]
0051F179    8B00            MOV EAX,DWORD PTR DS:[EAX]
///////////////////////////////////////////////////////////

再用PEID查壳为  Borland Delphi 4.0 - 5.0 可以正常运行程序,算法没有分析!呵呵,
如有不对之处敬请指教!谢谢!

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
0051F164    55              PUSH EBP                                
0051F165    8BEC            MOV EBP,ESP
0051F167    83C4 F4         ADD ESP,-0C
0051F16A    B8 E4EE5100     MOV EAX,CrackMe_.0051EEE4
0051F16F    E8 D076EEFF     CALL CrackMe_.00406844
0051F174    A1 204A5200     MOV EAX,DWORD PTR DS:[524A20]
0051F179    8B00            MOV EAX,DWORD PTR DS:[EAX]

典型的 Delphi 的 OEP 入口

更快的方法是 载入程序后,CTRL + F ,去除了下面的 全段选项 然后输入 POPAD

就会看见

00571693    61              popad
00571694    8D4424 80       lea     eax, dword ptr [esp-80]
00571698    6A 00           push    0
0057169A    39C4            cmp     esp, eax
0057169C  ^ 75 FA           jnz     short 00571698
0057169E    83EC 80         sub     esp, -80
005716A1  ^ E9 BEDAFAFF     jmp     0051F164    // 点击这里然后 F4 ,再来一次 F8 就到了 OEP
2007-5-8 17:24
0
游客
登录 | 注册 方可回帖
返回
//