HTTP Analyzer V7破解纪实

最近刚好要用到HTTP Analyzer V7来分析网络,也看到网上有很多破解版,估计破解不会很难,又想到有段时间没有破解过软件了,所以下个正版自己破解来练练手,怕以后忘记,在这里做个记录,也分享一下破解过程

首先把软件拖到Ollydbg中,F5运行起来,查找字符串寻找关键字,不出所料,很快就发现和注册相关的字符串,如图1所示,

HTTP Analyzer V7破解纪实_第1张图片

                                                                                         图1

转到上图所示代码段内,浏览附近代码,猜测大致的功能,在开头的地方下段点,运行然后会段在断点出,

以下是我对这部分代码的分析:

00578BF8   . /EB 10         jmp     short 00578C0A

// 校验部分

00578C0A   > \8B45 FC       mov     eax, dword ptr [ebp-4]
00578C0D   .  8078 1C 00    cmp     byte ptr [eax+1C], 0
00578C11      74 0A         je      short 00578C1D

// 是否有注册码

00578745   .  8B45 F0       mov     eax, dword ptr [ebp-10]
00578748   .  E8 DF41F1FF   call    0048C92C
0057874D   .  84C0          test    al, al
0057874F   .  75 0A         jnz     short 0057875B

// 打开注册表句柄

0057875E   .  BA D0895700   mov     edx, 005789D0                    ;  LicenseKey
00578763   .  8B45 F0       mov     eax, dword ptr [ebp-10]
00578766   .  E8 1549F1FF   call    

00578779   .  8D4D E8       lea     ecx, dword ptr [ebp-18]
0057877C   .  BA E4895700   mov     edx, 005789E4                    ;  UserName
00578781   .  8B45 F0       mov     eax, dword ptr [ebp-10]
00578784   .  E8 F748F1FF   call    

// 获取 LicenseKey 和 UserName 值

005787B4   .  8B45 F4       mov     eax, dword ptr [ebp-C]

// 开始校验
005787BA   .  BA F8895700   mov     edx, 005789F8                    ;  Invalid License
005787BF   .  E8 E8D4E8FF   call    00405CAC

// 默认不存在

005787CF   .  FF11          call    dword ptr [ecx]                  ;  HttpAnal.0057917C

// 校验 返回

00579234  |.  E8 0FEEFFFF   call    00578048                         ;  校验密码
00579239  |.  84C0          test    al, al
0057923B      74 1F         je      short 0057925C

// 内部校验处

00578059  |.  33C9          xor     ecx, ecx
0057805B  |.  E8 44FCFFFF   call    
00578060      66:813C24 5B9>cmp     word ptr [esp], 9C5B
00578066      0F94C0        sete    al

// 计算

00577CA4 >/$  53            push    ebx                              ;  calc
00577CA5  |.  56            push    esi
00577CA6  |.  57            push    edi
00577CA7  |.  83C4 E8       add     esp, -18
00577CAA  |.  884C24 08     mov     byte ptr [esp+8], cl
00577CAE  |.  895424 04     mov     dword ptr [esp+4], edx
00577CB2  |.  890424        mov     dword ptr [esp], eax
00577CB5  |.  8B4424 04     mov     eax, dword ptr [esp+4]
00577CB9  |.  8B00          mov     eax, dword ptr [eax]
00577CBB  |.  894424 0C     mov     dword ptr [esp+C], eax
00577CBF  |.  8B4424 04     mov     eax, dword ptr [esp+4]
00577CC3  |.  8B40 04       mov     eax, dword ptr [eax+4]
00577CC6  |.  894424 10     mov     dword ptr [esp+10], eax
00577CCA  |.  C74424 14 040>mov     dword ptr [esp+14], 4
00577CD2  |.  BE 109D9600   mov     esi, 00969D10
00577CD7  |>  8B5424 0C     /mov     edx, dword ptr [esp+C]          ;  edx = str
00577CDB  |.  0FB64424 08   |movzx   eax, byte ptr [esp+8]
00577CE0  |.  8BD8          |mov     ebx, eax
00577CE2  |.  03DB          |add     ebx, ebx
00577CE4  |.  8D1C5B        |lea     ebx, dword ptr [ebx+ebx*2]
00577CE7  |.  8B04DE        |mov     eax, dword ptr [esi+ebx*8]
00577CEA  |.  8B0C24        |mov     ecx, dword ptr [esp]
00577CED  |.  8B0C81        |mov     ecx, dword ptr [ecx+eax*4]
00577CF0  |.  8B44DE 04     |mov     eax, dword ptr [esi+ebx*8+4]
00577CF4  |.  8B3C24        |mov     edi, dword ptr [esp]
00577CF7  |.  8B0487        |mov     eax, dword ptr [edi+eax*4]
00577CFA  |.  8B5CDE 08     |mov     ebx, dword ptr [esi+ebx*8+8]
00577CFE  |.  8B3C24        |mov     edi, dword ptr [esp]
00577D01  |.  8B1C9F        |mov     ebx, dword ptr [edi+ebx*4]
00577D04  |.  03D3          |add     edx, ebx
00577D06  |.  03DA          |add     ebx, edx
00577D08  |.  8BFA          |mov     edi, edx
00577D0A  |.  C1EF 07       |shr     edi, 7
00577D0D  |.  33D7          |xor     edx, edi
00577D0F  |.  03CA          |add     ecx, edx
00577D11  |.  03D1          |add     edx, ecx
00577D13  |.  8BF9          |mov     edi, ecx
00577D15  |.  C1E7 0D       |shl     edi, 0D
00577D18  |.  33CF          |xor     ecx, edi
00577D1A  |.  03C1          |add     eax, ecx
00577D1C  |.  03C8          |add     ecx, eax
00577D1E  |.  8BF8          |mov     edi, eax
00577D20  |.  C1EF 11       |shr     edi, 11
00577D23  |.  33C7          |xor     eax, edi
00577D25  |.  03D8          |add     ebx, eax
00577D27  |.  03C3          |add     eax, ebx
00577D29  |.  8BFB          |mov     edi, ebx
00577D2B  |.  C1E7 09       |shl     edi, 9
00577D2E  |.  33DF          |xor     ebx, edi
00577D30  |.  03D3          |add     edx, ebx
00577D32  |.  03DA          |add     ebx, edx
00577D34  |.  8BFA          |mov     edi, edx
00577D36  |.  C1EF 03       |shr     edi, 3
00577D39  |.  33D7          |xor     edx, edi
00577D3B  |.  03CA          |add     ecx, edx
00577D3D  |.  8BD1          |mov     edx, ecx
00577D3F  |.  C1E2 07       |shl     edx, 7
00577D42  |.  33CA          |xor     ecx, edx
00577D44  |.  03C1          |add     eax, ecx
00577D46  |.  8BD3          |mov     edx, ebx
00577D48  |.  C1EA 0F       |shr     edx, 0F
00577D4B  |.  33C2          |xor     eax, edx
00577D4D  |.  03D8          |add     ebx, eax
00577D4F  |.  8BC3          |mov     eax, ebx
00577D51  |.  C1E0 0B       |shl     eax, 0B
00577D54  |.  33D8          |xor     ebx, eax
00577D56  |.  8B4424 10     |mov     eax, dword ptr [esp+10]
00577D5A  |.  33C3          |xor     eax, ebx
00577D5C  |.  8B5424 0C     |mov     edx, dword ptr [esp+C]
00577D60  |.  895424 10     |mov     dword ptr [esp+10], edx
00577D64  |.  894424 0C     |mov     dword ptr [esp+C], eax
00577D68  |.  83C6 0C       |add     esi, 0C
00577D6B  |.  FF4C24 14     |dec     dword ptr [esp+14]
00577D6F  |.^ 0F85 62FFFFFF \jnz     00577CD7
00577D75  |.  8B4424 04     mov     eax, dword ptr [esp+4]
00577D79  |.  8B5424 10     mov     edx, dword ptr [esp+10]
00577D7D  |.  8910          mov     dword ptr [eax], edx
00577D7F  |.  8B4424 04     mov     eax, dword ptr [esp+4]
00577D83  |.  8B5424 0C     mov     edx, dword ptr [esp+C]
00577D87  |.  8950 04       mov     dword ptr [eax+4], edx
00577D8A  |.  83C4 18       add     esp, 18
00577D8D  |.  5F            pop     edi
00577D8E  |.  5E            pop     esi
00577D8F  |.  5B            pop     ebx
00577D90  \.  C3            retn

// 算法部分

005791A7  |.  8BC7          mov     eax, edi
005791A9  |.  E8 9AF0FFFF   call    00578248
005791AE  |.  84C0          test    al, al
005791B0      0F84 A6000000 je      0057925C
005791B6  |.  8B45 F8       mov     eax, [local.2]
005791B9  |.  E8 66FFFFFF   call    00579124
005791BE  |.  84C0          test    al, al
005791C0      0F84 96000000 je      0057925C

// LicenseKey 是否可以被 - 分割 得到分割后的第一个字符串转化为数值

005787D3   .  8B45 F4       mov     eax, dword ptr [ebp-C]
005787D6   .  8858 24       mov     byte ptr [eax+24], bl
005787D9   .  84DB          test    bl, bl
005787DB      0F84 B0010000 je      00578991


在本机打开注册表,找到上图中注册表部分所添加的子键,修改其中的校验码和用户名,可以完成破解该软件

HTTP Analyzer V7破解纪实_第2张图片


你可能感兴趣的:(HTTP Analyzer V7破解纪实)