飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 6263|回复: 14

[原创] Art*** Pro 暴破浅谈

  [复制链接]
  • TA的每日心情
    开心
    2015-8-23 23:49
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2010-6-3 15:57:31 | 显示全部楼层 |阅读模式
    本帖最后由 GGLHY 于 2010-6-4 00:16 编辑

    今天终于有了一点小空闲,想起前段时间搞过的一个软件Art*** Pro(稍微隐藏下软件名哈),便抽空整理了下笔记。
    呵呵,简单的爆了下,没看算法哈。本文如有错误,敬请大牛指正!

    OD载入,运行Art*** Pro,输入注册信息:
    name:gglhy
    key:15987530
    点注册,弹出:please reenter key. key is required 的对话框。
    好的。看看用什么断点能直捣黄龙?
    F12的方法、或者MessageBoxA都能来到达到目的哈。现在我们看看有什么有用的字符串参考:
    00551687   mov     ecx, 005516A8                     invalid key
    0055DA6F   mov     edx, 0055DAB8                     please reenter key.\n\n
    0055DB51   mov     eax, 0055E150                     - key begin key -
    0055DB6A   mov     eax, 0055E16C                     - key end key -
    0055DB99   mov     edx, 0055E184                     not found row: - key begin key -
    0055DBB4   mov     edx, 0055E1B0                     not found row: - key end key -
    0055DF8F   push    0055E1F0                          software\aha-soft\
    0055DF9B   push    0055E20C                          \
    0055DFD5   mov     edx, 0055E218                     key
    0055DFE2   mov     edx, 0055E218                     key
    0055E00D   mov     edx, 0055E224                     time
    0055E025   mov     edx, 0055E234                     fullproductname
    0055E057   push    0055E24C                          <br>
    0055E05C   push    0055E25C                           -
    0055E06F   push    0055E1D8
    0055E074   push    0055E268                          licenses -
    0055E089   mov     edx, 0055E27C                     username
    0055E0DD   mov     eax, 0055E290                     you should restart application now

    有这么多,够了哈。
    那我们先来看这里:
    - key begin key - 、 - key end key -
    呵呵,显然是对注册码的格式要求哈。
    如果选其他的字符串也可以很快定位到关键部分。

    那我们双击就可以来到注册验证的地方。
    0055DAD0  /$  55            push    ebp                                  ***在这里下断,F2
    0055DAD1  |.  8BEC          mov     ebp, esp
    0055DAD3  |.  B9 0F000000   mov     ecx, 0F
    0055DAD8  |>  6A 00         /push    0
    0055DADA  |.  6A 00         |push    0
    0055DADC  |.  49            |dec     ecx
    0055DADD  |.^ 75 F9         \jnz     short 0055DAD8
    0055DADF  |.  53            push    ebx
    0055DAE0  |.  56            push    esi
    0055DAE1  |.  57            push    edi
    0055DAE2  |.  8945 FC       mov     dword ptr [ebp-4], eax
    0055DAE5  |.  33C0          xor     eax, eax
    0055DAE7  |.  55            push    ebp
    0055DAE8  |.  68 34E15500   push    0055E134
    0055DAED  |.  64:FF30       push    dword ptr fs:[eax]
    0055DAF0  |.  64:8920       mov     dword ptr fs:[eax], esp
    0055DAF3  |.  C745 E8 FFFFF>mov     dword ptr [ebp-18], -1
    0055**  |.  C745 E4 FFFFF>mov     dword ptr [ebp-1C], -1
    0055DB01  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
    0055DB04  |.  8B80 E0020000 mov     eax, dword ptr [eax+2E0]
    0055DB0A  |.  8B80 08020000 mov     eax, dword ptr [eax+208]
    0055DB10  |.  8B10          mov     edx, dword ptr [eax]
    0055DB12  |.  FF52 14       call    dword ptr [edx+14]
    0055DB15  |.  8BF0          mov     esi, eax
    0055DB17  |.  4E            dec     esi
    0055DB18  |.  85F6          test    esi, esi
    0055DB1A  |.  7C 66         jl      short 0055DB82
    0055DB1C  |.  46            inc     esi
    0055DB1D  |.  33DB          xor     ebx, ebx
    0055DB1F  |>  8D4D C0       /lea     ecx, dword ptr [ebp-40]
    0055DB22  |.  8B45 FC       |mov     eax, dword ptr [ebp-4]
    0055DB25  |.  8B80 E0020000 |mov     eax, dword ptr [eax+2E0]
    0055DB2B  |.  8B80 08020000 |mov     eax, dword ptr [eax+208]
    0055DB31  |.  8BD3          |mov     edx, ebx
    0055DB33  |.  8B38          |mov     edi, dword ptr [eax]
    0055DB35  |.  FF57 0C       |call    dword ptr [edi+C]
    0055DB38  |.  8B45 C0       |mov     eax, dword ptr [ebp-40]
    0055DB3B  |.  8D55 C4       |lea     edx, dword ptr [ebp-3C]
    0055DB3E  |.  E8 D9C2EAFF   |call    00409E1C
    0055DB43  |.  8B45 C4       |mov     eax, dword ptr [ebp-3C]
    0055DB46  |.  8D55 F0       |lea     edx, dword ptr [ebp-10]
    0055DB49  |.  E8 1AC6EAFF   |call    0040A168
    0055DB4E  |.  8B55 F0       |mov     edx, dword ptr [ebp-10]
    0055DB51  |.  B8 50E15500   |mov     eax, 0055E150                   ;  - key begin key -
    0055DB56  |.  E8 9172EAFF   |call    00404DEC
    0055DB5B  |.  85C0          |test    eax, eax
    0055DB5D  |.  7E 08         |jle     short 0055DB67
    0055DB5F  |.  8D43 01       |lea     eax, dword ptr [ebx+1]
    0055DB62  |.  8945 E8       |mov     dword ptr [ebp-18], eax
    0055DB65  |.  EB 17         |jmp     short 0055DB7E
    0055DB67  |>  8B55 F0       |mov     edx, dword ptr [ebp-10]
    0055DB6A  |.  B8 6CE15500   |mov     eax, 0055E16C                   ;  - key end key -
    0055DB6F  |.  E8 7872EAFF   |call    00404DEC
    0055DB74  |.  85C0          |test    eax, eax
    0055DB76  |.  7E 06         |jle     short 0055DB7E
    0055DB78  |.  8BC3          |mov     eax, ebx
    0055DB7A  |.  48            |dec     eax
    0055DB7B  |.  8945 E4       |mov     dword ptr [ebp-1C], eax
    0055DB7E  |>  43            |inc     ebx
    0055DB7F  |.  4E            |dec     esi
    0055DB80  |.^ 75 9D         \jnz     short 0055DB1F
    0055DB82  |>  8D45 EC       lea     eax, dword ptr [ebp-14]          ***上面的循环应该是对输入的注册码的格式检验
    0055DB85  |.  E8 BE6CEAFF   call    00404848
    0055DB8A  |.  837D E8 FF    cmp     dword ptr [ebp-18], -1
    0055DB8E  |.  75 15         jnz     short 0055DBA5
    0055DB90  |.  837D E4 00    cmp     dword ptr [ebp-1C], 0
    0055DB94  |.  7E 0F         jle     short 0055DBA5
    0055DB96  |.  8D45 EC       lea     eax, dword ptr [ebp-14]
    0055DB99  |.  BA 84E15500   mov     edx, 0055E184                    ;  not found row: - key begin key -
    0055DB9E  |.  E8 3D6DEAFF   call    004048E0
    0055DBA3  |.  EB 19         jmp     short 0055DBBE
    0055DBA5  |>  837D E4 FF    cmp     dword ptr [ebp-1C], -1
    0055DBA9  |.  75 13         jnz     short 0055DBBE
    0055DBAB  |.  837D E8 00    cmp     dword ptr [ebp-18], 0
    0055DBAF  |.  7E 0D         jle     short 0055DBBE
    0055DBB1  |.  8D45 EC       lea     eax, dword ptr [ebp-14]
    0055DBB4  |.  BA B0E15500   mov     edx, 0055E1B0                    ;  not found row: - key end key -
    0055DBB9  |.  E8 226DEAFF   call    004048E0
    0055DBBE  |>  837D EC 00    cmp     dword ptr [ebp-14], 0
    0055DBC2  |.  74 08         je      short 0055DBCC
    0055DBC4  |.  8B45 EC       mov     eax, dword ptr [ebp-14]
    0055DBC7  |.  E8 88FEFFFF   call    0055DA54
    0055DBCC  |>  8D45 F4       lea     eax, dword ptr [ebp-C]
    0055DBCF  |.  E8 746CEAFF   call    00404848
    0055DBD4  |.  837D E8 00    cmp     dword ptr [ebp-18], 0
    0055DBD8  |.  7E 06         jle     short 0055DBE0
    0055DBDA  |.  837D E4 00    cmp     dword ptr [ebp-1C], 0
    0055DBDE  |.  7F 1D         jg      short 0055DBFD
    0055DBE0  |>  33C0          xor     eax, eax
    0055DBE2  |.  8945 E8       mov     dword ptr [ebp-18], eax
    0055DBE5  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
    0055DBE8  |.  8B80 E0020000 mov     eax, dword ptr [eax+2E0]
    0055DBEE  |.  8B80 08020000 mov     eax, dword ptr [eax+208]
    0055DBF4  |.  8B10          mov     edx, dword ptr [eax]
    0055DBF6  |.  FF52 14       call    dword ptr [edx+14]
    0055DBF9  |.  48            dec     eax
    0055DBFA  |.  8945 E4       mov     dword ptr [ebp-1C], eax
    0055DBFD  |>  8B45 FC       mov     eax, dword ptr [ebp-4]
    0055DC00  |.  8B80 FC020000 mov     eax, dword ptr [eax+2FC]
    0055DC06  |.  8B10          mov     edx, dword ptr [eax]
    0055DC08  |.  FF52 40       call    dword ptr [edx+40]
    0055DC0B  |.  33C0          xor     eax, eax
    0055DC0D  |.  8945 E0       mov     dword ptr [ebp-20], eax
    0055DC10  |.  8B5D E8       mov     ebx, dword ptr [ebp-18]
    0055DC13  |.  8B75 E4       mov     esi, dword ptr [ebp-1C]
    0055DC16  |.  2BF3          sub     esi, ebx
    0055DC18  |.  0F8C 8E000000 jl      0055DCAC
    0055DC1E  |.  46            inc     esi
    0055DC1F  |>  8D4D BC       /lea     ecx, dword ptr [ebp-44]
    0055DC22  |.  8B45 FC       |mov     eax, dword ptr [ebp-4]
    0055DC25  |.  8B80 E0020000 |mov     eax, dword ptr [eax+2E0]
    0055DC2B  |.  8B80 08020000 |mov     eax, dword ptr [eax+208]
    0055DC31  |.  8BD3          |mov     edx, ebx
    0055DC33  |.  8B38          |mov     edi, dword ptr [eax]
    0055DC35  |.  FF57 0C       |call    dword ptr [edi+C]
    0055DC38  |.  8B45 BC       |mov     eax, dword ptr [ebp-44]
    0055DC3B  |.  8D55 D4       |lea     edx, dword ptr [ebp-2C]
    0055DC3E  |.  E8 25C5EAFF   |call    0040A168
    0055DC43  |.  8D45 B8       |lea     eax, dword ptr [ebp-48]
    0055DC46  |.  50            |push    eax
    0055DC47  |.  33C9          |xor     ecx, ecx
    0055DC49  |.  BA D8E15500   |mov     edx, 0055E1D8
    0055DC4E  |.  8B45 D4       |mov     eax, dword ptr [ebp-2C]
    0055DC51  |.  E8 E25AF1FF   |call    00473738
    0055DC56  |.  8B55 B8       |mov     edx, dword ptr [ebp-48]
    0055DC59  |.  8D45 D4       |lea     eax, dword ptr [ebp-2C]
    0055DC5C  |.  E8 7F6CEAFF   |call    004048E0
    0055DC61  |.  8D45 F4       |lea     eax, dword ptr [ebp-C]
    0055DC64  |.  8B55 D4       |mov     edx, dword ptr [ebp-2C]
    0055DC67  |.  E8 9C6EEAFF   |call    00404B08
    0055DC6C  |.  8B45 D4       |mov     eax, dword ptr [ebp-2C]
    0055DC6F  |.  E8 8C6EEAFF   |call    00404B00
    0055DC74  |.  83F8 0A       |cmp     eax, 0A
    0055DC77  |.  7E 17         |jle     short 0055DC90
    0055DC79  |.  837D E0 00    |cmp     dword ptr [ebp-20], 0
    0055DC7D  |.  75 11         |jnz     short 0055DC90
    0055DC7F  |.  8B45 FC       |mov     eax, dword ptr [ebp-4]
    0055DC82  |.  8B80 FC020000 |mov     eax, dword ptr [eax+2FC]
    0055DC88  |.  8B55 D4       |mov     edx, dword ptr [ebp-2C]
    0055DC8B  |.  8B08          |mov     ecx, dword ptr [eax]
    0055DC8D  |.  FF51 34       |call    dword ptr [ecx+34]
    0055DC90  |>  8B55 D4       |mov     edx, dword ptr [ebp-2C]
    0055DC93  |.  B8 E4E15500   |mov     eax, 0055E1E4                   ;  =
    0055DC98  |.  E8 4F71EAFF   |call    00404DEC
    0055DC9D  |.  85C0          |test    eax, eax
    0055DC9F  |.  7E 03         |jle     short 0055DCA4
    0055DCA1  |.  FF45 E0       |inc     dword ptr [ebp-20]
    0055DCA4  |>  43            |inc     ebx
    0055DCA5  |.  4E            |dec     esi
    0055DCA6  |.^ 0F85 73FFFFFF \jnz     0055DC1F
    0055DCAC  |>  837D F4 00    cmp     dword ptr [ebp-C], 0            ***这看来是对注册码中间部分的检验(是否输入了)
    0055DCB0  |.  75 0C         jnz     short 0055DCBE
    0055DCB2  |.  A1 C8D45A00   mov     eax, dword ptr [5AD4C8]
    0055DCB7  |.  8B00          mov     eax, dword ptr [eax]
    0055DCB9  |.  E8 96FDFFFF   call    0055DA54
    0055DCBE  |>  8B45 F4       mov     eax, dword ptr [ebp-C]          ***输入的注册码中间部分(我这里是15987530)
    0055DCC1  |.  E8 3A6EEAFF   call    00404B00
    0055DCC6  |.  8B55 F4       mov     edx, dword ptr [ebp-C]
    0055DCC9  |.  807C02 FF 22  cmp     byte ptr [edx+eax-1], 22        ***最后1位与"比较。
    0055DCCE  |.  75 17         jnz     short 0055DCE7
    0055DCD0  |.  8B45 F4       mov     eax, dword ptr [ebp-C]
    0055DCD3  |.  E8 286EEAFF   call    00404B00
    0055DCD8  |.  8BD0          mov     edx, eax
    0055DCDA  |.  8D45 F4       lea     eax, dword ptr [ebp-C]
    0055DCDD  |.  B9 01000000   mov     ecx, 1
    0055DCE2  |.  E8 6170EAFF   call    00404D48
    0055DCE7  |>  8B45 F4       mov     eax, dword ptr [ebp-C]
    0055DCEA  |.  E8 116EEAFF   call    00404B00
    0055DCEF  |.  8BD8          mov     ebx, eax
    0055DCF1  |.  83FB 01       cmp     ebx, 1
    0055DCF4  |.  7C 2A         jl      short 0055DD20
    0055DCF6  |>  8B45 F4       /mov     eax, dword ptr [ebp-C]
    0055DCF9  |.  807C18 FF 22  |cmp     byte ptr [eax+ebx-1], 22
    0055DCFE  |.  75 1B         |jnz     short 0055DD1B
    0055DD00  |.  8B45 F4       |mov     eax, dword ptr [ebp-C]
    0055DD03  |.  E8 F86DEAFF   |call    00404B00
    0055DD08  |.  3BD8          |cmp     ebx, eax
    0055DD0A  |.  7F 0F         |jg      short 0055DD1B
    0055DD0C  |.  8D45 F4       |lea     eax, dword ptr [ebp-C]
    0055DD0F  |.  8BCB          |mov     ecx, ebx
    0055DD11  |.  BA 01000000   |mov     edx, 1
    0055DD16  |.  E8 2D70EAFF   |call    00404D48
    0055DD1B  |>  4B            |dec     ebx
    0055DD1C  |.  85DB          |test    ebx, ebx
    0055DD1E  |.^ 75 D6         \jnz     short 0055DCF6
    0055DD20  |>  8D55 B4       lea     edx, dword ptr [ebp-4C]            ***是否还有"。有的话就OVER
    0055DD23  |.  8B45 F4       mov     eax, dword ptr [ebp-C]
    0055DD26  |.  E8 3DC4EAFF   call    0040A168
    0055DD2B  |.  8B55 B4       mov     edx, dword ptr [ebp-4C]
    0055DD2E  |.  8D45 F4       lea     eax, dword ptr [ebp-C]
    0055DD31  |.  E8 AA6BEAFF   call    004048E0
    0055DD36  |.  8B45 F4       mov     eax, dword ptr [ebp-C]
    0055DD39  |.  E8 C26DEAFF   call    00404B00
    0055DD3E  |.  83F8 64       cmp     eax, 64                          ;  哈哈,比较注册码的长度
    0055DD41  |.  7D 0C         jge     short 0055DD4F                      ***是不是该JMP呢?/:017
    0055DD43  |.  A1 C8D45A00   mov     eax, dword ptr [5AD4C8]
    0055DD48  |.  8B00          mov     eax, dword ptr [eax]
    ....(省略部分代码)...
    0055DF5D  |>  8B45 F4       mov     eax, dword ptr [ebp-C]
    0055DF60  |.  E8 0337FFFF   call    00551668                         ;  F7***注册码或格式不对的话,这里肯定挂。有猫腻哈
    0055DF65  |.  B2 01         mov     dl, 1
    0055DF67  |.  A1 98DF4800   mov     eax, dword ptr [48DF98]
    0055DF6C  |.  E8 7F01F3FF   call    0048E0F0
    0055DF71  |.  8945 DC       mov     dword ptr [ebp-24], eax
    0055DF74  |.  33C0          xor     eax, eax
    0055DF76  |.  55            push    ebp
    0055DF77  |.  68 ACE05500   push    0055E0AC
    0055DF7C  |.  64:FF30       push    dword ptr fs:[eax]
    0055DF7F  |.  64:8920       mov     dword ptr fs:[eax], esp
    0055DF82  |.  BA 01000080   mov     edx, 80000001
    0055DF87  |.  8B45 DC       mov     eax, dword ptr [ebp-24]           ***准备将注册信息写入注册表了
    0055DF8A  |.  E8 9102F3FF   call    0048E220
    0055DF8F  |.  68 F0E15500   push    0055E1F0                         ;  software\aha-soft\
    0055DF94  |.  A1 78D75A00   mov     eax, dword ptr [5AD778]
    0055DF99  |.  FF30          push    dword ptr [eax]
    0055DF9B  |.  68 0CE25500   push    0055E20C                         ;  \
    0055DFA0  |.  8D45 98       lea     eax, dword ptr [ebp-68]
    0055DFA3  |.  E8 4034FFFF   call    005513E8
    0055DFA8  |.  FF75 98       push    dword ptr [ebp-68]
    0055DFAB  |.  8D45 9C       lea     eax, dword ptr [ebp-64]
    0055DFAE  |.  BA 04000000   mov     edx, 4
    0055DFB3  |.  E8 086CEAFF   call    00404BC0
    0055DFB8  |.  8B55 9C       mov     edx, dword ptr [ebp-64]
    0055DFBB  |.  B1 01         mov     cl, 1
    0055DFBD  |.  8B45 DC       mov     eax, dword ptr [ebp-24]
    0055DFC0  |.  E8 2B03F3FF   call    0048E2F0
    0055DFC5  |.  8845 FB       mov     byte ptr [ebp-5], al
    0055DFC8  |.  807D FB 00    cmp     byte ptr [ebp-5], 0
    0055DFCC  |.  0F84 C4000000 je      0055E096
    0055DFD2  |.  8B4D F4       mov     ecx, dword ptr [ebp-C]
    0055DFD5  |.  BA 18E25500   mov     edx, 0055E218                    ;  key
    0055DFDA  |.  8B45 DC       mov     eax, dword ptr [ebp-24]
    0055DFDD  |.  E8 EA08F3FF   call    0048E8CC
    0055DFE2  |.  BA 18E25500   mov     edx, 0055E218                    ;  key
    0055DFE7  |.  8D4D 94       lea     ecx, dword ptr [ebp-6C]
    0055DFEA  |.  8B45 DC       mov     eax, dword ptr [ebp-24]
    0055DFED  |.  E8 0E09F3FF   call    0048E900
    0055DFF2  |.  8B55 94       mov     edx, dword ptr [ebp-6C]
    0055DFF5  |.  8B45 F4       mov     eax, dword ptr [ebp-C]
    0055DFF8  |.  E8 136CEAFF   call    00404C10
    0055DFFD  |.  0F9445 FB     sete    byte ptr [ebp-5]
    0055E001  |.  E8 F2DCEAFF   call    0040BCF8
    0055E006  |.  83C4 F8       add     esp, -8                          ; /
    0055E009  |.  DD1C24        fstp    qword ptr [esp]                  ; |Arg1 (8 字节)
    0055E00C  |.  9B            wait                                     ; |
    0055E00D  |.  BA 24E25500   mov     edx, 0055E224                    ; |time
    0055E012  |.  8B45 DC       mov     eax, dword ptr [ebp-24]          ; |
    0055E015  |.  E8 7209F3FF   call    0048E98C                         ; \ART***.0048E98C
    0055E01A  |.  8D45 90       lea     eax, dword ptr [ebp-70]
    0055E01D  |.  E8 B2510400   call    005A31D4
    0055E022  |.  8B4D 90       mov     ecx, dword ptr [ebp-70]
    0055E025  |.  BA 34E25500   mov     edx, 0055E234                    ;  fullproductname
    0055E02A  |.  8B45 DC       mov     eax, dword ptr [ebp-24]
    0055E02D  |.  E8 9A08F3FF   call    0048E8CC
    0055E032  |.  8D55 8C       lea     edx, dword ptr [ebp-74]
    0055E035  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
    0055E038  |.  8B80 F0020000 mov     eax, dword ptr [eax+2F0]
    0055E03E  |.  E8 410AEEFF   call    0043EA84
    0055E043  |.  8B45 8C       mov     eax, dword ptr [ebp-74]
    0055E046  |.  8D55 D8       lea     edx, dword ptr [ebp-28]
    0055E049  |.  E8 1AC1EAFF   call    0040A168
    0055E04E  |.  837D E0 01    cmp     dword ptr [ebp-20], 1
    0055E052  |.  74 32         je      short 0055E086
    0055E054  |.  FF75 D8       push    dword ptr [ebp-28]
    0055E057  |.  68 4CE25500   push    0055E24C                         ;  <br>
    0055E05C  |.  68 5CE25500   push    0055E25C                         ;   -
    0055E061  |.  8D55 88       lea     edx, dword ptr [ebp-78]
    0055E064  |.  8B45 E0       mov     eax, dword ptr [ebp-20]
    0055E067  |.  E8 30C3EAFF   call    0040A39C
    0055E06C  |.  FF75 88       push    dword ptr [ebp-78]
    0055E06F  |.  68 D8E15500   push    0055E1D8
    0055E074  |.  68 68E25500   push    0055E268                         ;  licenses -
    0055E079  |.  8D45 D8       lea     eax, dword ptr [ebp-28]
    0055E07C  |.  BA 06000000   mov     edx, 6
    0055E081  |.  E8 3A6BEAFF   call    00404BC0
    0055E086  |>  8B4D D8       mov     ecx, dword ptr [ebp-28]
    0055E089  |.  BA 7CE25500   mov     edx, 0055E27C                    ;  username
    0055E08E  |.  8B45 DC       mov     eax, dword ptr [ebp-24]
    0055E091  |.  E8 3608F3FF   call    0048E8CC
    0055E096  |>  33C0          xor     eax, eax
    0055E098  |.  5A            pop     edx
    0055E099  |.  59            pop     ecx
    0055E09A  |.  59            pop     ecx
    0055E09B  |.  64:8910       mov     dword ptr fs:[eax], edx
    0055E09E  |.  68 B3E05500   push    0055E0B3
    0055E0A3  |>  8B45 DC       mov     eax, dword ptr [ebp-24]
    0055E0A6  |.  E8 F558EAFF   call    004039A0
    0055E0AB  \.  C3            retn


    显然,如果不想输入100位以上,那就把:
    0055DD3E  |.  83F8 64       cmp     eax, 64                          ;  哈哈,比较注册码的长度
    0055DD41  |.  7D 0C         jge     short 0055DD4F
    这里的jge short 0055DD4F
    改成JMP short 0055DD4F


    这个CALL有问题:
    0055DF60  |.  E8 0337FFFF   call    00551668                       ***我们要进去“改造”它

    我们F7进来后,重点修改这里:
    00551668      53            push    ebx
    00551669  |.  8BD8          mov     ebx, eax
    0055166B  |.  803B 30       cmp     byte ptr [ebx], 30
    0055166E      75 17         jnz     short 00551687                  ***一跳就挂
    00551670  |.  8BC3          mov     eax, ebx
    00551672  |.  E8 8934EBFF   call    00404B00
    00551677  |.  3D AD000000   cmp     eax, 0AD
    0055167C      75 09         jnz     short 00551687                  ***一跳就挂
    0055167E  |.  80BB AC000000>cmp     byte ptr [ebx+AC], 3D
    00551685      74 16         je      short 0055169D                  ***跳向光明之巅
    00551687  |>  B9 A8165500   mov     ecx, 005516A8                  ;  invalid key    ***这2个单词不用说了吧
    0055168C      B2 01         mov     dl, 1
    0055168E  |.  A1 B8914000   mov     eax, dword ptr [4091B8]
    00551693  |.  E8 34C7EBFF   call    0040DDCC
    00551698  |.  E8 F72AEBFF   call    00404194
    0055169D  |>  5B            pop     ebx
    0055169E  \.  C3            retn


    呵呵,那我们看看有什么方法可以实现暴破?

    方法一:
    00551668      53            push    ebx
    直接改成
    00551668      C3            retn


    方法二:
    00551669  |.  8BD8          mov     ebx, eax
    0055166B  |.  803B 30       cmp     byte ptr [ebx], 30
    直接改成
    00551669      5B            pop     ebx
    0055166A      C3            retn


    方法三:
    同时改掉下面几处:
    0055166E     /75 17         jnz     short 00551687
    直接NOP掉(或者改成JZ)
    0055167C     /75 09         jnz     short 00551687
    也要NOP掉(或者改成JZ)
    00551685     /74 16         je      short 0055169D
    改成
    00551685     /EB 16         jmp     short 0055169D


    呵呵,三种方法都能爆破成功!,而且不用受到- key begin key - 、 - key end key -的格式限制。

    在这里强调一下,为避免出现3楼的朋友那样的情况,这里要改一下,不然就输入至少100位注册码哈/:017
    0055DD41  |.  7D 0C         jge     short 0055DD4F
    这里的jge short 0055DD4F
    改成JMP short 0055DD4F




    注册信息保存在注册表里哈:
    [HKEY_CURRENT_USER\Software\Aha-soft\Art***\Registered]
    "Key"="15987530"
    "Time"=hex:71,1f,43,23,cf,b0,e3,40
    "FullProductName"="Aha-soft Art*** 5.28 Build 2010-May-03"
    "UserName"="gglhy"



        另外,这个软件如果破解注册成功,运行原版也成了注册版。可能只是判断了下注册表里是否存在注册信息而已。(没OD啊,猜的。哈哈)
    这倒有点像泡MM,没搞定的时候你无可奈何,一旦追到手,哈哈。她可不问你是绅士还是流氓,反正就是对你死心塌地的人了/:017

    ok.GIF


    刚看了下,只要注册表里有"Key"且值不为空即是注册版了。兄弟们自己动手建立一下就ok了。"UserName"倒是可有可无,如果没有程序会把电脑的系统属性中注册到的名称当做USERMANE的。
    zc.GIF






    这个CALL给出了注册码的限制条件:
    (用户名貌似没有参与运算,而且好像不存在算法,只要满足一定条件即可。有时间仔细验证下)

    0055DF60  |.  E8 0337FFFF   CALL ARTICONS.00551668   进入后:

    00551668  /$  53            PUSH EBX
    00551669      8BD8          MOV EBX,EAX
    0055166B  |.  803B 30       CMP BYTE PTR DS:[EBX],30                ;  输入的注册码是不是0开头?不是就错。
    0055166E  |.  75 17         JNZ SHORT ARTICONS.00551687
    00551670  |.  8BC3          MOV EAX,EBX
    00551672  |.  E8 8934EBFF   CALL ARTICONS.00404B00
    00551677  |.  3D AD000000   CMP EAX,0AD                             ;  输入的注册码的长度是否为AD,即173位,不是就错。
    0055167C  |.  75 09         JNZ SHORT ARTICONS.00551687             ;  
    0055167E  |.  80BB AC000000>CMP BYTE PTR DS:[EBX+AC],3D             ;  输入的注册码的是否以=结尾,不是就错。  
    00551685  |.  74 16         JE SHORT ARTICONS.0055169D              ;  
    00551687  |>  B9 A8165500   MOV ECX,ARTICONS.005516A8               ;  Invalid key
    0055168C  |.  B2 01         MOV DL,1
    0055168E  |.  A1 B8914000   MOV EAX,DWORD PTR DS:[4091B8]
    00551693  |.  E8 34C7EBFF   CALL ARTICONS.0040DDCC
    00551698  |.  E8 F72AEBFF   CALL ARTICONS.00404194
    0055169D  |>  5B            POP EBX
    0055169E  \.  C3            RETN

    汗,看来不用前面的三种方法来修改,只要输入的注册码同时满足这三种条件即可改。


    0055DDC6  |.  83F8 03       CMP EAX,3                               ;  输入的注册码的行数是否小于3。是的话跳向失败
    0055DDC9  |.  0F8C 8E010000 JL ARTICONS.0055DF5D                    ;
    这里虽然有个条件判断,但是貌似跳了无所谓。(有时间再研究一下这里)

    评分

    参与人数 1飘云币 +40 收起 理由
    月之精灵 + 40 您的贴子很精彩,希望能再次分享!

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-3-7 15:25
  • 签到天数: 442 天

    [LV.9]以坛为家II

    发表于 2010-6-3 16:07:42 | 显示全部楼层
    好,正需要,学习!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-3-7 15:25
  • 签到天数: 442 天

    [LV.9]以坛为家II

    发表于 2010-6-3 16:15:40 | 显示全部楼层
    好像三种方法都不行?每个都试了一下,楼主你再看看是不是这样,一运行还是出注册框,而且注册随便输入,还是提示 please reenter key .key is required.
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-6-3 16:18:16 | 显示全部楼层
    好强大,看楼上的情况是不是出现暗桩了呢/:022
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-8-23 23:49
  • 签到天数: 27 天

    [LV.4]偶尔看看III

     楼主| 发表于 2010-6-3 16:18:27 | 显示全部楼层
    好像三种方法都不行?每个都试了一下,楼主你再看看是不是这样,一运行还是出注册框,而且注册随便输入,还 ...
    sdnyzjzx 发表于 2010-6-3 16:15



        前面的有个CMP EAX,64下面的JGE改成JMP了没?
    /:017 要不你就输入至少100位哈
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-8-3 23:07
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2010-6-3 16:29:07 | 显示全部楼层
    有点儿KEYFILE的味道哈
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    昨天 18:15
  • 签到天数: 836 天

    [LV.10]以坛为家III

    发表于 2010-6-3 16:56:15 | 显示全部楼层
    谢谢分享,认真学习一下
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2024-1-15 22:57
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2010-6-3 17:30:11 | 显示全部楼层
    GGLHY有空可以看下算法。这个算法不复杂的。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-8-23 23:49
  • 签到天数: 27 天

    [LV.4]偶尔看看III

     楼主| 发表于 2010-6-3 18:13:31 | 显示全部楼层
    GGLHY有空可以看下算法。这个算法不复杂的。
    zaas 发表于 2010-6-3 17:30



        /:018
    呵呵,最近事情太多。很难专门抽出时间来搞。但是算法一定会找个时间好好看看。谢谢ZAAS啊:handshake
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-6-3 20:14:39 | 显示全部楼层
    顶下兄弟的作品,膜拜下/:good
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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