Ap PDF Split-Merge注册分析

1。使用F12暂停法找到关键算法
   0040CCB4  /.  55            push    ebp
  0040CCB5  |.  8BEC          mov     ebp, esp
  0040CCB7  |.  83C4 B8       add     esp, -48
  0040CCBA  |.  53            push    ebx
  0040CCBB  |.  56            push    esi
  0040CCBC  |.  57            push    edi
  0040CCBD  |.  8BD8          mov     ebx, eax
  0040CCBF  |.  BE C7AD5700   mov     esi, 0057ADC7
  0040CCC4  |.  8D7D CC       lea     edi, dword ptr [ebp-34]
  0040CCC7  |.  B8 C0B05700   mov     eax, 0057B0C0
  0040CCCC  |.  E8 132D1400   call    0054F9E4
  0040CCD1  |.  66:C747 10 14>mov     word ptr [edi+10], 14
  0040CCD7  |.  33D2          xor     edx, edx
  0040CCD9  |.  8955 FC       mov     dword ptr [ebp-4], edx
  0040CCDC  |.  8D55 FC       lea     edx, dword ptr [ebp-4]
  0040CCDF  |.  FF47 1C       inc     dword ptr [edi+1C]
  0040CCE2  |.  8B83 28050000 mov     eax, dword ptr [ebx+528]
  0040CCE8  |.  E8 47A20E00   call    004F6F34
  0040CCED  |.  66:C747 10 08>mov     word ptr [edi+10], 8
  0040CCF3  |.  66:C747 10 20>mov     word ptr [edi+10], 20
  0040CCF9  |.  33C9          xor     ecx, ecx
  0040CCFB  |.  894D F8       mov     dword ptr [ebp-8], ecx
  0040CCFE  |.  8D55 F8       lea     edx, dword ptr [ebp-8]
  0040CD01  |.  FF47 1C       inc     dword ptr [edi+1C]
  0040CD04  |.  8B83 08050000 mov     eax, dword ptr [ebx+508]
  0040CD0A  |.  E8 25A20E00   call    004F6F34
  0040CD0F  |.  66:C747 10 08>mov     word ptr [edi+10], 8
  0040CD15  |.  837D FC 00    cmp     dword ptr [ebp-4], 0
  0040CD19  |.  8D4D B8       lea     ecx, dword ptr [ebp-48]
  0040CD1C  |.  74 05         je      short 0040CD23
  0040CD1E  |.  8B55 FC       mov     edx, dword ptr [ebp-4]
  0040CD21  |.  EB 03         jmp     short 0040CD26
  0040CD23  |>  8D56 1F       lea     edx, dword ptr [esi+1F]
  0040CD26  |>  8BC3          mov     eax, ebx
  0040CD28  |.  E8 D7050000   call    0040D304
  0040CD2D  |.  837D F8 00    cmp     dword ptr [ebp-8], 0
  0040CD31  |.  74 05         je      short 0040CD38
  0040CD33  |.  8B55 F8       mov     edx, dword ptr [ebp-8]
  0040CD36  |.  EB 03         jmp     short 0040CD3B
  0040CD38  |>  8D56 20       lea     edx, dword ptr [esi+20]
  0040CD3B  |>  8BC3          mov     eax, ebx
  0040CD3D  |.  E8 FE070000   call    0040D540                         ;  关键算法
  0040CD42  |.  84C0          test    al, al
  0040CD44  |.  75 76         jnz     short 0040CDBC
  
  2。分析计算过程
    F7跟进0040CD3D处的函数。
    0040D540  /$  56            push    esi
  0040D541  |.  8BF2          mov     esi, edx
  0040D543  |.  85F6          test    esi, esi
  0040D545  |.  75 04         jnz     short 0040D54B                   ;  判断用户是否输入了注册码
  0040D547  |.  33C0          xor     eax, eax
  0040D549  |.  5E            pop     esi
  0040D54A  |.  C3            retn
  0040D54B  |>  803E 00       cmp     byte ptr [esi], 0
  0040D54E  |.  75 04         jnz     short 0040D554
  0040D550  |.  33C0          xor     eax, eax
  0040D552  |.  5E            pop     esi
  0040D553  |.  C3            retn
  0040D554  |>  56            push    esi
  0040D555  |.  E8 4E201400   call    0054F5A8                        
  0040D55A  |.  59            pop     ecx
  0040D55B  |.  83F8 10       cmp     eax, 10                          ;  判断注册码是否16位
  0040D55E  |.  74 04         je      short 0040D564
  0040D560  |.  33C0          xor     eax, eax
  0040D562  |.  5E            pop     esi
  0040D563  |.  C3            retn
  0040D564  |>  33D2          xor     edx, edx
  0040D566  |.  8BC6          mov     eax, esi
  0040D568  |>  0FBE08        /movsx   ecx, byte ptr [eax]             ;  下面几句判断注册码是否在A-Z之间、
  0040D56B  |.  83F9 41       |cmp     ecx, 41
  0040D56E  |.  7C 05         |jl      short 0040D575
  0040D570  |.  83F9 5A       |cmp     ecx, 5A
  0040D573  |.  7E 04         |jle     short 0040D579
  0040D575  |>  33C0          |xor     eax, eax
  0040D577  |.  5E            |pop     esi
  0040D578  |.  C3            |retn
  0040D579  |>  42            |inc     edx
  0040D57A  |.  40            |inc     eax
  0040D57B  |.  83FA 10       |cmp     edx, 10
  0040D57E  |.^ 7C E8         \jl      short 0040D568
  0040D580  |.  0FBE56 06     movsx   edx, byte ptr [esi+6]
  0040D584  |.  0FBE4E 0B     movsx   ecx, byte ptr [esi+B]
  0040D588  |.  03D1          add     edx, ecx
  0040D58A  |.  81FA 9B000000 cmp     edx, 9B                          ;  这里判断第7位和第12位之和是否为9Bh
  0040D590  |.  74 04         je      short 0040D596
  0040D592  |.  33C0          xor     eax, eax
  0040D594  |.  5E            pop     esi
  0040D595  |.  C3            retn
  0040D596  |>  B0 01         mov     al, 1
  0040D598  |.  5E            pop     esi
  0040D599  \.  C3            retn
 

X

点击这里给我发消息
微信号:crackgou