• 标 题:很对不起,因为出了两天差。动态找出winhex的注册码.请进...... (2千字)
  • 作 者:玉川
  • 时 间:2001-7-23 22:48:07
  • 链 接:http://bbs.pediy.com

我以winhex9.9为例.请使用TRW,因为要用suspend.

启动winhex前,伪造user.txt。要留意伪造的user.txt的格式,User: ADDR1: ADDR2: 英文、中文可任意输入.但是,code1、code2的数必须是0-f且必须有32个.code1的第21到24位数,假设它为A(1)A(2)A(3)A(4),那么A(3)A(4)A(1)A(2)应小于0370,或者大于03A2.

打bpx 417dbd
启动winhex,打开内存修改,存盘.中断在下面:

:00417DBD B9BC060000              mov ecx, 000006BC
:00417DC2 8B1578ED4500            mov edx, dword ptr [0045ED78]
:00417DC8 E823D3FEFF              call 004050F0
:00417DCD E826FEFFFF              call 00417BF8              <---进入
:00417DD2 BAB8654600              mov edx, 004665B8
:00417DD7 8D442428                lea eax, dword ptr [esp+28]

* Possible Ref to Menu: MenuID_0001, Item: "Sicherung laden..."
                                  |
:00417DDB B910000000              mov ecx, 00000010



进入417dcd: call 417bf8中:

:00417D27 E8CCDCFEFF              call 004059F8
:00417D2C 8BD8                    mov ebx, eax
:00417D2E 6A00                    push 00000000
:00417D30 BAB8654600              mov edx, 004665B8
:00417D35 8BC3                    mov eax, ebx

* Possible Ref to Menu: MenuID_0001, Item: "Sicherung laden..."
                                  |
:00417D37 B910000000              mov ecx, 00000010
:00417D3C E8A3DDFEFF              call 00405AE4        <----进入

* Possible Ref to Menu: MenuID_0001, Item: "Hex-Werte  Strg+Shift+C"
                                  |
:00417D41 BA2C000000              mov edx, 0000002C
:00417D46 8BC3                    mov eax, ebx


进入417d3c:call 405ae4中:

:00405B2A 8B45FC                  mov eax, dword ptr [ebp-04]
:00405B2D E8AAFDFFFF              call 004058DC
:00405B32 0FB7C8                  movzx ecx, ax
:00405B35 C1E908                  shr ecx, 08
:00405B38 24FF                    and al, FF
:00405B3A 32C8                    xor cl, al
:00405B3C 8B45F8                  mov eax, dword ptr [ebp-08]
:00405B3F 03C6                    add eax, esi
:00405B41 3208                    xor cl, byte ptr [eax]      <---此处打bpx,每次停在这里,cl中的数据和下面的一组16个字节数据依次xor后,存入[eax]中,这个数一定要记下来,最后记下来的一组16个字节数即为code2.
既:cl xor 5b == ? ,将?存入[eax]中,同时记下?,这是code2的第一个数据,
第二次中断在这里,将cl与0e xor,结果存入[eax],并记下,此为code2的第二个数据,依此类推.一共中断16次,得到16个数据,既为code2。

<< 这一组16个字节数据如下:

5b 0e 44 2c 80 f2 0c d3 b4 ad 22 97 da ce 3f 6d  >>



  这样找到的注册码适用winhex9.74到9.92.

winhex的加密做的真的很好,连\\.\SICE字符串也加了密.


user.txt如下,它适合winhex9.74到9.92的任何版本:

User: yourname
Addr1: aaaa
Addr2: aa
Code1: 0123456789abcdef0123456789abcdef
Code2: 9b8be3627af62ab02fb7c4b793766410

 

User: 中国四川
Addr1: 看雪论坛
Addr2: 看雪学院
Code1: 88888888888888888888888888888888
Code2: 93e853c64441aeaf93c4b1c805b90ca9