好友
阅读权限10
听众
最后登录1970-1-1
|
【文章标题】: 【新瓶装老酒】三谈"俪影2046"_v2.09破解【OD+IDA】
【文章作者】: jimmy2752
【软件名称】: 《俪影2046》v2.09
【下载地址】: 破解版主程序:
PhotoCollage_2.09_cracked.rar
(232.85 KB, 下载次数: 10)
http://yunpan.cn/cV7S93wTnJhIy 访问密码 25b8
【加壳方式】: 无
【保护方式】: 无
【编写语言】: vc2005
【使用工具】: OD,IDA
【操作平台】: WinXP
【软件介绍】: 一款不错的图片制作软件.因为,之前的ccrack及JackyChou两位大侠都讲解过这个软件的破解,但是最初在下稍微瞄了一下教程
,然后就BP DestroyWindow,开始一直找不到关键跳,熬夜之后才发现关键跳原来距离我那么近,我却没有发现它,哎,Focus很重要。本文旨在探讨OD和IDA结
合起来破解该软件,因为IDA图形化显示的确比OD容易理解,而且有很多方便的功能。OD在最初寻找破解突破口很重要,但分析就用IDA来吧。
【作者声明】: 。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
下面我们参考JackyChou的破文进行破解,PEID查壳,无壳,入口地址0006F82B
OD载入,应该停在0046F82B,如不在0046F82B,可直接Ctrl+G直接前往该地址
往下看看,可以看到MFC8.0的类库,确认VC2005编写的程序。
0046F82B > $ E8 13070000 call 0046FF43
0046F830 .^ E9 36FDFFFF jmp 0046F56B
0046F835 . 53 push ebx
0046F836 . 8A5C24 08 mov bl, byte ptr [esp+8]
0046F83A . F6C3 02 test bl, 2
0046F83D . 56 push esi
0046F83E . 8BF1 mov esi, ecx
0046F840 . 74 24 je short 0046F866
0046F842 . 57 push edi
0046F843 . 68 F8014700 push <jmp.&MSVCR80.type_info::_type_i>; 入口地址
0046F848 . 8D7E FC lea edi, dword ptr [esi-4]
0046F84B . FF37 push dword ptr [edi]
0046F84D . 6A 0C push 0C
0046F84F . 56 push esi
0046F850 . E8 8D000000 call 0046F8E2
0046F855 . F6C3 01 test bl, 1
0046F858 . 74 07 je short 0046F861
0046F85A . 57 push edi ; /block
0046F85B . E8 90EAFFFF call <jmp.&MFC80U.#764> ; \free
0046F860 . 59 pop ecx
0046F861 > 8BC7 mov eax, edi
0046F863 . 5F pop edi
0046F864 . EB 13 jmp short 0046F879
0046F866 > E8 8D090000 call <jmp.&MSVCR80.type_info::_type_i>
0046F86B . F6C3 01 test bl, 1
0046F86E . 74 07 je short 0046F877
0046F870 . 56 push esi ; /block
0046F871 . E8 7AEAFFFF call <jmp.&MFC80U.#764> ; \free
0046F876 . 59 pop ecx
0046F877 > 8BC6 mov eax, esi
0046F879 > 5E pop esi
0046F87A . 5B pop ebx
0046F87B . C2 0400 retn 4
0046F87E .- FF25 F8D04700 jmp dword ptr [<&MSVCR80._purecall>] ; MSVCR80._purecall
0046F884 $ 6A 14 push 14
--------------------------------------------------------------------------------
这一段是抄的,因为不是我要讲的重点。
先看下,成功后的样子。
--------------------------------------------------------------------------------
好了,我的老酒+新瓶来了!
OD载入,运行,启动时需要点击确定才能操作软件,因此可以用BP DestroyWindow断点,方法在OD命令输入框中输入即可。
点击确定后,被OD断下,但是貌似在系统领空,ALT + F9大概11下,可以返回到用户程序。
EIP到了0x0040F954
我们向上看,0x0040F937这里这个跳转可以跳过EIP紧接着的call,而0x0040F937这个跳转上面,刚
好有个call。(PS:原文说这里会提示这个Call被N多地方调用,但是我这里没显示,可能是我的OD有点问题吧。待会较大家怎样在IDA中查看程序调用情况。)
这一跳一call,应该就是程序的关键跳和关键call了!!!
那我们跟进关键call里面应该就能破解掉这个程序了。
我们进入后,分析半天会发现 0040F407 |. /74 1C je short 0040F425,这里是这个函数里面的关键跳,然后我们NOP掉。
=======================================
这里,还没有结束,程序会提示被破解了。
=======================================
下面IDA pro工具隆重登场!!!!
=======================================
通过上面的分析,有三个关键地址:
0x 0040F930 关键call,校验程序注册情况。
0x 0040F937 关键跳1
0x 0040F407 关键call里面的关键跳。
=======================================
ida载入程序,直接把这三个地方给F2下断。
这里,IDA里面不能像OD那样可以通过汇编或者二进制修改程序指令,但是有个变通的方法很方便。
在断点的地方,我们可以修改编辑断点,然后在条件里面直接写入"EIP=xxxxxx"直接跳过不想要执行的代码行。
在这几个关键地方,都通过在关键地址上一条指令下断点,然后修改EIP跳过不需要的地方。
这样程序正常运行,但是,和OD一样,还是会提示破解了。
程序在哪里会检测到破解了,然后提示破解框呢。我们F9运行一下,发现很多地方都会进入注册情况校验程序。所以需要找到哪些程序调用了这个关键call,我
把它改名为VIP_Call了,方便分析。
我们进入VIP_call后,通过IDA的菜单,可以查看调用情况。
View-Open subview-function calls
上部分是调用当前函数的来源地址,下部分是该函数使用的调用。
我们每个调用都下一个断,然后追踪到弹出破解框的函数。
通过分析,发现0x040FAA8这里这个函数控制着破解提示框。同样的我们在上一条语句下断,然后EIP修改法让它执行不提示破解提示的那一条。
OK,多按几次F9,发现程序正常使用。包括保存图片以及打印功能都正常,帮助信息也正常。
最后,我们再次用OD载入,同时打开IDA,在关键的几个地方下断,然后在IDA中对比查看,确定是需要跳过还是不需要跳过。需要跳过,根据情况改
jz为jnz,修改jnz为jz,不需要跳过,根据情况改为NOP。
保存,OK,软件正常。
OK,最后分享下,软件里面自带的一张图片。
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|