吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3516|回复: 7
收起左侧

[原创] 【新瓶装老酒】三谈"俪影2046"_v2.09破解【OD+IDA】

[复制链接]
jimmy2752 发表于 2015-4-26 19:01
【文章标题】: 【新瓶装老酒】三谈"俪影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
--------------------------------------------------------------------------------
这一段是抄的,因为不是我要讲的重点。
先看下,成功后的样子。
成功.png


--------------------------------------------------------------------------------

好了,我的老酒+新瓶来了!
开始界面提示.png
OD载入,运行,启动时需要点击确定才能操作软件,因此可以用BP DestroyWindow断点,方法在OD命令输入框中输入即可。
点击确定后,被OD断下,但是貌似在系统领空,ALT + F9大概11下,可以返回到用户程序。
返回用户程序找到关键跳.png
EIP到了0x0040F954
我们向上看,0x0040F937这里这个跳转可以跳过EIP紧接着的call,而0x0040F937这个跳转上面,刚

好有个call。(PS:原文说这里会提示这个Call被N多地方调用,但是我这里没显示,可能是我的OD有点问题吧。待会较大家怎样在IDA中查看程序调用情况。)


这一跳一call,应该就是程序的关键跳和关键call了!!!
那我们跟进关键call里面应该就能破解掉这个程序了。
我们进入后,分析半天会发现      0040F407  |. /74 1C         je      short 0040F425,这里是这个函数里面的关键跳,然后我们NOP掉。
=======================================
这里,还没有结束,程序会提示被破解了。
提示程序被破解了.png

=======================================
下面IDA pro工具隆重登场!!!!
=======================================
通过上面的分析,有三个关键地址:
0x 0040F930 关键call,校验程序注册情况。
0x 0040F937 关键跳1
0x 0040F407 关键call里面的关键跳。
=======================================

ida载入程序,直接把这三个地方给F2下断。

IDA关键跳.png

VIPcall关键跳.png



这里,IDA里面不能像OD那样可以通过汇编或者二进制修改程序指令,但是有个变通的方法很方便。
断点EIP修改大法.png
在断点的地方,我们可以修改编辑断点,然后在条件里面直接写入"EIP=xxxxxx"直接跳过不想要执行的代码行。


在这几个关键地方,都通过在关键地址上一条指令下断点,然后修改EIP跳过不需要的地方。
这样程序正常运行,但是,和OD一样,还是会提示破解了。





程序在哪里会检测到破解了,然后提示破解框呢。我们F9运行一下,发现很多地方都会进入注册情况校验程序。所以需要找到哪些程序调用了这个关键call,我

把它改名为VIP_Call了,方便分析。


我们进入VIP_call后,通过IDA的菜单,可以查看调用情况。
View-Open subview-function calls
函数调用情况.png
上部分是调用当前函数的来源地址,下部分是该函数使用的调用。

我们每个调用都下一个断,然后追踪到弹出破解框的函数。
断点情况.png
通过分析,发现0x040FAA8这里这个函数控制着破解提示框。同样的我们在上一条语句下断,然后EIP修改法让它执行不提示破解提示的那一条。

EIP2_破解提示.png


破解提示.png

OK,多按几次F9,发现程序正常使用。包括保存图片以及打印功能都正常,帮助信息也正常。
最后,我们再次用OD载入,同时打开IDA,在关键的几个地方下断,然后在IDA中对比查看,确定是需要跳过还是不需要跳过。需要跳过,根据情况改

jz为jnz,修改jnz为jz,不需要跳过,根据情况改为NOP。
保存,OK,软件正常。


OK,最后分享下,软件里面自带的一张图片。

untitled.jpg





免费评分

参与人数 1威望 +1 收起 理由
Hmily + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

大爱吾爱℃ 发表于 2015-4-26 19:17
楼主  加油!!!
风火流云云 发表于 2015-4-26 19:42
 楼主| jimmy2752 发表于 2015-4-27 08:48
貌似发帖时间太晚了,都没几个人看呀。。。。
二两酒 发表于 2015-4-27 08:59
感谢提供剖析……
Hmily 发表于 2015-4-28 11:15
@jimmy2752 就是为了看CALL的调用?可以在OD里按一下“ctrl+a”,分析一下,然后进到关键call 0040F407 这里就能看到有多少调用了吧?

后面没太看懂要干什么,看堆栈调用的话在OD里中断后点图标上的“K”按钮也可以的。
PS:编辑了下你的帖子去掉不能识别的代码。
hu007 发表于 2015-5-5 17:23
谢谢分享了!
jinhuihuang 发表于 2015-5-5 21:37
感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-25 23:32

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表