好友
阅读权限10
听众
最后登录1970-1-1
|
夜依
发表于 2014-5-8 20:25
本帖最后由 夜依 于 2014-5-9 08:00 编辑
感谢恒大的评分,此帖仅作为我自己操作记录与大家分享,所以显得很啰嗦。
实际破解就是这个样子,而且本人还是菜鸟中的菜鸟,没有能力一下子就找到关键点。相信仍然有和我一样水平的菜鸟,在此分享操作记录只是为大家提供一个思路。最后破解的办法:过程比对,这个真的是很苦力!感谢恒大,我会继续努力!
这个只是我的操作记录。不像教程那样简练。
今天遇到一个有意思的软件,批量更名专家
有兴趣的可以到这里下载:http://www.duote.com/soft/789.html
<批量更名专家>V2.6 试用版Build20130820
我已经安装好了。
这个软件看着很容易破解。其实还有一点麻烦。
查壳:
Aspack v2.12 -> Alexey Solodovnikov ( Sn-flag:ok )
ESP定律就行。
Borland Delphi ( 2.0 - 7.0 ) 1992
不用修复,正常运行。
004DACEF . 64:FF30 push dword ptr fs:[eax]
004DACF2 . 64:8920 mov dword ptr fs:[eax],esp
004DACF5 . E8 5AF2FFFF call UnPack.004D9F54 ; 这就应该是关键call
004DACFA . 3C 01 cmp al,0x1
004DACFC . 75 1D jnz short UnPack.004DAD1B ; 关键跳
004DACFE . 6A 00 push 0x0
004DAD00 . B9 98AE4D00 mov ecx,UnPack.004DAE98 ; 批量更名专家 V2.6
004DAD05 . BA ACAE4D00 mov edx,UnPack.004DAEAC ; 批量更名专家 V2.6您已经是注册用户,谢谢您的支持!
先不进去 ,先看看它的流程
重启验证类型。
这次进去看看。就目前来说,这个call最后的返回时要给al赋值,如果al 不等于1 ,那jnz那个跳转实现,也就是程序不接受你的注册码
004DA05A . 8A45 FF mov al,byte ptr ss:[ebp-0x1] ; 这就是给al 赋值的地方。关键就是这里了
004DA05D . 5F pop edi
004DA05E . 5E pop esi
004DA05F . 5B pop ebx
004DA060 . 8BE5 mov esp,ebp
004DA062 . 5D pop ebp
004DA063 . C3 retn ; 这是最后的返回。
因为不是追码,就不单步了。
现在看到要给al赋值0
那么赋值0以后,程序
这话怎么说…………
反正此时应该给al赋值1
mov al,1
这就ok了
现在看下,是不是破解成功了。
破解成功了,这软件也太不禁玩了吧。
功能不完整啊。看看原版是怎样的
原版没问题。脱壳后也正常运行。那程序是怎么个校验的呢?
首先我想到md5,可是也没有看到可疑的长字符串。
再者我胡乱找的时候,找到这个函数
kernel32.GetFileSize
难道是根据文件大小判断??这个我也对比原程序找过,但是没找到有用的线索。
后来通过DarkDe4 找按钮事件。我就想看看 按下预览后程序怎么运行的。
object ToolButton3: TToolButton
Left = 189
Top = 0
Action = ActPreview
Caption = 预览
Grouped = True
ImageIndex = 2
ParentShowHint = False
ShowHint = True
end
AcPreviewExecute 004E12C4
004E6558
004E2408
到这三个地址下断点,看看按下 预览 后先停在哪里。
004E2408 停在这里了。怎么找呢?没法找,看着代码,不知如何下手。
最后我决定这样:把原版和破解的一起运行, 看看原版的按下预览后怎么运行,关键是记录下原版在哪些跳转实现了,哪些跳转没实现。
就这样把到最后出来预览成功的之前的跳转 实现与否我都写在纸上了。
再比对破解版的跳转实现情况,找其中的不同之处。……
苦力活啊!
最终找到:
004E15E0 E8 2785F2FF call UnPack-c.00409B0C
004E15E5 8B45 D8 mov eax,dword ptr ss:[ebp-0x28]
004E15E8 BA D0184E00 mov edx,UnPack-c.004E18D0 ; ABC4FE0A
004E15ED E8 FE3BF2FF call UnPack-c.004051F0
004E15F2 /74 48 je short UnPack-c.004E163C
主要是因为这个je 跳转和原版 实现的情况不同。
运行下看看。
EAX 00BEF2D4 ASCII "4BF608BB"
ECX 00000000
EDX 004E18D0 ASCII "ABC4FE0A"
问题的关键就在于,eax edx必须要一样。
修改:
004E15E0 E8 2785F2FF call UnPack-c.00409B0C
004E15E5 8B45 D8 mov eax,dword ptr ss:[ebp-0x28]
004E15E8 8B55 D8 mov edx,dword ptr ss:[ebp-0x28] ; ABC4FE0A
004E15EB 90 nop
004E15EC 90 nop
004E15ED E8 FE3BF2FF call UnPack-c.004051F0
004E15F2 74 48 je short UnPack-c.004E163C
004E15F4 8BC3 mov eax,ebx
这下功能上也没有缺失了。好了。破解完美!
放两张图,比较
这个视频很失败,因为没录到OD的界面。先上帖子,一会重新录一个。直接破解的步骤。
视频地址:
http://yunpan.cn/QicZzRhzx379t 访问密码 b7cc
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|