打狗棒------一只土狗 简单脱壳分析
【破文标题】一只土狗 简单脱壳分析【破文作者】飘云
【作者邮箱】[email protected]
【作者主页】www.chinapyg.com
【破解工具】Peid0.94,OllyDbg,LordPE,Import REC
【破解平台】Win9x/NT/2000/XP
【软件名称】CrackMe
【软件大小】328kb
【原版下载】https://www.chinapyg.com/viewthread.php?tid=16246
【保护方式】狗狗
【软件简介】应该是一个工程上分离出来的吧?不管了,反正就是脱狗狗~~
【破解声明】我是一只菜菜鸟,偶得一点心得,愿与大家分享 !^_^
------------------------------------------------------------------------
【破解过程】OD载入程序:
00407049 >55 push ebp
0040704A 8BEC mov ebp, esp
0040704C 83EC 7C sub esp, 7C
0040704F 53 push ebx
00407050 56 push esi
00407051 57 push edi
00407052 C745 C8 A5A5000>mov dword ptr , 0A5A5
00407059 66:C745 C0 0A00 mov word ptr , 0A
0040705F E9 550D0000 jmp 00407DB9 //留意这里,不要搞太快了~~
00407064 E9 4C070000 jmp 004077B5
00407069 EB 01 jmp short 0040706C
00407CE1 8B45 E0 mov eax, dword ptr
00407CE4 5F pop edi
00407CE5 5E pop esi
00407CE6 5B pop ebx
00407CE7 8BE5 mov esp, ebp
00407CE9 5D pop ebp
00407CEA FF20 jmp dword ptr //★这里F2下断,重新载入~~
00407CEC E9 CD000000 jmp 00407DBE
00407CF1^ E9 E6FFFFFF jmp 00407CDC
00407CF6^ E9 E1FFFFFF jmp 00407CDC
00407CFB^ E9 9EF3FFFF jmp 0040709E
00407D00^ E9 D7FFFFFF jmp 00407CDC
00407D05^ E9 A5FFFFFF jmp 00407CAF
00407D0A^ E9 14FEFFFF jmp 00407B23
00407D0F^ E9 0FFEFFFF jmp 00407B23
00407D14^ E9 C3FFFFFF jmp 00407CDC
00407D19^ E9 05FEFFFF jmp 00407B23
00407D1E^ E9 B9FFFFFF jmp 00407CDC
00407D23^ E9 FBFDFFFF jmp 00407B23
00407D28^ E9 F6FDFFFF jmp 00407B23
00407D2D^ E9 F1FDFFFF jmp 00407B23
00407D32^ E9 DAFCFFFF jmp 00407A11
00407D37^ E9 D8FDFFFF jmp 00407B14
00407D3C^ E9 C4FDFFFF jmp 00407B05
00407D41^ E9 DDFDFFFF jmp 00407B23
00407D46^ E9 E7FCFFFF jmp 00407A32
00407D4B^ E9 4EF3FFFF jmp 0040709E
00407D50^ E9 CEFDFFFF jmp 00407B23
00407D55^ E9 C9FDFFFF jmp 00407B23
00407D5A^ E9 3FF3FFFF jmp 0040709E
00407D5F^ E9 97FDFFFF jmp 00407AFB
00407D64^ E9 29FAFFFF jmp 00407792
00407D69^ E9 23FFFFFF jmp 00407C91
00407D6E^ E9 79FDFFFF jmp 00407AEC
00407D73^ E9 46FFFFFF jmp 00407CBE
00407D78^ E9 88FBFFFF jmp 00407905
00407D7D^ E9 1EFFFFFF jmp 00407CA0
00407D82^ E9 55FFFFFF jmp 00407CDC
00407D87^ E9 42F6FFFF jmp 004073CE
00407D8C^ E9 88FBFFFF jmp 00407919
00407D91^ E9 8DFDFFFF jmp 00407B23
00407D96^ E9 41FFFFFF jmp 00407CDC
00407D9B^ E9 3CFFFFFF jmp 00407CDC
00407DA0^ E9 26F4FFFF jmp 004071CB
00407DA5^ E9 32FFFFFF jmp 00407CDC
00407DAA^ E9 2DFFFFFF jmp 00407CDC
00407DAF^ E9 EAF2FFFF jmp 0040709E
00407DB4^ E9 6AFDFFFF jmp 00407B23
00407DB9^ E9 F7F9FFFF jmp 004077B5 //★跳到这里了,,哈哈,上面很多的Jmp 很可爱哦~~找到最上面一个~~ Go~~
00407DBE 5F pop edi
00407DBF 5E pop esi
00407DC0 5B pop ebx
00407DC1 C9 leave
00407DC2 C3 retn
重新载入后中断在 00407CEA
OD提示信息~~~
ds:=00405634 (DOG.00405634)
00407CEA FF20 jmp dword ptr //这个跳转地址是动态的,,由决定,现在是调向00405634:
00405634 55 push ebp
00405635 8BEC mov ebp, esp
00405637 53 push ebx
00405638 56 push esi
00405639 57 push edi
0040563A 6A 40 push 40
0040563C B8 D8E04000 mov eax, 0040E0D8
00405641 05 54010000 add eax, 154
00405646 50 push eax
00405647 B8 D8E04000 mov eax, 0040E0D8
0040564C 05 92010000 add eax, 192
00405651 50 push eax
00405652 6A 00 push 0
00405654 FF15 0CD14100 call dword ptr [<&USER32.MessageBoxA>]; USER32.MessageBoxA
0040565A E9 00000000 jmp 0040565F
0040565F 5F pop edi
00405660 5E pop esi
00405661 5B pop ebx
00405662 C9 leave
00405663 C3 retn
//这里出来之后,很明显就判断没有狗了~~~ ,那么我们猜测一下~~:
00407CEA FF20 jmp dword ptr 正常情况应该是调向OEP的~~ 而看了glts 版主提供的图片,知道程序为 VFP 编写,故想到了~ 00401760(VFP特有入口点) Ctrl+G过去看看,果然是的~~ 当然还可以用PEID插件求证~ 结果当然是一样啦~
现在我们在OD数据窗口 Ctrl+G 输入“0040E0E0”(或者 在 命令行输入 D 0040E0E0) 然后下硬件写入断点~-byte
Ctrl+F2重新来过~~
F9几次之后断在:
00407A7A E8 9D030000 call 00407E1C
00407A7F 3B05 04E14000 cmp eax, dword ptr
00407A85 0F84 0A000000 je 00407A95
00407A8B C705 E0E04000 3>mov dword ptr , 00405634 //★~~ MessageBox 入口点~~~
我们现在要向上找能跳过此段代码的地方,,注意:存在花指令,所以我们用小键盘 的 “上箭头”进行翻阅~
马上看到这里:
00407A4C 833D F0E04000 0>cmp dword ptr , 0
00407A53 0F85 66000000 jnz 00407ABF //★,这里有一个大跳~ F2下断
00407A59 76 03 jbe short 00407A5E
00407A5B 77 01 ja short 00407A5E
取消之前的硬件断点,程序运行程序,F9断在了 刚刚下断的地方~
00407A53 0F85 66000000 jnz 00407ABF//★改为jmp之后,F9
来到:
00407CEA- FF20 jmp dword ptr ; DOG.00401760
此时 OD提示信息为:
ds:=00401760 (DOG.00401760)
Ok! 马上要到光明之巅了!
F8一次~
LordPE dump出来~
Import REC修复:
0EP:00001760
其他自动获取~
Get Imports有部分无效~~使用Trace Level1(Disasm) 修复即可~
------------------------------------------------------------------------
【破解总结】没什么总结的,OD生锈了,拿出来磨磨~~
各位看官慢慢研究吧~~
------------------------------------------------------------------------
【版权声明】本文纯属技术交流,转载请注明作者信息并保持文章的完整,谢谢! 老大就是不同,分析得透彻,学习了 跟了一下还是很有意思的,学习 不知道这是什么狗/:001 对狗狗很陌生/:011 打狗的文章要看下
打好基础先 。。。 原帖由 tigerisme 于 2007-8-13 16:21 发表 https://www.chinapyg.com/images/common/back.gif
不知道这是什么狗/:001
都说了是土 狗 向 飘云哥哥 学习,下载来练练手/:018 原帖由 fing 于 2007-8-15 10:21 发表 https://www.chinapyg.com/images/common/back.gif
对狗狗很陌生/:011
同意,我也是
我对狗一向不敢动,怕怕~! 分析的很好,学习了~~