轻松换背景(Recomposit) 1.8

万能断点一下就断下来:

alt+F9和ctrl+F9几次就到了这里:
00434BE6   .  E8 C50D0000   call    004359B0                         ;  直接进入算法。
00434BEB   .  85C0          test    eax, eax
00434BED   .  0F84 EE000000 je      00434CE1                         ;  关键比较
00434BF3   .  57            push    edi
00434BF4   .  8B3E          mov     edi, dword ptr [esi]             ;  下面这些作者到底在干什么呢,
00434BF6   .  83C9 FF       or      ecx, FFFFFFFF                    ;  有兴趣的兄弟慢慢研究下
00434BF9   .  33C0          xor     eax, eax
00434BFB   .  F2:AE         repne   scas byte ptr es:[edi]



进去算法后,放眼就看到简单注册检测:

004359C2  |.  F7D1          not     ecx
004359C4  |.  49            dec     ecx
004359C5  |.  83F9 1C       cmp     ecx, 1C                          ;  输入的假码位数,
004359C8  |.  74 06         je      short 004359D0                   ;  要求1C=28位数
004359CA  |.  5F            pop     edi
004359CB  |.  5E            pop     esi
004359CC  |.  5B            pop     ebx
004359CD  |.  C2 0400       retn    4
004359D0  |>  0FBE7E 01     movsx   edi, byte ptr [esi+1]
004359D4  |.  8D47 01       lea     eax, dword ptr [edi+1]
004359D7  |.  83E0 06       and     eax, 6
004359DA  |.  3C 02         cmp     al, 2                            ;  要求第二位是2
004359DC  |.  74 08         je      short 004359E6
004359DE  |.  5F            pop     edi
004359DF  |.  5E            pop     esi
004359E0  |.  33C0          xor     eax, eax
004359E2  |.  5B            pop     ebx
004359E3  |.  C2 0400       retn    4
004359E6  |>  33C0          xor     eax, eax
004359E8  |.  33C9          xor     ecx, ecx
004359EA  |>  0FBE1431      /movsx   edx, byte ptr [ecx+esi]         ;  这个循环
004359EE  |.  03C2          |add     eax, edx                        ;  输入的假码的ascii码累加
004359F0  |.  41            |inc     ecx
004359F1  |.  83F9 1B       |cmp     ecx, 1B
004359F4  |.^ 7C F4         \jl      short 004359EA
004359F6  |.  99            cdq                                      ;  到这里eax里面的值就是累加值
004359F7  |.  B9 34000000   mov     ecx, 34                          ;  常量34H
004359FC  |.  F7F9          idiv    ecx                              ;  累加值整除34H
004359FE  |.  83FA 1A       cmp     edx, 1A                          ;  余数和1A比较
00435A01  |.  7D 05         jge     short 00435A08
00435A03  |.  80C2 41       add     dl, 41                           ;  小于1A的话就+41H
00435A06  |.  EB 03         jmp     short 00435A0B
00435A08  |>  80C2 47       add     dl, 47                           ;  小于1A的话就+47H
00435A0B  |>  3856 1B       cmp     byte ptr [esi+1B], dl            ;  输入的假码的最后一位如果等于相加后的结果。就注册成功
00435A0E  |.  74 08         je      short 00435A18                   ;  跳了就成功。
00435A10  |.  5F            pop     edi                              ;  综上所述:很容易推出真码
00435A11  |.  5E            pop     esi
00435A12  |.  33C0          xor     eax, eax



一组注册码:123456789012345678901234567K。
一下子就“已解锁为正式版本”

不知道是不是这样的。初学算法的兄弟谢谢你们耐心看完