-
-
[旧帖] [求助]请高手指点? 0.00雪花
-
发表于: 2007-6-26 17:49 3467
-
0051A66F |. 55 push ebp
0051A670 |. 68 62A95100 push 0051A962
0051A675 |. 64:FF30 push dword ptr fs:[eax]
0051A678 |. 64:8920 mov fs:[eax], esp
0051A67B |. B2 01 mov dl, 1
0051A67D |. A1 3CBD4900 mov eax, [49BD3C]
0051A682 |. E8 B517F8FF call 0049BE3C
0051A687 |. 8BF0 mov esi, eax
0051A689 |. BA 02000080 mov edx, 80000002
0051A68E |. 8BC6 mov eax, esi
0051A690 |. E8 4718F8FF call 0049BEDC
0051A695 |. B1 01 mov cl, 1
0051A697 |. BA 78A95100 mov edx, 0051A978 ; software\microsoft\xdhy
0051A69C |. 8BC6 mov eax, esi
0051A69E |. E8 9D18F8FF call 0049BF40
0051A6A3 |. 68 80000000 push 80 ; /BufSize = 80 (128.)
0051A6A8 |. 8D85 7BFFFFFF lea eax, [ebp-85] ; |
0051A6AE |. 50 push eax ; |Buffer
0051A6AF |. E8 18CAEEFF call <jmp.&kernel32.GetSyste>; \GetSystemDirectoryA
0051A6B4 |. 8D45 FC lea eax, [ebp-4]
0051A6B7 |. 8D95 7BFFFFFF lea edx, [ebp-85]
0051A6BD |. B9 81000000 mov ecx, 81
0051A6C2 |. E8 65A3EEFF call 00404A2C
0051A6C7 |. 8D95 74FFFFFF lea edx, [ebp-8C]
0051A6CD |. 8B83 08030000 mov eax, [ebx+308]
0051A6D3 |. E8 90AFF2FF call 00445668
0051A6D8 |. 83BD 74FFFFFF>cmp dword ptr [ebp-8C], 0 ; 是否输入注册码,1234567890
0051A6DF |. 74 1A je short 0051A6FB
0051A6E1 |. 8D95 70FFFFFF lea edx, [ebp-90]
0051A6E7 |. 8B83 04030000 mov eax, [ebx+304]
0051A6ED |. E8 76AFF2FF call 00445668
0051A6F2 |. 83BD 70FFFFFF>cmp dword ptr [ebp-90], 0 ; 是否输入确认码,19790621
0051A6F9 |. 75 0F jnz short 0051A70A
0051A6FB |> B8 98A95100 mov eax, 0051A998 ; 注册信息没有填写齐全
0051A700 |. E8 0B3EF2FF call 0043E510
0051A705 |. E9 D6010000 jmp 0051A8E0
0051A70A |> 8D95 6CFFFFFF lea edx, [ebp-94]
0051A710 |. 8B83 08030000 mov eax, [ebx+308]
0051A716 |. E8 4DAFF2FF call 00445668
0051A71B |. 8B85 6CFFFFFF mov eax, [ebp-94] ; 输入的假码,eax中看到是10位
0051A721 |. 50 push eax
0051A722 |. 8D95 64FFFFFF lea edx, [ebp-9C]
0051A728 |. 8B83 04030000 mov eax, [ebx+304]
0051A72E |. E8 35AFF2FF call 00445668
0051A733 |. 8B85 64FFFFFF mov eax, [ebp-9C] ; 输入的确认码,eax中看到是8位
0051A739 |. E8 BAEBEEFF call 004092F8
0051A73E |. B9 B1D00000 mov ecx, 0D0B1 ; 固定值0D0B1
0051A743 |. 99 cdq ; 扩展
0051A744 |. F7F9 idiv ecx ; 除法
0051A746 |. 8BC2 mov eax, edx ; 取余数
0051A748 |. 8D95 68FFFFFF lea edx, [ebp-98]
0051A74E |. E8 41EBEEFF call 00409294 ; 将余数转为10进制,设为X
0051A753 |. 8D85 68FFFFFF lea eax, [ebp-98]
0051A759 |. 50 push eax
0051A75A |. 8D95 58FFFFFF lea edx, [ebp-A8] ; 出现固定注册码前5位23371
0051A760 |. 8B83 04030000 mov eax, [ebx+304]
0051A766 |. E8 FDAEF2FF call 00445668
0051A76B |. 8B85 58FFFFFF mov eax, [ebp-A8] ; 输入的确认码8位
0051A771 |. E8 82EBEEFF call 004092F8
0051A776 |. 8D95 5CFFFFFF lea edx, [ebp-A4]
0051A77C |. E8 9FFBFFFF call 0051A320 ; 算法一CALL,F7跟进
0051A781 |. 8B85 5CFFFFFF mov eax, [ebp-A4] ; B值=1932465254
0051A787 |. E8 6CEBEEFF call 004092F8 ; 软件自带的确认码
0051A78C |. 8D95 60FFFFFF lea edx, [ebp-A0]
0051A792 |. E8 69FCFFFF call 0051A400 ; 算法二CALL
0051A797 |. 8B95 60FFFFFF mov edx, [ebp-A0] C值=29i3w315|h4529
0051A79D |. 58 pop eax
0051A79E |. E8 E1A2EEFF call 00404A84 ; 将X连到C的前面即为注册码
0051A7A3 |. 8B95 68FFFFFF mov edx, [ebp-98] ; 堆栈中出现真码
0051A7A9 |. 58 pop eax
0051A7AA |. E8 11A4EEFF call 00404BC0 ; 典型的明码比较,真假注册码比较
0051A7AF |. 0F85 07010000 jnz 0051A8BC ; 关键跳转,修改即可爆破
进入算法CALL一后
0051A320 /$ 55 push ebp
0051A321 |. 8BEC mov ebp, esp
0051A323 |. 33C9 xor ecx, ecx
0051A325 |. 51 push ecx
0051A326 |. 51 push ecx
0051A327 |. 51 push ecx
0051A328 |. 51 push ecx
0051A329 |. 53 push ebx
0051A32A |. 56 push esi
0051A32B |. 8BF2 mov esi, edx
0051A32D |. 8BD8 mov ebx, eax
0051A32F |. 33C0 xor eax, eax
0051A331 |. 55 push ebp
0051A332 |. 68 F0A35100 push 0051A3F0
0051A337 |. 64:FF30 push dword ptr fs:[eax]
0051A33A |. 64:8920 mov fs:[eax], esp
0051A33D |. 81F3 F1250B00 xor ebx, 0B25F1 ; 确认码与0B25F1相异或
0051A343 |. 8BC3 mov eax, ebx
0051A345 |. 33D2 xor edx, edx ; 清零
0051A347 |. 52 push edx ; /Arg2 => 00000000
0051A348 |. 50 push eax ; |Arg1
0051A349 |. 8D45 FC lea eax, [ebp-4] ; |
0051A34C |. E8 73EFEEFF call 004092C4 ; \异或结果转为10进制,设为A
0051A351 |. 8B45 FC mov eax, [ebp-4]
0051A354 |. 0FB600 movzx eax, byte ptr [eax] ; 取a的第一位1
0051A357 |. 8B55 FC mov edx, [ebp-4]
0051A35A |. 0FB652 01 movzx edx, byte ptr [edx+1] ; 取a的第二位9
0051A35E |. 03C2 add eax, edx ; 第一位和第二位相加
0051A360 |. B9 05000000 mov ecx, 5 ; 赋值5
0051A365 |. 99 cdq
0051A366 |. F7F9 idiv ecx ; 除以5
0051A368 |. 80C2 34 add dl, 34 ; 余数+34
0051A36B |. 8855 F8 mov [ebp-8], dl ; 结果放入【ebp-8】中,设为a1
0051A36E |. 8B45 FC mov eax, [ebp-4] ; a值
0051A371 |. 0FB640 02 movzx eax, byte ptr [eax+2] ; 取a的第三位3
0051A375 |. 8B55 FC mov edx, [ebp-4]
0051A378 |. 0FB652 03 movzx edx, byte ptr [edx+3] ; 取a值的第四位2
0051A37C |. 03C2 add eax, edx ; 第三位和第四位相加
0051A37E |. B9 05000000 mov ecx, 5 ; 赋值5
0051A383 |. 99 cdq
0051A384 |. F7F9 idiv ecx ; 除以5
0051A386 |. 8BDA mov ebx, edx
0051A388 |. 80C3 33 add bl, 33 ; 余数+33
0051A38B |. 885D F9 mov [ebp-7], bl ; 结果放入【ebp-7】中,设为a2
0051A38E |. 8D45 F4 lea eax, [ebp-C]
0051A391 |. 8A55 F8 mov dl, [ebp-8] ; 【ebp-8】的数
0051A394 |. E8 0BA6EEFF call 004049A4
0051A399 |. 8B45 F4 mov eax, [ebp-C]
0051A39C |. 8D55 FC lea edx, [ebp-4] ; a的值35
0051A39F |. B9 1B000000 mov ecx, 1B
0051A3A4 |. E8 B3A9EEFF call 00404D5C ; 将a1添加到a的末尾,成为新a
0051A3A9 |. 8D45 F0 lea eax, [ebp-10]
0051A3AC |. 8BD3 mov edx, ebx
0051A3AE |. E8 F1A5EEFF call 004049A4
0051A3B3 |. 8B45 F0 mov eax, [ebp-10]
0051A3B6 |. 8D55 FC lea edx, [ebp-4]
0051A3B9 |. B9 19000000 mov ecx, 19 ; 真注册码19位
0051A3BE |. E8 99A9EEFF call 00404D5C ; 将a2添加在a的末尾,组成的设成B
进入算法CALL二后
0051A400 /$ 55 push ebp
0051A401 |. 8BEC mov ebp, esp
0051A403 |. 33C9 xor ecx, ecx
0051A405 |. 51 push ecx
0051A406 |. 51 push ecx
0051A407 |. 51 push ecx
0051A408 |. 51 push ecx
0051A409 |. 51 push ecx
0051A40A |. 51 push ecx
0051A40B |. 53 push ebx
0051A40C |. 56 push esi
0051A40D |. 8BF2 mov esi, edx
0051A40F |. 8BD8 mov ebx, eax
0051A411 |. 33C0 xor eax, eax
0051A413 |. 55 push ebp
0051A414 |. 68 4CA55100 push 0051A54C
0051A419 |. 64:FF30 push dword ptr fs:[eax]
0051A41C |. 64:8920 mov fs:[eax], esp
0051A41F |. 81F3 8776FBDD xor ebx, DDFB7687 ; 将B与DDFB7687异或
0051A425 |. 8BC3 mov eax, ebx
0051A427 |. 33D2 xor edx, edx
0051A429 |. 52 push edx ; /Arg2 => 00000000
0051A42A |. 50 push eax ; |Arg1
0051A42B |. 8D45 FC lea eax, [ebp-4] ; |
0051A42E |. E8 91EEEEFF call 004092C4 ; \将异或结果转为10进制,设为C
0051A433 |. 8B45 FC mov eax, [ebp-4] ; [ebp-4]的值为C
0051A436 |. 0FB600 movzx eax, byte ptr [eax] ; 取C的第一位2
0051A439 |. 8B55 FC mov edx, [ebp-4] ; [ebp-4]的值为C
0051A43C |. 0FB652 01 movzx edx, byte ptr [edx+1] ; 取c的第二位9
0051A440 |. 03C2 add eax, edx ; 将C的第一位与第二位相加
0051A442 |. B9 05000000 mov ecx, 5 ; 赋以5
0051A447 |. 99 cdq
0051A448 |. F7F9 idiv ecx ; 除以5
0051A44A |. 80C2 66 add dl, 66 ; 余数+66
0051A44D |. 8855 F8 mov [ebp-8], dl ; 结果存入【ebp-8】中,设为C1
0051A450 |. 8B45 FC mov eax, [ebp-4] ; [ebp-4]的值为C
0051A453 |. 0FB640 02 movzx eax, byte ptr [eax+2] ; 取c的第三位3
0051A457 |. 8B55 FC mov edx, [ebp-4] ; [ebp-4]的值为C
0051A45A |. 0FB652 03 movzx edx, byte ptr [edx+3] ; 取c的第四位3
0051A45E |. 03C2 add eax, edx ; 将C的第三位与第四位相加
0051A460 |. B9 05000000 mov ecx, 5 ; 赋以5
0051A465 |. 99 cdq
0051A466 |. F7F9 idiv ecx ; 除以5
0051A468 |. 80C2 75 add dl, 75 ; 余数+75
0051A46B |. 8855 F9 mov [ebp-7], dl ; 结果存入【ebp-7】中,设为C2
0051A46E |. 8B45 FC mov eax, [ebp-4] ; [ebp-4]的值为C
0051A471 |. 0FB640 04 movzx eax, byte ptr [eax+4] ; 取c的第五位1
0051A475 |. 8B55 FC mov edx, [ebp-4] ; [ebp-4]的值为C
0051A478 |. 0FB652 05 movzx edx, byte ptr [edx+5] ; 取C的第六位5
0051A47C |. 03C2 add eax, edx ; 将C的第五位与第六位相加
0051A47E |. B9 05000000 mov ecx, 5 ; 赋以5
0051A483 |. 99 cdq
0051A484 |. F7F9 idiv ecx ; 除以5
0051A486 |. 80C2 7A add dl, 7A ; 余数+7A
0051A489 |. 8855 FA mov [ebp-6], dl ; 结果存入【ebp-6】中,设为C3
0051A48C |. 8B45 FC mov eax, [ebp-4] ; [ebp-4]的值为C
0051A48F |. 0FB640 06 movzx eax, byte ptr [eax+6] ; 取C的第七位4
0051A493 |. 8B55 FC mov edx, [ebp-4] ; [ebp-4]的值为C
0051A496 |. 0FB652 07 movzx edx, byte ptr [edx+7] ; 取c的第八位5
0051A49A |. 03C2 add eax, edx ; 将第七位与第八位相加
0051A49C |. 8B55 FC mov edx, [ebp-4] ; [ebp-4]的值为C
0051A49F |. 0FB652 08 movzx edx, byte ptr [edx+8] ; 取C的第九位2
0051A4A3 |. 03C2 add eax, edx ; 将第九位与第十位相加
0051A4A5 |. B9 05000000 mov ecx, 5 ; 赋以5
0051A4AA |. 99 cdq
0051A4AB |. F7F9 idiv ecx ; 除以5
0051A4AD |. 80C2 69 add dl, 69 ; 余数+69
0051A4B0 |. 8855 FB mov [ebp-5], dl ; 结果存入【ebp-5】中,设为C4
0051A4B3 |. 8D45 F4 lea eax, [ebp-C]
0051A4B6 |. 8A55 F8 mov dl, [ebp-8]
0051A4B9 |. E8 E6A4EEFF call 004049A4
0051A4BE |. 8B45 F4 mov eax, [ebp-C]
0051A4C1 |. 8D55 FC lea edx, [ebp-4]
0051A4C4 |. B9 07000000 mov ecx, 7
0051A4C9 |. E8 8EA8EEFF call 00404D5C ; 将C1添加在C的第七位的位置,组成新C
1:如何将确认码19790621与固定值0D0B1相除取余数,然后转成10进制设为A
2:如何将确认码19790621与固定值0B25F1相异或,结果设为B,将B的第一位和第二位相加再除以5,然后取余数+34,将所得字符放在B的后面,再将B的第三位和第四位相加,再除以5,余数+33,再放在B的最后位。结果所得设为C.
3:如何将C与固定值DDFB7687相异或,再将结果的1,2位相加,3,4位相加,7.8位相加再转为字符,分别放在相异或结果的相关位置。结果设为D。
4:如何将A与D相连即为注册码。
这是我在PYG破解文章里看到的一篇破文,然后自己动手试了一下,对上面的四点有些不懂,哪位大侠能指点一下吗?
0051A670 |. 68 62A95100 push 0051A962
0051A675 |. 64:FF30 push dword ptr fs:[eax]
0051A678 |. 64:8920 mov fs:[eax], esp
0051A67B |. B2 01 mov dl, 1
0051A67D |. A1 3CBD4900 mov eax, [49BD3C]
0051A682 |. E8 B517F8FF call 0049BE3C
0051A687 |. 8BF0 mov esi, eax
0051A689 |. BA 02000080 mov edx, 80000002
0051A68E |. 8BC6 mov eax, esi
0051A690 |. E8 4718F8FF call 0049BEDC
0051A695 |. B1 01 mov cl, 1
0051A697 |. BA 78A95100 mov edx, 0051A978 ; software\microsoft\xdhy
0051A69C |. 8BC6 mov eax, esi
0051A69E |. E8 9D18F8FF call 0049BF40
0051A6A3 |. 68 80000000 push 80 ; /BufSize = 80 (128.)
0051A6A8 |. 8D85 7BFFFFFF lea eax, [ebp-85] ; |
0051A6AE |. 50 push eax ; |Buffer
0051A6AF |. E8 18CAEEFF call <jmp.&kernel32.GetSyste>; \GetSystemDirectoryA
0051A6B4 |. 8D45 FC lea eax, [ebp-4]
0051A6B7 |. 8D95 7BFFFFFF lea edx, [ebp-85]
0051A6BD |. B9 81000000 mov ecx, 81
0051A6C2 |. E8 65A3EEFF call 00404A2C
0051A6C7 |. 8D95 74FFFFFF lea edx, [ebp-8C]
0051A6CD |. 8B83 08030000 mov eax, [ebx+308]
0051A6D3 |. E8 90AFF2FF call 00445668
0051A6D8 |. 83BD 74FFFFFF>cmp dword ptr [ebp-8C], 0 ; 是否输入注册码,1234567890
0051A6DF |. 74 1A je short 0051A6FB
0051A6E1 |. 8D95 70FFFFFF lea edx, [ebp-90]
0051A6E7 |. 8B83 04030000 mov eax, [ebx+304]
0051A6ED |. E8 76AFF2FF call 00445668
0051A6F2 |. 83BD 70FFFFFF>cmp dword ptr [ebp-90], 0 ; 是否输入确认码,19790621
0051A6F9 |. 75 0F jnz short 0051A70A
0051A6FB |> B8 98A95100 mov eax, 0051A998 ; 注册信息没有填写齐全
0051A700 |. E8 0B3EF2FF call 0043E510
0051A705 |. E9 D6010000 jmp 0051A8E0
0051A70A |> 8D95 6CFFFFFF lea edx, [ebp-94]
0051A710 |. 8B83 08030000 mov eax, [ebx+308]
0051A716 |. E8 4DAFF2FF call 00445668
0051A71B |. 8B85 6CFFFFFF mov eax, [ebp-94] ; 输入的假码,eax中看到是10位
0051A721 |. 50 push eax
0051A722 |. 8D95 64FFFFFF lea edx, [ebp-9C]
0051A728 |. 8B83 04030000 mov eax, [ebx+304]
0051A72E |. E8 35AFF2FF call 00445668
0051A733 |. 8B85 64FFFFFF mov eax, [ebp-9C] ; 输入的确认码,eax中看到是8位
0051A739 |. E8 BAEBEEFF call 004092F8
0051A73E |. B9 B1D00000 mov ecx, 0D0B1 ; 固定值0D0B1
0051A743 |. 99 cdq ; 扩展
0051A744 |. F7F9 idiv ecx ; 除法
0051A746 |. 8BC2 mov eax, edx ; 取余数
0051A748 |. 8D95 68FFFFFF lea edx, [ebp-98]
0051A74E |. E8 41EBEEFF call 00409294 ; 将余数转为10进制,设为X
0051A753 |. 8D85 68FFFFFF lea eax, [ebp-98]
0051A759 |. 50 push eax
0051A75A |. 8D95 58FFFFFF lea edx, [ebp-A8] ; 出现固定注册码前5位23371
0051A760 |. 8B83 04030000 mov eax, [ebx+304]
0051A766 |. E8 FDAEF2FF call 00445668
0051A76B |. 8B85 58FFFFFF mov eax, [ebp-A8] ; 输入的确认码8位
0051A771 |. E8 82EBEEFF call 004092F8
0051A776 |. 8D95 5CFFFFFF lea edx, [ebp-A4]
0051A77C |. E8 9FFBFFFF call 0051A320 ; 算法一CALL,F7跟进
0051A781 |. 8B85 5CFFFFFF mov eax, [ebp-A4] ; B值=1932465254
0051A787 |. E8 6CEBEEFF call 004092F8 ; 软件自带的确认码
0051A78C |. 8D95 60FFFFFF lea edx, [ebp-A0]
0051A792 |. E8 69FCFFFF call 0051A400 ; 算法二CALL
0051A797 |. 8B95 60FFFFFF mov edx, [ebp-A0] C值=29i3w315|h4529
0051A79D |. 58 pop eax
0051A79E |. E8 E1A2EEFF call 00404A84 ; 将X连到C的前面即为注册码
0051A7A3 |. 8B95 68FFFFFF mov edx, [ebp-98] ; 堆栈中出现真码
0051A7A9 |. 58 pop eax
0051A7AA |. E8 11A4EEFF call 00404BC0 ; 典型的明码比较,真假注册码比较
0051A7AF |. 0F85 07010000 jnz 0051A8BC ; 关键跳转,修改即可爆破
进入算法CALL一后
0051A320 /$ 55 push ebp
0051A321 |. 8BEC mov ebp, esp
0051A323 |. 33C9 xor ecx, ecx
0051A325 |. 51 push ecx
0051A326 |. 51 push ecx
0051A327 |. 51 push ecx
0051A328 |. 51 push ecx
0051A329 |. 53 push ebx
0051A32A |. 56 push esi
0051A32B |. 8BF2 mov esi, edx
0051A32D |. 8BD8 mov ebx, eax
0051A32F |. 33C0 xor eax, eax
0051A331 |. 55 push ebp
0051A332 |. 68 F0A35100 push 0051A3F0
0051A337 |. 64:FF30 push dword ptr fs:[eax]
0051A33A |. 64:8920 mov fs:[eax], esp
0051A33D |. 81F3 F1250B00 xor ebx, 0B25F1 ; 确认码与0B25F1相异或
0051A343 |. 8BC3 mov eax, ebx
0051A345 |. 33D2 xor edx, edx ; 清零
0051A347 |. 52 push edx ; /Arg2 => 00000000
0051A348 |. 50 push eax ; |Arg1
0051A349 |. 8D45 FC lea eax, [ebp-4] ; |
0051A34C |. E8 73EFEEFF call 004092C4 ; \异或结果转为10进制,设为A
0051A351 |. 8B45 FC mov eax, [ebp-4]
0051A354 |. 0FB600 movzx eax, byte ptr [eax] ; 取a的第一位1
0051A357 |. 8B55 FC mov edx, [ebp-4]
0051A35A |. 0FB652 01 movzx edx, byte ptr [edx+1] ; 取a的第二位9
0051A35E |. 03C2 add eax, edx ; 第一位和第二位相加
0051A360 |. B9 05000000 mov ecx, 5 ; 赋值5
0051A365 |. 99 cdq
0051A366 |. F7F9 idiv ecx ; 除以5
0051A368 |. 80C2 34 add dl, 34 ; 余数+34
0051A36B |. 8855 F8 mov [ebp-8], dl ; 结果放入【ebp-8】中,设为a1
0051A36E |. 8B45 FC mov eax, [ebp-4] ; a值
0051A371 |. 0FB640 02 movzx eax, byte ptr [eax+2] ; 取a的第三位3
0051A375 |. 8B55 FC mov edx, [ebp-4]
0051A378 |. 0FB652 03 movzx edx, byte ptr [edx+3] ; 取a值的第四位2
0051A37C |. 03C2 add eax, edx ; 第三位和第四位相加
0051A37E |. B9 05000000 mov ecx, 5 ; 赋值5
0051A383 |. 99 cdq
0051A384 |. F7F9 idiv ecx ; 除以5
0051A386 |. 8BDA mov ebx, edx
0051A388 |. 80C3 33 add bl, 33 ; 余数+33
0051A38B |. 885D F9 mov [ebp-7], bl ; 结果放入【ebp-7】中,设为a2
0051A38E |. 8D45 F4 lea eax, [ebp-C]
0051A391 |. 8A55 F8 mov dl, [ebp-8] ; 【ebp-8】的数
0051A394 |. E8 0BA6EEFF call 004049A4
0051A399 |. 8B45 F4 mov eax, [ebp-C]
0051A39C |. 8D55 FC lea edx, [ebp-4] ; a的值35
0051A39F |. B9 1B000000 mov ecx, 1B
0051A3A4 |. E8 B3A9EEFF call 00404D5C ; 将a1添加到a的末尾,成为新a
0051A3A9 |. 8D45 F0 lea eax, [ebp-10]
0051A3AC |. 8BD3 mov edx, ebx
0051A3AE |. E8 F1A5EEFF call 004049A4
0051A3B3 |. 8B45 F0 mov eax, [ebp-10]
0051A3B6 |. 8D55 FC lea edx, [ebp-4]
0051A3B9 |. B9 19000000 mov ecx, 19 ; 真注册码19位
0051A3BE |. E8 99A9EEFF call 00404D5C ; 将a2添加在a的末尾,组成的设成B
进入算法CALL二后
0051A400 /$ 55 push ebp
0051A401 |. 8BEC mov ebp, esp
0051A403 |. 33C9 xor ecx, ecx
0051A405 |. 51 push ecx
0051A406 |. 51 push ecx
0051A407 |. 51 push ecx
0051A408 |. 51 push ecx
0051A409 |. 51 push ecx
0051A40A |. 51 push ecx
0051A40B |. 53 push ebx
0051A40C |. 56 push esi
0051A40D |. 8BF2 mov esi, edx
0051A40F |. 8BD8 mov ebx, eax
0051A411 |. 33C0 xor eax, eax
0051A413 |. 55 push ebp
0051A414 |. 68 4CA55100 push 0051A54C
0051A419 |. 64:FF30 push dword ptr fs:[eax]
0051A41C |. 64:8920 mov fs:[eax], esp
0051A41F |. 81F3 8776FBDD xor ebx, DDFB7687 ; 将B与DDFB7687异或
0051A425 |. 8BC3 mov eax, ebx
0051A427 |. 33D2 xor edx, edx
0051A429 |. 52 push edx ; /Arg2 => 00000000
0051A42A |. 50 push eax ; |Arg1
0051A42B |. 8D45 FC lea eax, [ebp-4] ; |
0051A42E |. E8 91EEEEFF call 004092C4 ; \将异或结果转为10进制,设为C
0051A433 |. 8B45 FC mov eax, [ebp-4] ; [ebp-4]的值为C
0051A436 |. 0FB600 movzx eax, byte ptr [eax] ; 取C的第一位2
0051A439 |. 8B55 FC mov edx, [ebp-4] ; [ebp-4]的值为C
0051A43C |. 0FB652 01 movzx edx, byte ptr [edx+1] ; 取c的第二位9
0051A440 |. 03C2 add eax, edx ; 将C的第一位与第二位相加
0051A442 |. B9 05000000 mov ecx, 5 ; 赋以5
0051A447 |. 99 cdq
0051A448 |. F7F9 idiv ecx ; 除以5
0051A44A |. 80C2 66 add dl, 66 ; 余数+66
0051A44D |. 8855 F8 mov [ebp-8], dl ; 结果存入【ebp-8】中,设为C1
0051A450 |. 8B45 FC mov eax, [ebp-4] ; [ebp-4]的值为C
0051A453 |. 0FB640 02 movzx eax, byte ptr [eax+2] ; 取c的第三位3
0051A457 |. 8B55 FC mov edx, [ebp-4] ; [ebp-4]的值为C
0051A45A |. 0FB652 03 movzx edx, byte ptr [edx+3] ; 取c的第四位3
0051A45E |. 03C2 add eax, edx ; 将C的第三位与第四位相加
0051A460 |. B9 05000000 mov ecx, 5 ; 赋以5
0051A465 |. 99 cdq
0051A466 |. F7F9 idiv ecx ; 除以5
0051A468 |. 80C2 75 add dl, 75 ; 余数+75
0051A46B |. 8855 F9 mov [ebp-7], dl ; 结果存入【ebp-7】中,设为C2
0051A46E |. 8B45 FC mov eax, [ebp-4] ; [ebp-4]的值为C
0051A471 |. 0FB640 04 movzx eax, byte ptr [eax+4] ; 取c的第五位1
0051A475 |. 8B55 FC mov edx, [ebp-4] ; [ebp-4]的值为C
0051A478 |. 0FB652 05 movzx edx, byte ptr [edx+5] ; 取C的第六位5
0051A47C |. 03C2 add eax, edx ; 将C的第五位与第六位相加
0051A47E |. B9 05000000 mov ecx, 5 ; 赋以5
0051A483 |. 99 cdq
0051A484 |. F7F9 idiv ecx ; 除以5
0051A486 |. 80C2 7A add dl, 7A ; 余数+7A
0051A489 |. 8855 FA mov [ebp-6], dl ; 结果存入【ebp-6】中,设为C3
0051A48C |. 8B45 FC mov eax, [ebp-4] ; [ebp-4]的值为C
0051A48F |. 0FB640 06 movzx eax, byte ptr [eax+6] ; 取C的第七位4
0051A493 |. 8B55 FC mov edx, [ebp-4] ; [ebp-4]的值为C
0051A496 |. 0FB652 07 movzx edx, byte ptr [edx+7] ; 取c的第八位5
0051A49A |. 03C2 add eax, edx ; 将第七位与第八位相加
0051A49C |. 8B55 FC mov edx, [ebp-4] ; [ebp-4]的值为C
0051A49F |. 0FB652 08 movzx edx, byte ptr [edx+8] ; 取C的第九位2
0051A4A3 |. 03C2 add eax, edx ; 将第九位与第十位相加
0051A4A5 |. B9 05000000 mov ecx, 5 ; 赋以5
0051A4AA |. 99 cdq
0051A4AB |. F7F9 idiv ecx ; 除以5
0051A4AD |. 80C2 69 add dl, 69 ; 余数+69
0051A4B0 |. 8855 FB mov [ebp-5], dl ; 结果存入【ebp-5】中,设为C4
0051A4B3 |. 8D45 F4 lea eax, [ebp-C]
0051A4B6 |. 8A55 F8 mov dl, [ebp-8]
0051A4B9 |. E8 E6A4EEFF call 004049A4
0051A4BE |. 8B45 F4 mov eax, [ebp-C]
0051A4C1 |. 8D55 FC lea edx, [ebp-4]
0051A4C4 |. B9 07000000 mov ecx, 7
0051A4C9 |. E8 8EA8EEFF call 00404D5C ; 将C1添加在C的第七位的位置,组成新C
1:如何将确认码19790621与固定值0D0B1相除取余数,然后转成10进制设为A
2:如何将确认码19790621与固定值0B25F1相异或,结果设为B,将B的第一位和第二位相加再除以5,然后取余数+34,将所得字符放在B的后面,再将B的第三位和第四位相加,再除以5,余数+33,再放在B的最后位。结果所得设为C.
3:如何将C与固定值DDFB7687相异或,再将结果的1,2位相加,3,4位相加,7.8位相加再转为字符,分别放在相异或结果的相关位置。结果设为D。
4:如何将A与D相连即为注册码。
这是我在PYG破解文章里看到的一篇破文,然后自己动手试了一下,对上面的四点有些不懂,哪位大侠能指点一下吗?
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
他的文章
- [调查]广东的朋友加入Q群 4606
- [求助]有没有看乱码的工具? 4238
- [原创]peid看雪全插件版 108639
- [分享]KM2.0免杀版 3885
看原图
赞赏
雪币:
留言: