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

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

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

[原创] 超级字符串批量替换工具 3.51 破解记录

[复制链接]
夜依 发表于 2014-3-19 09:09
本帖最后由 夜依 于 2014-3-19 10:16 编辑

------------------------------------------------【文章简介】-------------------------------------------------
【文章标题】 超级字符串批量替换工具 3.51 破解记录
【文章作者】 Alem
【作者主页】 http://hi.baidu.com/_alem
【软件名称】 超级字符串批量替换工具 3.51
【软件大小】 750KB
【下载地址】 http://www.yuneach.com/soft/XReplace351.exe
【加壳方式】 无
【编写语言】 Microsoft Visual Basic v5.0
【使用工具】 PEiD 、OD、VB-Debug
【操作平台】 XP SP3
【软件介绍】 自己搜索
【作者声明】 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
-------------------------------------------------【文章正文】-------------------------------------------------
菜鸟一枚,没有找到便捷的破解点,只能一个一个点去破解,费时费功费力啊!请大牛们指点下。
12.jpg
---------------------------------------------------------------------------------------------------------------
od载入,右键 搜索UNICODE
搜索 注册失败
中文搜索引擎
地址       反汇编                                    文本字符串
[Asm] 纯文本查看 复制代码
0043D171   mov     dword ptr ss:[ebp-0x74],0040E2A4  注册失败
0043D185   push    0040E260                          注册失败!
0043D18A   push    0040C9F8                          \r\n
0043D19D   push    0040C9F8                          \r\n
0043D1B0   push    0040E270                          感谢您使用并注册本软件。请检查输入是否正确。
0043D40D   mov     dword ptr ss:[ebp-0x74],0040E2E8  用户注册成功
0043D421   push    0040E2B4                          注册成功!
0043D426   push    0040C9F8                          \r\n
0043D439   push    0040E2C4                          再次感谢您使用并注册本软件。
0043D4C5   push    0040D2B4                          RegCode
0043D4CA   push    0040D2B4                          RegCode
0043D4CF   push    0040D29C                          XReplace
0043D51C   push    0040D6AC                          帮助
0043D61F   mov     dword ptr ss:[ebp-0x74],0040E2A4  注册失败
0043D633   push    0040E260                          注册失败!

我们看看怎么中转到注册成功的代码,来到
[Asm] 纯文本查看 复制代码
0043D421   push    0040E2B4                          注册成功

向上找可能会跳过 0043D421  的跳转指令
[Asm] 纯文本查看 复制代码
0043D387     /0F84 76020000 je      0043D603                         ;  此句跳过了  0043D421: 注册成功,正是我们要找的关键跳 nop掉

此时还没完呢,我们注意到有两个注册失败提示,继续向上找

[Asm] 纯文本查看 复制代码
0043D308   . /E9 A9040000   jmp     0043D7B6    '这句会跳过 0043D421:注册成功  但是这个是jmp 无条件跳转
0043D30D   > \8B06          mov     eax,ds:[esi]    '跳转来自 0043D14F

看过恒大教程的同学,此时激动不?
来到0043D14F

[Asm] 纯文本查看 复制代码
0043D147   .  66:83BD 58FFF>cmp     word ptr ss:[ebp-0xA8],0x0        
0043D14F   . /0F84 B8010000 je      0043D30D                         ;  此句跳过了 注册失败,正是我们要找的关键跳 je改为jmp
0043D155   . |B9 04000280   mov     ecx,0x80020004
0043D15A   . |B8 0A000000   mov     eax,0xA
0043D15F   . |894D 9C       mov     ss:[ebp-0x64],ecx
0043D162   . |894D AC       mov     ss:[ebp-0x54],ecx
0043D165   . |8D55 84       lea     edx,ss:[ebp-0x7C]
0043D168   . |8D4D B4       lea     ecx,ss:[ebp-0x4C]
0043D16B   . |8945 94       mov     ss:[ebp-0x6C],eax
0043D16E   . |8945 A4       mov     ss:[ebp-0x5C],eax
0043D171   . |C745 8C A4E24>mov     dword ptr ss:[ebp-0x74],0040E2A4 ;  注册失败
0043D178   . |C745 84 08000>mov     dword ptr ss:[ebp-0x7C],0x8
0043D17F   . |FF15 00124000 call    ds:[<&MSVBVM60.__vbaVarDup>]     ;  msvbvm60.__vbaVarDup
0043D185   . |68 60E24000   push    0040E260                         ;  注册失败!

修改方法:0043D14F   . /0F84 B8010000 je      0043D30D                         ;  此句跳过了 注册失败,正是我们要找的关键跳 je改为mp
此时假码也能注册成功了
---------------------------------------------------------------------------------------------------------------
但是就算是注册成功,启动后,点击主窗口的右下角 隐藏 按钮依然出现注册窗口。同时重新启动时,仍然有注册窗口。
使用 VB-Debug Events,查看 点 隐藏 按钮的按钮整体,
0040BAE6
004093B6
个人猜想 0040BAE6是先判断是否正确注册了,如果没有注册到跳转到注册窗口。仅是猜想。
先看第一个 0040BAE6
[Asm] 纯文本查看 复制代码
0040BAE6   .  816C24 04 DF0>sub     dword ptr ss:[esp+0x4],0xDF
0040BAEE   .  E9 0D510200   jmp     00430C00
来到 00430C00
[Asm] 纯文本查看 复制代码
00430C00   > \55            push    ebp                              ;下断点
00430C01   .  8BEC          mov     ebp,esp
00430C03   .  83EC 18       sub     esp,0x18
……
00430C7F   .  66:A3 5000450>mov     ds:[0x450050],ax
00430C85   >  C745 FC 05000>mov     dword ptr ss:[ebp-0x4],0x5
00430C8C   .  0FBF05 500045>movsx   eax,word ptr ds:[0x450050]
00430C93   .  85C0          test    eax,eax
00430C95      0F85 FE000000 jnz     00430D99                         ;  如果不跳转,之后就会出现注册窗口,所以这个必须跳了也可以jnz 改为jmp
00430C9B   .  C745 FC 06000>mov     dword ptr ss:[ebp-0x4],0x6
00430CA2   .  68 30C64000   push    0040C630                         ; /szValue = ""
00430CA7   .  68 B4D24000   push    0040D2B4                         ; |RegCode
00430CAC   .  68 B4D24000   push    0040D2B4                         ; |RegCode
00430CB1   .  68 9CD24000   push    0040D29C                         ; |XReplace
00430CB6   .  FF15 04104000 call    ds:[<&MSVBVM60.#690>]            ; \rtcSaveSetting
00430CBC   .  C745 FC 07000>mov     dword ptr ss:[ebp-0x4],0x7

做下列修改,隐藏按钮可以正常用了。
00430C95     /0F84 FE000000 je      00430D99                         ;  如果不跳转,之后就会出现注册窗口,所以这个必须跳了jmp
---------------------------------------------------------------------------------------------------------------
下面再解决启动时出现注册窗口的问题。

/*VB-Debug Events,查看到启动时有三个事件
begin
0040BB27
0040BA3D
004093B6
这三个事件造成了注册窗口的出现,那我们一个一个排查吧
[Asm] 纯文本查看 复制代码
0040BB27   .  816C24 04 DB0>sub     dword ptr ss:[esp+0x4],0xDB
0040BB2F   .  E9 7C9A0200   jmp     004355B0

0040BA3D   .  816C24 04 5B0>sub     dword ptr ss:[esp+0x4],0x5B
0040BA45   .  E9 761B0100   jmp     0041D5C0

004093B6   .  816C24 04 6B0>sub     dword ptr ss:[esp+0x4],0x6B
004093BE   .  E9 7D440300   jmp     0043D840

00E46EBA    FFD1            call    ecx
00E46EBC    59              pop     ecx */


通过搜索并观察注册表:RedCode  发现:
当注册成功后,注册表里RegCode的值为我们输入的注册码。
当重新启动程序,出现注册窗口时,注册表里的RegCode值为空。
[HKEY_CURRENT_USER\Software\VB and VBA Program Settings\XReplace\RegCode]
"RegCode"="d"
那说明程序启动时查看了RegCode的值。下面搜索RegCode,
中文搜索引擎
地址       反汇编                                    文本字符串

[Asm] 纯文本查看 复制代码
00430CA7   push    0x40D2B4                          RegCode
00430CAC   push    0x40D2B4                          RegCode
00430CB1   push    0x40D29C                          XReplace

00436304   push    0x40D670                          REGCODE
00436309   push    0x40D670                          REGCODE
0043630E   push    0x40D29C                          XReplace

0043D4C5   push    0x40D2B4                          RegCode
0043D4CA   push    0x40D2B4                          RegCode
0043D4CF   push    0x40D29C                          XReplace


有三处,分别设置断点,看最先到哪一个
最先到达
[Asm] 纯文本查看 复制代码
00436304   .  68 70D64000   push    0x40D670                         ; /REGCODE
00436309   .  68 70D64000   push    0x40D670                         ; |REGCODE
0043630E   .  68 9CD24000   push    0x40D29C                         ; |XReplace
00436313   .  FF15 F4114000 call    dword ptr ds:[0x4011F4]          ; \rtcGetSetting
我们先到
[HKEY_CURRENT_USER\Software\VB and VBA Program Settings\XReplace\RegCode]
给RegCode赋值,随便一个数。
一路F8
[Asm] 纯文本查看 复制代码
0043664F     /0F85 0E010000 jnz     00436763                         ;  看到这个跳转比较大就让它实现跳转,试下,把启动窗口的注册窗口去掉了。
但是启动后默认是未注册的,在反复调试下,发现
[Asm] 纯文本查看 复制代码
0043641D     /75 26         jnz     short 00436445                   ;  那这个跳转如果实现,就可以跳过试用了,试试吧。
0043641F   . |C745 FC 3F000>mov     dword ptr ss:[ebp-0x4],0x3F
00436426   . |8B4D D0       mov     ecx,dword ptr ss:[ebp-0x30]
00436429   . |51            push    ecx
0043642A   . |68 94D64000   push    0x40D694                         ; /&v=trial  这个单词是试用的意思
0043642F   . |FF15 5C104000 call    dword ptr ds:[0x40105C]          ; \__vbaStrCat

当0043641D     /75 26         jnz     short 00436445  跳转实现,启动后默认是已注册的。
---------------------------------------------------------------------------------------------------------------
又解决一个问题。但是,最根本的问题没解决,程序始终不承认我们的假码。关于窗口 可以隐藏,但是隐藏后出现一个帮助按钮,
点击 帮助 按钮 又是注册窗口。

[Asm] 纯文本查看 复制代码
00431031   .  51                         push    ecx
00431032   .  FF50 04                    call    dword ptr ds:[eax+0x4]
00431035   .  C745 FC 01000000           mov     dword ptr ss:[ebp-0x4],0x1
0043103C   .  C745 FC 02000000           mov     dword ptr ss:[ebp-0x4],0x2
00431043   .  0FBF15 50004500            movsx   edx,word ptr ds:[0x450050]
0043104A   .  85D2                       test    edx,edx
0043104C      0F85 DD000000              jnz     0043112F                         ;  此跳实现可以解决 点击帮助 出现注册窗口

---------------------------------------------------------------------------------------------------------------
下面的就是修复软件的功能限制,提示像“非注册版本一次最多只能替换一项内容!” “非注册版本一次最多只能处理二个文件!”

补丁
地址       大小   状态      旧                                新                                注释
[Asm] 纯文本查看 复制代码
0041E999     6.   激活        je      0041EC83                  nop
0041E9B5     6.   激活        je      0041EC83                  nop
0042D913     6.   激活        je      0042DACF                  jmp     0042DACF
0042E46E    17.   激活        jnz     0042E729                  jmp     0042E729
0042F2C4     6.   激活        jnz     0042F480                  jmp     0042F480
00430C95     6.   激活        jnz     00430D99                  jmp     00430D99
00431553     6.   激活        je      00431826                  jmp     00431826
00434691     6.   激活        je      00434B2D                  jmp     00434B2D
0043641D     2.   激活        jnz     short 00436445            jmp     short 00436445
0043664F     6.   激活        jnz     00436763                  jmp     00436763
0043D14F     6.   激活        je      0043D30D                  jmp     0043D30D
0043D387     6.   激活        je      0043D603                  nop
0043FB03     6.   激活        je      0043FCBF                  jmp     0043FCBF
0044041E    17.   激活        jnz     004406D9                  jmp     004406D9
00441265     6.   激活        jnz     00441421                  jmp     00441421
00446173     6.   激活        je      0044632F                  jmp     0044632F
00446A8E    17.   激活        jnz     00446D49                  jmp     00446D49
004478D5     6.   激活        jnz     00447A91                  jmp     00447A91
004495F4     2.   激活        je      short 00449672            nop
---------------------------------------------------------------------------------------------------------------
破解后的程序 链接:http://pan.baidu.com/s/1dDACGId   密码:u9rf
-------------------------------------------------【版权声明】-------------------------------------------------
【版权声明】 本文由本人原创, 转载请注明作者并保持文章的完整, 谢谢!


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

ningzhonghui 发表于 2014-3-19 11:02
本帖最后由 ningzhonghui 于 2014-3-19 11:47 编辑
夜依 发表于 2014-3-19 09:56
求详细过程。这一句就可以?这样只能在启动时不显示注册窗口,各个功能上还是有限制啊


没注意看,应还有一处没改动,找到关键CALL给值就能破了

附上我完美破解单文件版:
http://www.52pojie.cn/thread-245157-1-1.html
ningzhonghui 发表于 2014-3-19 09:40
本帖最后由 ningzhonghui 于 2014-3-19 16:50 编辑

这样破解太复杂了,简单3句就能完美破解!
小雨细无声 发表于 2014-3-19 09:47
banzang 发表于 2014-3-19 09:51
支持一下,,辛苦啦,,
 楼主| 夜依 发表于 2014-3-19 09:56
ningzhonghui 发表于 2014-3-19 09:40
这样破解太复杂了,简单一句就能完美破解mov     word ptr [0x450050], 0xFFFF

求详细过程。这一句就可以?这样只能在启动时不显示注册窗口,各个功能上还是有限制啊
ld14726972430 发表于 2014-3-19 10:11 来自手机
额,明早看不懂
ltstar 发表于 2014-3-19 10:36
原创的必须支持,楼主加油!
您需要登录后才可以回帖 登录 | 注册[Register]

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

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

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

GMT+8, 2024-4-30 00:35

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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