吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4743|回复: 3
收起左侧

[分享] XXXX日记 算法分析及一点感叹

[复制链接]
zaas 发表于 2010-6-22 11:00
本帖最后由 zaas 于 2010-6-22 11:17 编辑

【破文标题】XXXX日记 算法分析及一点感叹
【破文作者】zaas[PYG]
破解工具】OllyICE,PEiD v0.94
【破解平台】WinXP
【应用平台】WinXP/2000/2003/Vista
【软件性质】共享(收费)软件
【保护方式】注册码
【软件简介】国产软件,看得出作者是用心在写软件的,因此不提供下载。
【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享
--------------------------------------------------------------
【破解内容】
--------------------------------------------------------------
查壳无壳。Borland Delphi 6.0 - 7.0编写。
下断很容易,无论Dede,字符串。。。均可。不说了。直接来到算法部分:
00676CBC  /.  55            push    ebp
00676CBD  |.  8BEC          mov     ebp, esp
00676CBF  |.  B9 0A000000   mov     ecx, 0A
00676CC4  |>  6A 00         /push    0
00676CC6  |.  6A 00         |push    0
00676CC8  |.  49            |dec     ecx
00676CC9  |.^ 75 F9         \jnz     short 00676CC4
00676CCB  |.  51            push    ecx
00676CCC  |.  53            push    ebx
00676CCD  |.  56            push    esi
00676CCE  |.  8BD8          mov     ebx, eax
00676CD0  |.  33C0          xor     eax, eax
00676CD2  |.  55            push    ebp
00676CD3  |.  68 A66F6700   push    00676FA6
00676CD8  |.  64:FF30       push    dword ptr fs:[eax]
00676CDB  |.  64:8920       mov     dword ptr fs:[eax], esp
00676CDE  |.  8D55 F8       lea     edx, dword ptr [ebp-8]
00676CE1  |.  8B83 FC020000 mov     eax, dword ptr [ebx+2FC]
00676CE7  |.  E8 500CE1FF   call    0048793C                         ;  取出假码
00676CEC  |.  8B45 F8       mov     eax, dword ptr [ebp-8]
00676CEF  |.  8D55 FC       lea     edx, dword ptr [ebp-4]
00676CF2  |.  E8 7D2BD9FF   call    00409874
00676CF7  |.  8D4D E0       lea     ecx, dword ptr [ebp-20]
00676CFA  |.  BA 02000000   mov     edx, 2
00676CFF  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
00676D02  |.  E8 0DAEDCFF   call    00441B14                         ;  前两字符
00676D07  |.  8B45 E0       mov     eax, dword ptr [ebp-20]
00676D0A  |.  8D55 E4       lea     edx, dword ptr [ebp-1C]
00676D0D  |.  E8 36FCFFFF   call    00676948
00676D12  |.  8D45 E4       lea     eax, dword ptr [ebp-1C]
00676D15  |.  8D55 F4       lea     edx, dword ptr [ebp-C]
00676D18  |.  E8 9FFCFFFF   call    006769BC                         ;  Md5之
00676D1D  |.  8B45 F4       mov     eax, dword ptr [ebp-C]
00676D20  |.  50            push    eax
00676D21  |.  8D55 E4       lea     edx, dword ptr [ebp-1C]
00676D24  |.  B8 BC6F6700   mov     eax, 00676FBC                    ;  68
00676D29  |.  E8 1AFCFFFF   call    00676948                         ;  “68” 的MD5
00676D2E  |.  8D45 E4       lea     eax, dword ptr [ebp-1C]
00676D31  |.  8D55 DC       lea     edx, dword ptr [ebp-24]
00676D34  |.  E8 83FCFFFF   call    006769BC
00676D39  |.  8B55 DC       mov     edx, dword ptr [ebp-24]
00676D3C  |.  58            pop     eax
00676D3D  |.  E8 1EE0D8FF   call    00404D60                         ;  前两字符的Md5和“68”的MD5比较
00676D42  |.  74 3F         je      short 00676D83                   ;  不等跳死
00676D44  |.  6A 30         push    30
00676D46  |.  8D55 D8       lea     edx, dword ptr [ebp-28]
00676D49  |.  A1 94D16800   mov     eax, dword ptr [68D194]
00676D4E  |.  8B00          mov     eax, dword ptr [eax]
00676D50  |.  E8 5F1EE3FF   call    004A8BB4
00676D55  |.  8B45 D8       mov     eax, dword ptr [ebp-28]
00676D58  |.  E8 B7E0D8FF   call    00404E14
00676D5D  |.  8BC8          mov     ecx, eax
00676D5F  |.  BA C06F6700   mov     edx, 00676FC0                    ;  注册码有误
00676D64  |.  A1 94D16800   mov     eax, dword ptr [68D194]
00676D69  |.  8B00          mov     eax, dword ptr [eax]
00676D6B  |.  E8 D024E3FF   call    004A9240
00676D70  |.  8B83 FC020000 mov     eax, dword ptr [ebx+2FC]
00676D76  |.  8B10          mov     edx, dword ptr [eax]
00676D78  |.  FF92 C4000000 call    dword ptr [edx+C4]
00676D7E  |.  E9 DB010000   jmp     00676F5E
00676D83  |>  8B45 FC       mov     eax, dword ptr [ebp-4]           ;  假码
00676D86  |.  E8 89DED8FF   call    00404C14
00676D8B  |.  83F8 0A       cmp     eax, 0A                          ;  注册码长度10
00676D8E  |.  74 3F         je      short 00676DCF                   ;  不等跳死
00676D90  |.  6A 30         push    30
00676D92  |.  8D55 D4       lea     edx, dword ptr [ebp-2C]
00676D95  |.  A1 94D16800   mov     eax, dword ptr [68D194]
00676D9A  |.  8B00          mov     eax, dword ptr [eax]
00676D9C  |.  E8 131EE3FF   call    004A8BB4
00676DA1  |.  8B45 D4       mov     eax, dword ptr [ebp-2C]
00676DA4  |.  E8 6BE0D8FF   call    00404E14
00676DA9  |.  8BC8          mov     ecx, eax
00676DAB  |.  BA C06F6700   mov     edx, 00676FC0                    ;  注册码有误
00676DB0  |.  A1 94D16800   mov     eax, dword ptr [68D194]
00676DB5  |.  8B00          mov     eax, dword ptr [eax]
00676DB7  |.  E8 8424E3FF   call    004A9240
00676DBC  |.  8B83 FC020000 mov     eax, dword ptr [ebx+2FC]
00676DC2  |.  8B10          mov     edx, dword ptr [eax]
00676DC4  |.  FF92 C4000000 call    dword ptr [edx+C4]
00676DCA  |.  E9 8F010000   jmp     00676F5E
00676DCF  |>  8D55 C0       lea     edx, dword ptr [ebp-40]
00676DD2  |.  A1 90F86800   mov     eax, dword ptr [68F890]
00676DD7  |.  8B80 F8020000 mov     eax, dword ptr [eax+2F8]
00676DDD  |.  E8 5A0BE1FF   call    0048793C                         ;  机器码
00676DE2  |.  8B45 C0       mov     eax, dword ptr [ebp-40]
00676DE5  |.  E8 9631D9FF   call    00409F80                         ;  机器码转数字
00676DEA  |.  8BF0          mov     esi, eax
00676DEC  |.  B8 E86F6700   mov     eax, 00676FE8                    ;  20100602
00676DF1  |.  E8 8A31D9FF   call    00409F80                         ;  20100602转数字
00676DF6  |.  03F0          add     esi, eax                         ;  相加
00676DF8  |.  8BC6          mov     eax, esi
00676DFA  |.  8D55 C4       lea     edx, dword ptr [ebp-3C]
00676DFD  |.  E8 4230D9FF   call    00409E44                         ;  转字符串
00676E02  |.  8B45 C4       mov     eax, dword ptr [ebp-3C]
00676E05  |.  8D4D C8       lea     ecx, dword ptr [ebp-38]
00676E08  |.  BA 08000000   mov     edx, 8
00676E0D  |.  E8 02ADDCFF   call    00441B14
00676E12  |.  8B4D C8       mov     ecx, dword ptr [ebp-38]
00676E15  |.  8D45 CC       lea     eax, dword ptr [ebp-34]
00676E18  |.  BA BC6F6700   mov     edx, 00676FBC                    ;  68
00676E1D  |.  E8 3EDED8FF   call    00404C60                         ;  前缀“68”
00676E22  |.  8B45 CC       mov     eax, dword ptr [ebp-34]          ;  真码出现
00676E25  |.  8D55 E4       lea     edx, dword ptr [ebp-1C]
00676E28  |.  E8 1BFBFFFF   call    00676948
00676E2D  |.  8D45 E4       lea     eax, dword ptr [ebp-1C]
00676E30  |.  8D55 D0       lea     edx, dword ptr [ebp-30]
00676E33  |.  E8 84FBFFFF   call    006769BC                         ;  真码的MD5
00676E38  |.  8B45 D0       mov     eax, dword ptr [ebp-30]
00676E3B  |.  50            push    eax
00676E3C  |.  8D55 E4       lea     edx, dword ptr [ebp-1C]
00676E3F  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
00676E42  |.  E8 01FBFFFF   call    00676948
00676E47  |.  8D45 E4       lea     eax, dword ptr [ebp-1C]
00676E4A  |.  8D55 BC       lea     edx, dword ptr [ebp-44]
00676E4D  |.  E8 6AFBFFFF   call    006769BC                         ;  假码的MD5
00676E52  |.  8B55 BC       mov     edx, dword ptr [ebp-44]
00676E55  |.  58            pop     eax
00676E56  |.  E8 05DFD8FF   call    00404D60                         ;  真假码MD5比较
00676E5B  |.  74 3F         je      short 00676E9C                   ;  不等跳死
00676E5D  |.  6A 30         push    30
00676E5F  |.  8D55 B8       lea     edx, dword ptr [ebp-48]
00676E62  |.  A1 94D16800   mov     eax, dword ptr [68D194]
00676E67  |.  8B00          mov     eax, dword ptr [eax]
00676E69  |.  E8 461DE3FF   call    004A8BB4
00676E6E  |.  8B45 B8       mov     eax, dword ptr [ebp-48]
00676E71  |.  E8 9EDFD8FF   call    00404E14
00676E76  |.  8BC8          mov     ecx, eax
00676E78  |.  BA C06F6700   mov     edx, 00676FC0                    ;  注册码有误
00676E7D  |.  A1 94D16800   mov     eax, dword ptr [68D194]
00676E82  |.  8B00          mov     eax, dword ptr [eax]
00676E84  |.  E8 B723E3FF   call    004A9240
00676E89  |.  8B83 FC020000 mov     eax, dword ptr [ebx+2FC]
00676E8F  |.  8B10          mov     edx, dword ptr [eax]
00676E91  |.  FF92 C4000000 call    dword ptr [edx+C4]
00676E97  |.  E9 C2000000   jmp     00676F5E
00676E9C  |>  A1 40CF6800   mov     eax, dword ptr [68CF40]
00676EA1  |.  8B00          mov     eax, dword ptr [eax]
00676EA3  |.  8B40 5C       mov     eax, dword ptr [eax+5C]
00676EA6  |.  33D2          xor     edx, edx
00676EA8  |.  8B08          mov     ecx, dword ptr [eax]
00676EAA  |.  FF91 78010000 call    dword ptr [ecx+178]
00676EB0  |.  8D55 E4       lea     edx, dword ptr [ebp-1C]
00676EB3  |.  8B45 FC       mov     eax, dword ptr [ebp-4]           ;  假码
00676EB6  |.  E8 8DFAFFFF   call    00676948
00676EBB  |.  8D45 E4       lea     eax, dword ptr [ebp-1C]
00676EBE  |.  8D55 AC       lea     edx, dword ptr [ebp-54]
00676EC1  |.  E8 F6FAFFFF   call    006769BC                         ;  假码MD5
00676EC6  |.  8B45 AC       mov     eax, dword ptr [ebp-54]
00676EC9  |.  8D55 B0       lea     edx, dword ptr [ebp-50]
00676ECC  |.  E8 5B2AD9FF   call    0040992C
00676ED1  |.  8B4D B0       mov     ecx, dword ptr [ebp-50]
00676ED4  |.  8D45 B4       lea     eax, dword ptr [ebp-4C]
00676ED7  |.  BA FC6F6700   mov     edx, 00676FFC                    ;  update xl set xl =
00676EDC  |.  E8 7FDDD8FF   call    00404C60                         ;  连接
00676EE1  |.  8B45 B4       mov     eax, dword ptr [ebp-4C]
00676EE4  |.  50            push    eax
00676EE5  |.  A1 40CF6800   mov     eax, dword ptr [68CF40]
00676EEA  |.  8B00          mov     eax, dword ptr [eax]
00676EEC  |.  8B40 5C       mov     eax, dword ptr [eax+5C]
00676EEF  |.  E8 303AFFFF   call    0066A924
00676EF4  |.  5A            pop     edx                              ;  (initial cpu selection)
00676EF5  |.  8B08          mov     ecx, dword ptr [eax]
00676EF7  |.  FF51 2C       call    dword ptr [ecx+2C]               ;  写入文件
00676EFA  |.  A1 40CF6800   mov     eax, dword ptr [68CF40]
00676EFF  |.  8B00          mov     eax, dword ptr [eax]
00676F01  |.  8B40 5C       mov     eax, dword ptr [eax+5C]
00676F04  |.  E8 4339FFFF   call    0066A84C
00676F09  |.  33D2          xor     edx, edx
00676F0B  |.  8B83 F8020000 mov     eax, dword ptr [ebx+2F8]
00676F11  |.  8B08          mov     ecx, dword ptr [eax]
00676F13  |.  FF51 64       call    dword ptr [ecx+64]
00676F16  |.  33D2          xor     edx, edx
00676F18  |.  8B83 FC020000 mov     eax, dword ptr [ebx+2FC]
00676F1E  |.  8B08          mov     ecx, dword ptr [eax]
00676F20  |.  FF51 64       call    dword ptr [ecx+64]
00676F23  |.  33D2          xor     edx, edx
00676F25  |.  8B83 0C030000 mov     eax, dword ptr [ebx+30C]
00676F2B  |.  8B08          mov     ecx, dword ptr [eax]
00676F2D  |.  FF51 64       call    dword ptr [ecx+64]
00676F30  |.  33D2          xor     edx, edx
00676F32  |.  8B83 10030000 mov     eax, dword ptr [ebx+310]
00676F38  |.  8B08          mov     ecx, dword ptr [eax]
00676F3A  |.  FF51 64       call    dword ptr [ecx+64]
00676F3D  |.  BA 18706700   mov     edx, 00677018                    ;  注册版本,感谢你的支持!
00676F42  |.  8B83 14030000 mov     eax, dword ptr [ebx+314]
00676F48  |.  E8 1F0AE1FF   call    0048796C
00676F4D  |.  B8 3C706700   mov     eax, 0067703C                    ;  注册成功,感谢您的支持
00676F52  |.  E8 215FDCFF   call    0043CE78
00676F57  |.  8BC3          mov     eax, ebx
00676F59  |.  E8 9AE8E2FF   call    004A57F8
【算法总结】机器码和20100602相加,前边加上“68”就是注册码。
算法就这样了。简单到让人提不起兴趣写注册机。
【一点感叹】这个软件的算法其实根本不值得写一篇破文。只是有些话想说说。
一些国产软件作者的自我防护意识太差。看得出作者也想做一些自我保护,也想了一些办法。可软件保护方面的知识太少。
虽然使用了MD5算法,但Md5算法在这里根本就是摆设。如果要用MD5保护,至少不应该在软件里出现真码,然后求其MD5。
软件既然想分段验证,后半段至少不应该再去包含前半段。。。
最严重的是,看起来还在一直运算,其实中间过程中明码已经出现。。。
此外,爆破点太容易找到,字符串,dede。。。随便一个菜鸟都能搞定。。。
【版权声明】破文是学习的手记,兴趣是成功的源泉;本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
【后    记】已与软件作者联系,指出以上问题。期待软件的下一个版本。

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

Hmily 发表于 2010-6-22 11:06
百度了下文章中的扣扣号发现了是什么软件...
 楼主| zaas 发表于 2010-6-22 11:17
百度了下文章中的扣扣号发现了是什么软件...
Hmily 发表于 2010-6-22 11:06



    咣当~我改下。。
Hmily 发表于 2010-6-22 12:28
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-22 22:05

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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