【文章标题】: 图片魔法师 手动脱壳+破解(申请邀请码)
【文章作者】: JohnH
【软件名称】: 图片魔法师
【软件大小】: 475 KB
【下载地址】: 自己搜索下载
【加壳方式】: ASPack 2.12 -> Alexey Solodovnikov
【保护方式】: 机器码注册
【编写语言】: Borland Delphi 6.0 - 7.0
【使用工具】: flyOD、PEiD、C32、LordPE、ImportREC
【操作平台】: XP SP3
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
软件过程很简单,不是很难,下面我就来写一下具体过程。
(我同时录了动画,如果看不懂,可以看我录的动画)
1:脱壳
用PEiD查壳,可以看到是ASPack 2.12 -> Alexey Solodovnikov的壳。
00573001 > 60 pushad ; 壳入口
00573002 E8 03000000 call 图片魔法.0057300A ; 关键call,F7跟进
------------------------------
0057300A 5D pop ebp ; F8步过
0057300B 45 inc ebp
0057300C 55 push ebp
0057300D C3 retn
------------------------------
00573008 /EB 04 jmp short 图片魔法.0057300E ; 会跳到这里,F8一下
0057300A |5D pop ebp
0057300B |45 inc ebp
0057300C |55 push ebp
0057300D |C3 retn
0057300E \E8 01000000 call 图片魔法.00573014 ; 这里就是第二个关键call,F7跟进
------------------------------
00573014 5D pop ebp ; 到达这里,开始一路F8就可以了
00573015 BB EDFFFFFF mov ebx,-13
0057301A 03DD add ebx,ebp
0057301C 81EB 00301700 sub ebx,173000
00573022 83BD 22040000 0>cmp dword ptr ss:[ebp+422],0
00573029 899D 22040000 mov dword ptr ss:[ebp+422],ebx
0057302F 0F85 65030000 jnz 图片魔法.0057339A
00573035 8D85 2E040000 lea eax,dword ptr ss:[ebp+42E]
------------------------------
一路向下F8,会有向上的跳转,把鼠标定位到这个跳转的下一行,按F4跳过去,然后继续F8就可以了。
------------------------------
0057312B 33DB xor ebx,ebx
0057312D 0BC9 or ecx,ecx
0057312F 74 2E je short 图片魔法.0057315F
00573131 78 2C js short 图片魔法.0057315F
00573133 AC lods byte ptr ds:[esi]
00573134 3C E8 cmp al,0E8
00573136 74 0A je short 图片魔法.00573142
00573138 EB 00 jmp short 图片魔法.0057313A
0057313A 3C E9 cmp al,0E9
0057313C 74 04 je short 图片魔法.00573142
0057313E 43 inc ebx
0057313F 49 dec ecx
00573140 ^ EB EB jmp short 图片魔法.0057312D ; 这里是向上的跳转,鼠标定位到下一行,F4
00573142 8B06 mov eax,dword ptr ds:[esi] ; 继续按F8,遇到向上的跳转还是鼠标定位到下一行,跳过去
00573144 EB 00 jmp short 图片魔法.00573146
00573146 803E 1E cmp byte ptr ds:[esi],1E
------------------------------
005733B0 /75 08 jnz short 图片魔法.005733BA ; 最后会跳到这里
005733B2 |B8 01000000 mov eax,1
005733B7 |C2 0C00 retn 0C
005733BA \68 E4394D00 push 图片魔法.004D39E4 ; 这里就到达程序的入口了 F8
005733BF C3 retn ; 再按F8
------------------------------
004D39E4 55 push ebp ;这里就是程序真正的入口了
004D39E5 8BEC mov ebp,esp
004D39E7 83C4 F0 add esp,-10
004D39EA 53 push ebx
004D39EB B8 1C364D00 mov eax,图片魔法.004D361C
004D39F0 E8 BB2FF3FF call 图片魔法.004069B0
004D39F5 8B1D DC6F4D00 mov ebx,dword ptr ds:[4D6FDC] ; 图片魔法.004D8C34
004D39FB 8B03 mov eax,dword ptr ds:[ebx]
然后转存、修复输入表,保存文件,脱壳完成。程序脱壳后1.47 MB。
(具体可以看我录的动画)
2:开始程序的破解
程序的注册文字没有明码,所以要用C32来找到关键点。
分别查看它的字符串,可以找到四处可疑点,分别记下这些点。
为了省事我就不再找了,可以到动画里看具体过程。
这里就是第一处爆破点。
004D2FA5:: BA 68304D00 MOV EDX,4D3068 \->: - 未购买用户
第二处
004D25CF:: B8 CC284D00 MOV EAX,4D28CC \->: 本功能需要购买后才能使用!
第三处
004D3517:: BA 4C354D00 MOV EDX,4D354C \->: 本软件需要购买后才能无限制使
第四处
004D33ED:: BA 58344D00 MOV EDX,4D3458 \->: 本软件已注册给
其它地方都是乱码,先不管,就从这些点下手。
OD载入程序后,分别 Ctrl + G 定位到这些可疑点处。
第一个
004D2F90 /75 27 jnz short dumped_.004D2FB9 ; 这个要跳转实现,jnz改为jmp
004D2F92 |8D55 E8 lea edx,dword ptr ss:[ebp-18]
004D2F95 |8B9E 54030000 mov ebx,dword ptr ds:[esi+354]
004D2F9B |8BC3 mov eax,ebx
004D2F9D |E8 86CEFCFF call dumped_.0049FE28
004D2FA2 |8D45 E8 lea eax,dword ptr ss:[ebp-18]
004D2FA5 |BA 68304D00 mov edx,dumped_.004D3068 ; 【- 未购买用户】
004D2FAA |E8 6D18F3FF call dumped_.0040481C
004D2FAF |8B55 E8 mov edx,dword ptr ss:[ebp-18]
004D2FB2 |8BC3 mov eax,ebx
004D2FB4 |E8 03DBFCFF call dumped_.004A0ABC
004D2FB9 \B8 CC954D00 mov eax,dumped_.004D95CC
004D2FBE E8 9915F3FF call dumped_.0040455C
第二个
004D25CD /74 1E je short dumped_.004D25ED ; 这个跳转也要实现,je改为jmp
004D25CF |B8 CC284D00 mov eax,dumped_.004D28CC ; 【本功能需要购买后才能使用!】
004D25D4 |E8 8B65F6FF call dumped_.00438B64
004D25D9 |A1 30714D00 mov eax,dword ptr ds:[4D7130]
004D25DE |8B00 mov eax,dword ptr ds:[eax]
004D25E0 |8B10 mov edx,dword ptr ds:[eax]
004D25E2 |FF92 E8000000 call dword ptr ds:[edx+E8]
004D25E8 |E9 AB020000 jmp dumped_.004D2898
004D25ED \8D55 F8 lea edx,dword ptr ss:[ebp-8]
第三个
004D350E /74 2F je short dumped_.004D353F ; 这个跳转要实现,je改为jmp
004D3510 |6A 24 push 24
004D3512 |B9 44354D00 mov ecx,dumped_.004D3544
004D3517 |BA 4C354D00 mov edx,dumped_.004D354C ; 【本软件需要购买后才能无限制使】
004D351C |A1 DC6F4D00 mov eax,dword ptr ds:[4D6FDC]
004D3521 |8B00 mov eax,dword ptr ds:[eax]
004D3523 |E8 28C8F8FF call dumped_.0045FD50
004D3528 |83F8 06 cmp eax,6
004D352B |75 12 jnz short dumped_.004D353F
004D352D |C603 00 mov byte ptr ds:[ebx],0
004D3530 |A1 30714D00 mov eax,dword ptr ds:[4D7130]
004D3535 |8B00 mov eax,dword ptr ds:[eax]
004D3537 |8B10 mov edx,dword ptr ds:[eax]
004D3539 |FF92 E8000000 call dword ptr ds:[edx+E8]
004D353F \5B pop ebx
第四个
004D33E2 /75 3C jnz short dumped_.004D3420 ; 这个跳转不能让它实现,要不就会显示没有注册
004D33E4 |8D45 FC lea eax,dword ptr ss:[ebp-4] ; 简单的方法,nop掉
004D33E7 |8B0D D4954D00 mov ecx,dword ptr ds:[4D95D4] ; 这样就没有实现跳转,到达下面这句了
004D33ED |BA 58344D00 mov edx,dumped_.004D3458 ; 【本软件已注册给】
004D33F2 |E8 6914F3FF call dumped_.00404860
004D33F7 |8B55 FC mov edx,dword ptr ss:[ebp-4]
004D33FA |A1 30714D00 mov eax,dword ptr ds:[4D7130]
004D33FF |8B00 mov eax,dword ptr ds:[eax]
004D3401 |8B80 20030000 mov eax,dword ptr ds:[eax+320]
004D3407 |E8 A0C6F6FF call dumped_.0043FAAC
004D340C |A1 30714D00 mov eax,dword ptr ds:[4D7130]
004D3411 |8B00 mov eax,dword ptr ds:[eax]
004D3413 |8B80 20030000 mov eax,dword ptr ds:[eax+320]
004D3419 |B2 01 mov dl,1
004D341B |E8 7CC5F6FF call dumped_.0043F99C
004D3420 \A1 30714D00 mov eax,dword ptr ds:[4D7130]
004D3425 8B00 mov eax,dword ptr ds:[eax]
全部保存后,运行修改后的程序。
可以看到所有限制都被解除了。
好了,程序的手动脱壳和爆破就全部完成了。
--------------------------------------------------------------------------------
【经验总结】
总结一下。
我是玩PPC的,很多手机软件有时就要注册,很费事,有时找不到注册码这个软件就是废品。所以我就打算学学怎么破解
。先是从IDA开始学,不过太乱了,根本就无从下手。
某一天忽然在学校图书管里找到一本书,很激动,《加密解密全攻略》,然后我就在这里找相关的工具的使用方法,期间
又在电脑上试验了很多软件,在网上也查了很多教程,不过那些教程都略了很多东西,没有说明方法,太粗略。
后来,看到看雪,想当然啦,就看那些文章,学到了很多东西。
就在一个月前我才知道 nop 这个功能,二个月前才知道 F2 可以下断点,很多东西都是在看雪里找到的。
所以在这里就感谢一下看雪为我提供的平台。
这个软件不是我折腾的第一个软件,之前弄过很多,但都不尽完美,不是壳破不了,就是注册时有暗桩,热情一再被打消
,后来慢慢的,看了很多教程,对破解也有信心了,才有了这偏文章。
这偏文章花了我一下午的时间啊,写文,做动画,没想到要这么累人。不过很高兴的是现在终于完成了。
我是从IDa开始的,到OD、到C、到B、到汇编,到现在我还是要从新看看书了,没有一个好基础还真是不行。
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!
2010年12月17日 19:34:58
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)