飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2860|回复: 4

[07版] 第四章算法分析:黄金屋业务管理软件 1.0 简单分析

[复制链接]
  • TA的每日心情
    慵懒
    2019-1-18 17:27
  • 签到天数: 30 天

    [LV.5]常住居民I

    发表于 2007-3-21 08:11:34 | 显示全部楼层 |阅读模式
    【破文标题】黄金屋业务管理软件 1.0 寻码记
    【破文作者】lzq1973[PYG][CZG][OCN][DFCG]
    【作者邮箱】[email protected]
    【作者主页】http://my.winzheng.com/?455397
    破解工具】OD、PEiD
    【破解平台】WinXP
    【软件名称】黄金屋业务管理软件 1.0
    【软件大小】2337KB
    【原版下载】http://www.newhua.com/soft/8430.htm
    【保护方式】SN
    【软件简介】    黄金屋业务管理软件是针对国内中小型企业的业务管理需求所开发的企业管理软件,业务管理软件的包括了财务管理,业务员管理,客户管理,业务业绩分析,

    业务收款管理等功能,软件中为用户划分了独立的管理空间,企业的业务员可以独立管理自己的业务信息,客户信息,互不干扰,而企业的财务主管可以掌握整个企业的财务信息

    ,企业的总经理能够总揽整个企业的一切运作状况。
    【破解声明】俺是只小小鸟,纯为学习,愿与大家分享!
    ------------------------------------------------------------------------
    【破解过程】
    1、PEiD侦之“Borland Delphi 6.0 - 7.0”,无壳,心中暗喜;
    2、运行程序,来到注册界面,试着注册,有提示“注册码错误,请重新操作”,属直接比较型;
    3、OD载入,用其插件找字相关字符串(上面已说了的),双击后来到565DD4这里,向上找子程序的开始处为565CB0,在这里下断,就来到了...


    00565CB0  /.  55            push    ebp
    00565CB1  |.  8BEC          mov     ebp, esp
    00565CB3  |.  6A 00         push    0
    00565CB5  |.  6A 00         push    0
    00565CB7  |.  6A 00         push    0
    00565CB9  |.  33C0          xor     eax, eax
    00565CBB  |.  55            push    ebp
    00565CBC  |.  68 F95D5600   push    00565DF9
    00565CC1  |.  64:FF30       push    dword ptr fs:[eax]
    00565CC4  |.  64:8920       mov     fs:[eax], esp
    00565CC7  |.  A1 E4605B00   mov     eax, [5B60E4]
    00565CCC  |.  8B00          mov     eax, [eax]
    00565CCE  |.  50            push    eax
    00565CCF  |.  8D45 F8       lea     eax, [ebp-8]
    00565CD2  |.  50            push    eax
    00565CD3  |.  B9 0C5E5600   mov     ecx, 00565E0C                    ;  urv
    00565CD8  |.  BA 185E5600   mov     edx, 00565E18                    ;  sv
    00565CDD  |.  B8 245E5600   mov     eax, 00565E24                    ;  superaffair
    00565CE2  |.  E8 31AEFFFF   call    00560B18
    00565CE7  |.  8B45 F8       mov     eax, [ebp-8]
    00565CEA  |.  BA 385E5600   mov     edx, 00565E38                    ;  regver
    00565CEF  |.  E8 1CEAE9FF   call    00404710
    00565CF4  |.  75 0F         jnz     short 00565D05
    00565CF6  |.  B8 485E5600   mov     eax, 00565E48                    ;  软件注册已经成功,谢谢您的支持!
    00565CFB  |.  E8 4C4EEDFF   call    0043AB4C
    00565D00  |.  E9 D9000000   jmp     00565DDE
    00565D05  |>  E8 AEB3FFFF   call    005610B8
    00565D0A  |.  8D55 FC       lea     edx, [ebp-4]
    00565D0D  |.  E8 D240EAFF   call    00409DE4
    00565D12  |.  A1 7C615B00   mov     eax, [5B617C]
    00565D17  |.  8B00          mov     eax, [eax]
    00565D19  |.  05 10030000   add     eax, 310
    00565D1E  |.  BA 745E5600   mov     edx, 00565E74                    ;  软件注册
    00565D23  |.  E8 30E6E9FF   call    00404358
    00565D28  |.  68 885E5600   push    00565E88                         ;  序列号为:
    00565D2D  |.  FF75 FC       push    dword ptr [ebp-4]
    00565D30  |.  68 9C5E5600   push    00565E9C                         ;  ,请输入注册码
    00565D35  |.  A1 7C615B00   mov     eax, [5B617C]
    00565D3A  |.  8B00          mov     eax, [eax]
    00565D3C  |.  05 14030000   add     eax, 314
    00565D41  |.  BA 03000000   mov     edx, 3
    00565D46  |.  E8 39E9E9FF   call    00404684
    00565D4B  |.  A1 7C615B00   mov     eax, [5B617C]
    00565D50  |.  8B00          mov     eax, [eax]
    00565D52  |.  05 18030000   add     eax, 318
    00565D57  |.  E8 A8E5E9FF   call    00404304
    00565D5C  |.  A1 7C615B00   mov     eax, [5B617C]
    00565D61  |.  8B00          mov     eax, [eax]
    00565D63  |.  8B10          mov     edx, [eax]
    00565D65  |.  FF92 EC000000 call    [edx+EC]
    00565D6B  |.  48            dec     eax
    00565D6C  |.  75 70         jnz     short 00565DDE
    00565D6E  |.  8D55 F4       lea     edx, [ebp-C]
    00565D71  |.  8B45 FC       mov     eax, [ebp-4]
    00565D74  |.  E8 EBB1FFFF   call    00560F64                         ;  关键处(注册算法)
    00565D79  |.  8B55 F4       mov     edx, [ebp-C]                     ;  (ASCII "CC753362")
    00565D7C  |.  A1 7C615B00   mov     eax, [5B617C]
    00565D81  |.  8B00          mov     eax, [eax]
    00565D83  |.  8B80 18030000 mov     eax, [eax+318]                   ;  假码
    00565D89  |.  E8 82E9E9FF   call    00404710
    00565D8E  |.  75 44         jnz     short 00565DD4
    00565D90  |.  A1 E4605B00   mov     eax, [5B60E4]
    00565D95  |.  8B00          mov     eax, [eax]                       ;  注册信息保存处 (ASCII "C:\WINDOWS\UnderWork.ini")
    00565D97  |.  50            push    eax
    00565D98  |.  B9 385E5600   mov     ecx, 00565E38                    ;  注册标志   regver
    00565D9D  |.  BA 185E5600   mov     edx, 00565E18                    ;  sv
    00565DA2  |.  B8 245E5600   mov     eax, 00565E24                    ;  superaffair
    00565DA7  |.  E8 80AEFFFF   call    00560C2C
    00565DAC  |.  A1 E4605B00   mov     eax, [5B60E4]
    00565DB1  |.  8B00          mov     eax, [eax]
    00565DB3  |.  50            push    eax
    00565DB4  |.  B9 B45E5600   mov     ecx, 00565EB4                    ;  alive
    00565DB9  |.  BA C45E5600   mov     edx, 00565EC4                    ;  systemstate
    00565DBE  |.  B8 245E5600   mov     eax, 00565E24                    ;  superaffair
    00565DC3  |.  E8 64AEFFFF   call    00560C2C
    00565DC8  |.  B8 D85E5600   mov     eax, 00565ED8                    ;  软件注册成功,谢谢您的支持!
    00565DCD  |.  E8 7A4DEDFF   call    0043AB4C
    00565DD2  |.  EB 0A         jmp     short 00565DDE
    00565DD4  |>  B8 005F5600   mov     eax, 00565F00                    ;  注册码错误,请重新操作
    00565DD9  |.  E8 6E4DEDFF   call    0043AB4C
    00565DDE  |>  33C0          xor     eax, eax
    00565DE0  |.  5A            pop     edx
    00565DE1  |.  59            pop     ecx
    00565DE2  |.  59            pop     ecx
    00565DE3  |.  64:8910       mov     fs:[eax], edx
    00565DE6  |.  68 005E5600   push    00565E00
    00565DEB  |>  8D45 F4       lea     eax, [ebp-C]
    00565DEE  |.  BA 03000000   mov     edx, 3
    00565DF3  |.  E8 30E5E9FF   call    00404328
    00565DF8  \.  C3            retn
    00565DF9   .^ E9 2ADEE9FF   jmp     00403C28
    00565DFE   .^ EB EB         jmp     short 00565DEB
    00565E00   .  8BE5          mov     esp, ebp
    00565E02   .  5D            pop     ebp
    00565E03   .  C3            retn



    ====== 这里F7  00565D74  |.  E8 EBB1FFFF   call    00560F64 ============


    00560F64  /$  55            push    ebp                              ;  来到这里
    00560F65  |.  8BEC          mov     ebp, esp
    00560F67  |.  33C9          xor     ecx, ecx
    00560F69  |.  51            push    ecx
    00560F6A  |.  51            push    ecx
    00560F6B  |.  51            push    ecx
    00560F6C  |.  51            push    ecx
    00560F6D  |.  51            push    ecx
    00560F6E  |.  51            push    ecx
    00560F6F  |.  51            push    ecx
    00560F70  |.  53            push    ebx
    00560F71  |.  56            push    esi
    00560F72  |.  57            push    edi
    00560F73  |.  8955 F8       mov     [ebp-8], edx
    00560F76  |.  8945 FC       mov     [ebp-4], eax                     ;  机器码A (ASCII "      PF2B27K2119S5A")
    00560F79  |.  8B45 FC       mov     eax, [ebp-4]
    00560F7C  |.  E8 3338EAFF   call    004047B4
    00560F81  |.  33C0          xor     eax, eax
    00560F83  |.  55            push    ebp
    00560F84  |.  68 7C105600   push    0056107C
    00560F89  |.  64:FF30       push    dword ptr fs:[eax]
    00560F8C  |.  64:8920       mov     fs:[eax], esp
    00560F8F  |.  8B45 FC       mov     eax, [ebp-4]
    00560F92  |.  E8 2D36EAFF   call    004045C4
    00560F97  |.  8BF8          mov     edi, eax
    00560F99  |.  85FF          test    edi, edi
    00560F9B  |.  7E 2F         jle     short 00560FCC
    00560F9D  |.  BE 01000000   mov     esi, 1
    00560FA2  |>  8B45 FC       /mov     eax, [ebp-4]                    ;  / 取数字
    00560FA5  |.  8A5C30 FF     |mov     bl, [eax+esi-1]                 ;  |
    00560FA9  |.  80FB 31       |cmp     bl, 31                          ;  | 大于等于1
    00560FAC  |.  72 1A         |jb      short 00560FC8                  ;  |
    00560FAE  |.  80FB 39       |cmp     bl, 39                          ;  | 小于等于9
    00560FB1  |.  77 15         |ja      short 00560FC8                  ;  |
    00560FB3  |.  8D45 F0       |lea     eax, [ebp-10]                   ;  |
    00560FB6  |.  8BD3          |mov     edx, ebx                        ;  |
    00560FB8  |.  E8 2F35EAFF   |call    004044EC                        ;  |
    00560FBD  |.  8B55 F0       |mov     edx, [ebp-10]                   ;  |
    00560FC0  |.  8D45 F4       |lea     eax, [ebp-C]                    ;  |
    00560FC3  |.  E8 0436EAFF   |call    004045CC                        ;  |
    00560FC8  |>  46            |inc     esi                             ;  |
    00560FC9  |.  4F            |dec     edi                             ;  |
    00560FCA  |.^ 75 D6         \jnz     short 00560FA2                  ;  \ 循环
    00560FCC  |>  837D F4 00    cmp     dword ptr [ebp-C], 0             ;  (ASCII "22721195")
    00560FD0  |.  75 0D         jnz     short 00560FDF
    00560FD2  |.  8D45 F4       lea     eax, [ebp-C]
    00560FD5  |.  BA 94105600   mov     edx, 00561094
    00560FDA  |.  E8 BD33EAFF   call    0040439C
    00560FDF  |>  8B45 F4       mov     eax, [ebp-C]                     ;  取硬盘ID的数字从左至右,这里为10进制,假定为B (ASCII "22721195")
    00560FE2  |.  E8 1584EAFF   call    004093FC
    00560FE7  |.  05 A77D0000   add     eax, 7DA7                        ;  B+32167
    00560FEC  |.  83D2 00       adc     edx, 0
    00560FEF  |.  52            push    edx                              ; /Arg2
    00560FF0  |.  50            push    eax                              ; |Arg1
    00560FF1  |.  8D45 EC       lea     eax, [ebp-14]                    ; |
    00560FF4  |.  E8 3F83EAFF   call    00409338                         ; \SuperAff.00409338
    00560FF9  |.  8B55 EC       mov     edx, [ebp-14]                    ;  和为C (ASCII "22753362")
    00560FFC  |.  8D45 F4       lea     eax, [ebp-C]
    00560FFF  |.  E8 9833EAFF   call    0040439C
    00561004  |.  8D45 E8       lea     eax, [ebp-18]
    00561007  |.  8B55 F4       mov     edx, [ebp-C]                     ;  赋值给EDX(ASCII "22753362")
    0056100A  |.  8A12          mov     dl, [edx]                        ;  取第一位,(从左至右)
    0056100C  |.  E8 DB34EAFF   call    004044EC
    00561011  |.  8B45 E8       mov     eax, [ebp-18]
    00561014  |.  E8 6F83EAFF   call    00409388
    00561019  |.  8BD8          mov     ebx, eax
    0056101B  |.  80C3 41       add     bl, 41                           ;  这里是16进制相加 (2+41)=43
    0056101E  |.  8D45 F4       lea     eax, [ebp-C]
    00561021  |.  E8 F637EAFF   call    0040481C
    00561026  |.  8818          mov     [eax], bl                        ;  转为字符  bl=43 ('C')
    00561028  |.  8D45 E4       lea     eax, [ebp-1C]
    0056102B  |.  8B55 F4       mov     edx, [ebp-C]                     ;  替换C的第一字符 (ASCII "C2753362")
    0056102E  |.  8A52 01       mov     dl, [edx+1]                      ;  取第二位,(从左至右)
    00561031  |.  E8 B634EAFF   call    004044EC
    00561036  |.  8B45 E4       mov     eax, [ebp-1C]
    00561039  |.  E8 4A83EAFF   call    00409388
    0056103E  |.  8BD8          mov     ebx, eax
    00561040  |.  80C3 41       add     bl, 41                           ;  这里是16进制相加 (2+41)=43
    00561043  |.  8D45 F4       lea     eax, [ebp-C]
    00561046  |.  E8 D137EAFF   call    0040481C
    0056104B  |.  8858 01       mov     [eax+1], bl                      ;  转为字符  bl=43 ('C')
    0056104E  |.  8B45 F8       mov     eax, [ebp-8]
    00561051  |.  8B55 F4       mov     edx, [ebp-C]                     ;  替换C的第二字符 (ASCII "C2753362")
    00561054  |.  E8 FF32EAFF   call    00404358
    00561059  |.  33C0          xor     eax, eax
    0056105B  |.  5A            pop     edx
    0056105C  |.  59            pop     ecx
    0056105D  |.  59            pop     ecx
    0056105E  |.  64:8910       mov     fs:[eax], edx
    00561061  |.  68 83105600   push    00561083
    00561066  |>  8D45 E4       lea     eax, [ebp-1C]
    00561069  |.  BA 05000000   mov     edx, 5
    0056106E  |.  E8 B532EAFF   call    00404328
    00561073  |.  8D45 FC       lea     eax, [ebp-4]
    00561076  |.  E8 8932EAFF   call    00404304
    0056107B  \.  C3            retn
    0056107C   .^ E9 A72BEAFF   jmp     00403C28
    00561081   .^ EB E3         jmp     short 00561066
    00561083   .  5F            pop     edi
    00561084   .  5E            pop     esi
    00561085   .  5B            pop     ebx
    00561086   .  8BE5          mov     esp, ebp
    00561088   .  5D            pop     ebp
    00561089   .  C3            retn


    ------------------------------------------------------------------------
    【破解总结】
    典型的明码比较,其算法也简单,但还是总结一下的好。

    1、取其机器码A的数字组成另一字串B;
    2、B+32167的和组成另一字串C,这里为十进制运算;
    3、字串C的第一字符和第二字符分别加上41(这里为16进制运算),分别将其和转为字符,再连接后面的数字。
    4、注册信息保存处 (ASCII "C:\WINDOWS\UnderWork.ini"),删除可重来
    如:机器码为PF2B27K2119S5A;其数字就是22721195,加上32167后和为22753362;第一、二为分别为2、2,其算式分别为2+41=43、2+41=43,bl=43 ('C'),转换后就是CC753362,这就是注册码。
    ------------------------------------------------------------------------
    【版权声明】本文纯属技术交流, 转载请注明作者信息并保持文章的完整, 谢谢!




    [ 本帖最后由 lzq1973 于 2007-3-21 08:13 编辑 ]

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?加入我们

    x
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2019-1-18 17:27
  • 签到天数: 30 天

    [LV.5]常住居民I

     楼主| 发表于 2007-3-21 08:41:27 | 显示全部楼层

    再说几句,不要丢鸡蛋哟

    与此文相关的软件还有速用黄金屋财务软件 2.5 ,下载地址为http://www.onlinedown.net/soft/54811.htm,算法一样,只是那个ADD为1981,大家试试看~~

    0054F7E6  |.  8D55 F4       lea     edx, [ebp-C]
    0054F7E9  |.  8B45 FC       mov     eax, [ebp-4]
    0054F7EC  |.  E8 DFF2FEFF   call    0053EAD0                         ;  关键处
    0054F7F1  |.  8B55 F4       mov     edx, [ebp-C]                     ;  (ASCII "CC723176")
    0054F7F4  |.  A1 2C4F5500   mov     eax, [554F2C]
    0054F7F9  |.  8B00          mov     eax, [eax]
    0054F7FB  |.  8B80 18030000 mov     eax, [eax+318]
    0054F801  |.  E8 E64EEBFF   call    004046EC                         ;  内存注册(EDX)
    0054F806      74 44         je      short 0054F84C
    0054F808  |.  A1 A04E5500   mov     eax, [554EA0]
    0054F80D  |.  8B00          mov     eax, [eax]                       ;  (ASCII "C:\WINDOWS\mdnsm.ini")
    0054F80F  |.  50            push    eax
    0054F810  |.  B9 B0F85400   mov     ecx, 0054F8B0                    ;  regver
    0054F815  |.  BA 90F85400   mov     edx, 0054F890                    ;  sv

    [ 本帖最后由 lzq1973 于 2007-3-21 08:43 编辑 ]
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2019-1-18 17:27
  • 签到天数: 30 天

    [LV.5]常住居民I

     楼主| 发表于 2007-3-21 09:10:06 | 显示全部楼层
    与此文相关的软件还有黄金屋进销存 ,下载地址算法一样,只是那个ADD为32167,大家试试看~~


    00572B0A  |.  8D55 F4       lea     edx, [ebp-C]
    00572B0D  |.  8B45 FC       mov     eax, [ebp-4]
    00572B10  |.  E8 87B3FFFF   call    0056DE9C                         ;  关键处
    00572B15  |.  8B55 F4       mov     edx, [ebp-C]                     ;  (ASCII "CC753362")
    00572B18  |.  A1 C0715D00   mov     eax, [5D71C0]
    00572B1D  |.  8B00          mov     eax, [eax]
    00572B1F  |.  8B80 18030000 mov     eax, [eax+318]
    00572B25  |.  E8 E61BE9FF   call    00404710                         ;  内存注册器(EDX)
    00572B2A  |.  75 44         jnz     short 00572B70
    00572B2C  |.  A1 24715D00   mov     eax, [5D7124]
    00572B31  |.  8B00          mov     eax, [eax]
    00572B33  |.  50            push    eax
    00572B34  |.  B9 D42B5700   mov     ecx, 00572BD4                    ;  ASCII "RegVer"
    00572B39  |.  BA B42B5700   mov     edx, 00572BB4                    ;  ASCII "SV"


    注册信息保存处
    C:\WINDOWS\UnderWork.ini
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-3-21 12:35:45 | 显示全部楼层
    感谢送稿 期待很久了 学习下 呵呵~~
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-10-8 02:05
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2007-3-21 21:22:56 | 显示全部楼层
    感谢楼主送来这么好的礼物
    学习充填自己
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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