-
-
[求助][求助][求助]算法求助
-
发表于: 2008-8-18 15:31 4018
-
我有个小软件 算法已以找到 但是不知道如何逆推算法写注册机请大家帮帮忙
注册码176位后两位是3D3D
4E3171325A39664C78576C524B3365515A4C7245494443734F744869542B5A646C50573251444871635950643066335179656C727651575A756727777317933444C42654538645877586C33484137514F4D765144413D3D
0045CE3F 8D45EC lea eax, [ebp-$14]
0045CE42 50 push eax
0045CE43 8BD6 mov edx, esi
0045CE45 03D2 add edx, edx
0045CE47 42 inc edx
0045CE48 B902000000 mov ecx, $00000002
0045CE4D 8B45FC mov eax, [ebp-$04]
* Reference to: System.@LStrCopy;
|
0045CE50 E80F79FAFF call 00404764
0045CE55 8B45EC mov eax, [ebp-$14]
|
0045CE58 E8C7FEFFFF call 0045CD24
0045CE5D 8BD0 mov edx, eax
0045CE5F 8D45E8 lea eax, [ebp-$18]
* Reference to: System.@LStrFromChar(String;String;Char);
| or: System.@LStrFromWChar(String;String;WideChar);
| or: System.@WStrFromChar(WideString;WideString;Char);
| or: System.@WStrFromWChar(WideString;WideString;WideChar);
|
0045CE62 E8C575FAFF call 0040442C
0045CE67 8B55E8 mov edx, [ebp-$18]
0045CE6A 8D45F0 lea eax, [ebp-$10]
* Reference to: System.@LStrCat;
|
0045CE6D E89A76FAFF call 0040450C
0045CE72 46 inc esi
0045CE73 4B dec ebx
0045CE74 75C9 jnz 0045CE3F
每次取2个字符连接得到
00D75F3C 4E 31 71 32 5A 39 66 4C 78 57 6C 52 4B 33 65 51 N1q2Z9fLxWlRK3eQ
00D75F4C 5A 4C 72 45 49 44 43 73 4F 74 48 69 54 2B 5A 64 ZLrEIDCsOtHiT+Zd
00D75F5C 6C 50 57 32 51 44 48 71 63 59 50 64 30 66 33 51 lPW2QDHqcYPd0f3Q
00D75F6C 79 65 6C 72 76 51 57 5A 75 67 2F 77 77 31 79 33 yelrvQWZug/ww1y3
00D75F7C 44 4C 42 65 45 38 64 58 77 58 6C 33 48 41 37 51 DLBeE8dXwXl3HA7Q
00D75F8C 4F 4D 76 51 44 41 3D 3D OMvQDA==
下一部分算法是BASE64算法
00459349 |> /C64424 08 00 /mov byte ptr [esp+8], 0
0045934E |. |33DB |xor ebx, ebx
00459350 |. |8D5424 0C |lea edx, dword ptr [esp+C]
00459354 |. |B9 58000000 |mov ecx, 58
00459359 |. |8B0424 |mov eax, dword ptr [esp]
0045935C |. |8B38 |mov edi, dword ptr [eax]
0045935E |. |FF57 0C |call dword ptr [edi+C]
00459361 |. |884424 09 |mov byte ptr [esp+9], al
00459365 |. |807C24 09 00 |cmp byte ptr [esp+9], 0
0045936A |. |0F84 D1000000 |je 00459441
00459370 |. |3A5C24 09 |cmp bl, byte ptr [esp+9]
00459374 |. |0F83 A5000000 |jnb 0045941F
0045937A |> |33C0 |/xor eax, eax
0045937C |. |8AC3 ||mov al, bl
0045937E |. |0FB64404 0C ||movzx eax, byte ptr [esp+eax+C]
00459383 |. |8A4406 D5 ||mov al, byte ptr [esi+eax-2B]
00459387 |. |884424 0A ||mov byte ptr [esp+A], al
0045938B |. |8BFB ||mov edi, ebx
0045938D |. |81E7 FF000000 ||and edi, 0FF
00459393 |. |33C0 ||xor eax, eax
00459395 |. |8A443C 0D ||mov al, byte ptr [esp+edi+D]
00459399 |. |8A4406 D5 ||mov al, byte ptr [esi+eax-2B]
0045939D |. |33D2 ||xor edx, edx
0045939F |. |8A543C 0E ||mov dl, byte ptr [esp+edi+E]
004593A3 |. |8A5416 D5 ||mov dl, byte ptr [esi+edx-2B]
004593A7 |. |885424 0B ||mov byte ptr [esp+B], dl
004593AB |. |8A5424 0A ||mov dl, byte ptr [esp+A]
004593AF |. |C1E2 02 ||shl edx, 2
004593B2 |. |33C9 ||xor ecx, ecx
004593B4 |. |8AC8 ||mov cl, al
004593B6 |. |C1E9 04 ||shr ecx, 4
004593B9 |. |0AD1 ||or dl, cl
004593BB |. |33C9 ||xor ecx, ecx
004593BD |. |8A4C24 08 ||mov cl, byte ptr [esp+8]
004593C1 |. |88540C 64 ||mov byte ptr [esp+ecx+64], dl
004593C5 |. |FE4424 08 ||inc byte ptr [esp+8]
004593C9 |. |807C3C 0E 3D ||cmp byte ptr [esp+edi+E], 3D
004593CE |. |74 42 ||je short 00459412
004593D0 |. |C1E0 04 ||shl eax, 4
004593D3 |. |33D2 ||xor edx, edx
004593D5 |. |8A5424 0B ||mov dl, byte ptr [esp+B]
004593D9 |. |C1EA 02 ||shr edx, 2
004593DC |. |0AC2 ||or al, dl
004593DE |. |33D2 ||xor edx, edx
004593E0 |. |8A5424 08 ||mov dl, byte ptr [esp+8]
004593E4 |. |884414 64 ||mov byte ptr [esp+edx+64], al
004593E8 |. |FE4424 08 ||inc byte ptr [esp+8]
004593EC |. |807C3C 0F 3D ||cmp byte ptr [esp+edi+F], 3D
004593F1 |. |74 1F ||je short 00459412
004593F3 |. |8A4424 0B ||mov al, byte ptr [esp+B]
004593F7 |. |C1E0 06 ||shl eax, 6
004593FA |. |33D2 ||xor edx, edx
004593FC |. |8A543C 0F ||mov dl, byte ptr [esp+edi+F]
00459400 |. |0A4416 D5 ||or al, byte ptr [esi+edx-2B]
00459404 |. |33D2 ||xor edx, edx
00459406 |. |8A5424 08 ||mov dl, byte ptr [esp+8]
0045940A |. |884414 64 ||mov byte ptr [esp+edx+64], al
0045940E |. |FE4424 08 ||inc byte ptr [esp+8]
00459412 |> |80C3 04 ||add bl, 4
00459415 |. |3A5C24 09 ||cmp bl, byte ptr [esp+9]
00459419 |.^|0F82 5BFFFFFF |\jb 0045937A
0045941F |> |33C9 |xor ecx, ecx
00459421 |. |8A4C24 08 |mov cl, byte ptr [esp+8]
00459425 |. |8D5424 64 |lea edx, dword ptr [esp+64]
00459429 |. |8B4424 04 |mov eax, dword ptr [esp+4]
0045942D |. |8B18 |mov ebx, dword ptr [eax]
0045942F |. |FF53 10 |call dword ptr [ebx+10]
00459432 |. |33C0 |xor eax, eax
00459434 |. |8A4424 09 |mov al, byte ptr [esp+9]
00459438 |. |83F8 58 |cmp eax, 58
0045943B |.^\0F83 08FFFFFF \jnb 00459349
经运算结果
0012F4CC 37 5A B6 67 D7 CB C5 69 51 2B 77 90 64 BA C4 20 7Z秅姿舏Q+w恉耗
0012F4DC 30 AC 3A D1 E2 4F E6 5D 94 F5 B6 40 31 EA 71 83 0?砚O鎉旛禓1阸
0012F4EC DD D1 FD D0 C9 E9 6B BD 05 99 BA 0F F0 C3 5C B7 菅砷k?櫤鹈\
0012F4FC 0C B0 5E 13 C7 57 C1 79 77 1C 0E D0 38 CB D0 0C .癪荳羪w?诵.
过程1
00457390 |> /8B4424 2A /mov eax, dword ptr [esp+2A]
00457394 |. |803C38 00 |cmp byte ptr [eax+edi], 0
00457398 |. |0F84 97000000 |je 00457435
0045739E |. |33C0 |xor eax, eax
004573A0 |. |894424 04 |mov dword ptr [esp+4], eax
004573A4 |. |8B0424 |mov eax, dword ptr [esp]
004573A7 |. |85C0 |test eax, eax
004573A9 |. |7C 77 |jl short 00457422
004573AB |. |40 |inc eax
004573AC |. |894424 10 |mov dword ptr [esp+10], eax
004573B0 |. |33ED |xor ebp, ebp
004573B2 |> |8D1C2F |/lea ebx, dword ptr [edi+ebp]
004573B5 |. |8B4424 1D ||mov eax, dword ptr [esp+1D]
004573B9 |. |0FB60428 ||movzx eax, byte ptr [eax+ebp] 37
004573BD |. |8B5424 2A ||mov edx, dword ptr [esp+2A]
004573C1 |. |0FB6143A ||movzx edx, byte ptr [edx+edi] 37
004573C5 |. |0FAFD0 ||imul edx, eax
004573C8 |. |8BC2 ||mov eax, edx
004573CA |. |3B5E 01 ||cmp ebx, dword ptr [esi+1]
004573CD |. |7E 06 ||jle short 004573D5
004573CF |. |034424 04 ||add eax, dword ptr [esp+4]
004573D3 |. |EB 0D ||jmp short 004573E2
004573D5 |> |8B56 09 ||mov edx, dword ptr [esi+9]
004573D8 |. |0FB6141A ||movzx edx, byte ptr [edx+ebx]
004573DC |. |03C2 ||add eax, edx
004573DE |. |034424 04 ||add eax, dword ptr [esp+4]
004573E2 |> |8BD0 ||mov edx, eax
004573E4 |. |80E2 FF ||and dl, 0FF
004573E7 |. |885424 08 ||mov byte ptr [esp+8], dl
004573EB |. |C1E8 08 ||shr eax, 8
004573EE |. |894424 04 ||mov dword ptr [esp+4], eax
004573F2 |. |8D43 01 ||lea eax, dword ptr [ebx+1]
004573F5 |. |3B46 05 ||cmp eax, dword ptr [esi+5]
004573F8 |. |7E 0A ||jle short 00457404
004573FA |. |8D53 64 ||lea edx, dword ptr [ebx+64]
004573FD |. |8BC6 ||mov eax, esi
004573FF |. |E8 04F2FFFF ||call 00456608
00457404 |> |8B46 09 ||mov eax, dword ptr [esi+9]
00457407 |. |8A5424 08 ||mov dl, byte ptr [esp+8]
0045740B |. |881418 ||mov byte ptr [eax+ebx], dl
0045740E |. |8D43 01 ||lea eax, dword ptr [ebx+1]
00457411 |. |3B46 01 ||cmp eax, dword ptr [esi+1]
00457414 |. |7E 05 ||jle short 0045741B
00457416 |. |43 ||inc ebx
00457417 |. |895C24 15 ||mov dword ptr [esp+15], ebx
0045741B |> |45 ||inc ebp
0045741C |. |FF4C24 10 ||dec dword ptr [esp+10]
00457420 |.^|75 90 |\jnz short 004573B2
00457422 |> |8A4C24 04 |mov cl, byte ptr [esp+4]
00457426 |. |8B1424 |mov edx, dword ptr [esp]
00457429 |. |03D7 |add edx, edi
0045742B |. |83C2 02 |add edx, 2
0045742E |. |8BC6 |mov eax, esi
00457430 |. |E8 93F4FFFF |call 004568C8
00457435 |> |47 |inc edi
00457436 |. |FF4C24 0C |dec dword ptr [esp+C]
0045743A |.^\0F85 50FFFFFF \jnz 00457390
经运算结果
00D77168 D1 B7 FE A7 DE 00 09 88 30 19 BE B1 2E 2D 0F 4A 逊?.?颈.-J
00D77178 08 B4 0B 8B 87 B4 2F 4C 00 1D 7D 4B E8 0F 75 5C ?媷?L.}K?u\
00D77188 FA E4 0E C2 08 61 BB 16 5B DA 74 4E 7D 07 37 BD ?a?[趖N}7
00D77198 4A 5D AA F7 DA 7C E4 BF CF 47 39 1A 90 D9 BD 92 J]趞淇螱9愘綊
00D771A8 3F AF 33 44 AE CB 65 19 1C 5B 60 EC D2 62 14 0B ??De[`煲b
00D771B8 8B EC E5 24 64 94 50 3C 0D AE D4 1C 97 19 37 39 嬱?d擯<.?79
00D771C8 3D 2A C7 7C 8A 4C 2B 41 2F 61 60 8B 3A 54 97 BA =*莬奓+A/a`?T椇
00D771D8 5D 54 32 79 D0 D8 F8 85 2B 90 26 31 58 3D A4 00 ]T2y胸鴧+?1X=?
过程2
004575C5 |> /8B4424 0A /mov eax, dword ptr [esp+A]
004575C9 |. |0FB60430 |movzx eax, byte ptr [eax+esi]
此值为这个数组
00D77604 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D77614 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D77624 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D77634 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EB ...............
00D77644 6B 95 21 1F E4 53 97 24 74 C7 65 B6 66 DA 07 DD k?銼?t莈秄?
00D77654 25 E9 E6 0D B7 09 3E D3 27 3D CC D2 DD 17 73 3A %殒.?>?=桃?s:
00D77664 73 01 4F A1 39 B1 35 F8 3E 08 F5 C4 53 50 6A 3F sO???跄SPj?
00D77674 41 02 FF 79 86 D9 A2 2D D9 84 22 78 99 5B 88 Ay嗁?賱"x橻?
004575CD |. |33C9 |xor ecx, ecx
004575CF |. |8A0C24 |mov cl, byte ptr [esp]
此值为00A4 IDIV 88= 1
004575D2 |. |66:0FAFC1 |imul ax, cx
004575D6 |. |81E2 FF000000 |and edx, 0FF
004575DC |. |66:03C2 |add ax, dx
004575DF |. |8BD0 |mov edx, eax
004575E1 |. |8BC2 |mov eax, edx
004575E3 |. |24 FF |and al, 0FF
004575E5 |. |0FB7D2 |movzx edx, dx
004575E8 |. |C1EA 08 |shr edx, 8
004575EB |. |8B4B 09 |mov ecx, dword ptr [ebx+9]
004575EE |. |880431 |mov byte ptr [ecx+esi], al
004575F1 |. |8D46 01 |lea eax, dword ptr [esi+1]
004575F4 |. |3B43 01 |cmp eax, dword ptr [ebx+1]
004575F7 |. |7E 04 |jle short 004575FD
004575F9 |. |894424 02 |mov dword ptr [esp+2], eax
004575FD |> |46 |inc esi
004575FE |. |4F |dec edi
004575FF |.^\75 C4 \jnz short 004575C5
此过程结果为
00D77C50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D77C60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D77C70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D77C80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EB ...............
00D77C90 6B 95 21 1F E4 53 97 24 74 C7 65 B6 66 DA 07 DD k?銼?t莈秄?
00D77CA0 25 E9 E6 0D B7 09 3E D3 27 3D CC D2 DD 17 73 3A %殒.?>?=桃?s:
00D77CB0 73 01 4F A1 39 B1 35 F8 3E 08 F5 C4 53 50 6A 3F sO???跄SPj?
00D77CC0 41 02 FF 79 86 D9 A2 2D D9 84 22 78 99 5B 88 Ay嗁?賱"x橻?
过程3
00456FCC |> /8B45 F4 /mov eax, dword ptr [ebp-C]
00456FCF |. |0FB63438 |movzx esi, byte ptr [eax+edi]
此值为下数组
00D77AC4 D1 B7 FE A7 DE 00 09 88 30 19 BE B1 2E 2D 0F 4A 逊?.?颈.-J
00D77AD4 08 B4 0B 8B 87 B4 2F 4C 00 1D 7D 4B E8 0F 75 5C ?媷?L.}K?u\
00D77AE4 FA E4 0E C2 08 61 BB 16 5B DA 74 4E 7D 07 37 BD ?a?[趖N}7
00D77AF4 4A 5D AA F7 DA 7C E4 BF CF 47 39 1A 90 D9 BD 92 J]趞淇螱9愘綊
00D77B04 3F AF 33 44 AE CB 65 19 1C 5B 60 EC D2 62 14 0B ??De[`煲b
00D77B14 8B EC E5 24 64 94 50 3C 0D AE D4 1C 97 19 37 39 嬱?d擯<.?79
00D77B24 3D 2A C7 7C 8A 4C 2B 41 2F 61 60 8B 3A 54 97 BA =*莬奓+A/a`?T椇
00D77B34 5D 54 32 79 D0 D8 F8 85 2B 90 26 31 58 3D A4 00 ]T2y胸鴧+?1X=?
00456FD3 |. |8D47 01 |lea eax, dword ptr [edi+1]
00456FD6 |. |3B45 DF |cmp eax, dword ptr [ebp-21]
00456FD9 |. |7E 08 |jle short 00456FE3
00456FDB |. |0FB745 FE |movzx eax, word ptr [ebp-2]
00456FDF |. |2BF0 |sub esi, eax
00456FE1 |. |EB 0F |jmp short 00456FF2
00456FE3 |> |8B45 E7 |mov eax, dword ptr [ebp-19]
00456FE6 |. |0FB60438 |movzx eax, byte ptr [eax+edi]
此值为下数组
00D77C50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D77C60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D77C70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D77C80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EB ...............
00D77C90 6B 95 21 1F E4 53 97 24 74 C7 65 B6 66 DA 07 DD k?銼?t莈秄?
00D77CA0 25 E9 E6 0D B7 09 3E D3 27 3D CC D2 DD 17 73 3A %殒.?>?=桃?s:
00D77CB0 73 01 4F A1 39 B1 35 F8 3E 08 F5 C4 53 50 6A 3F sO???跄SPj?
00D77CC0 41 02 FF 79 86 D9 A2 2D D9 84 22 78 99 5B 88 Ay嗁?賱"x橻?
00456FEA |. |0FB755 FE |movzx edx, word ptr [ebp-2]
00456FEE |. |03C2 |add eax, edx
00456FF0 |. |2BF0 |sub esi, eax
00456FF2 |> |85F6 |test esi, esi
00456FF4 |. |7D 0E |jge short 00457004
00456FF6 |. |81C6 00010000 |add esi, 100
00456FFC |. |66:C745 FE 01>|mov word ptr [ebp-2], 1
00457002 |. |EB 06 |jmp short 0045700A
00457004 |> |66:C745 FE 00>|mov word ptr [ebp-2], 0
0045700A |> |8B43 01 |mov eax, dword ptr [ebx+1]
0045700D |. |40 |inc eax
0045700E |. |3B43 05 |cmp eax, dword ptr [ebx+5]
00457011 |. |7E 09 |jle short 0045701C
00457013 |. |8BD0 |mov edx, eax
00457015 |. |8BC3 |mov eax, ebx
00457017 |. |E8 ECF5FFFF |call 00456608
0045701C |> |8B43 01 |mov eax, dword ptr [ebx+1]
0045701F |. |8B53 09 |mov edx, dword ptr [ebx+9]
00457022 |. |8BCE |mov ecx, esi
00457024 |. |880C02 |mov byte ptr [edx+eax], cl
00457027 |. |FF43 01 |inc dword ptr [ebx+1]
0045702A |. |47 |inc edi
0045702B |. |FF4D F8 |dec dword ptr [ebp-8]
0045702E |.^\75 9C \jnz short 00456FCC
00D77B48 D1 B7 FE A7 DE 00 09 88 30 19 BE B1 2E 2D 0F 4A 逊?.?颈.-J
00D77B58 08 B4 0B 8B 87 B4 2F 4C 00 1D 7D 4B E8 0F 75 5C ?媷?L.}K?u\
00D77B68 FA E4 0E C2 08 61 BB 16 5B DA 74 4E 7D 07 37 BD ?a?[趖N}7
00D77B78 4A 5D AA F7 DA 7C E4 BF CF 47 39 1A 90 D9 BD A7 J]趞淇螱9愘涧
00D77B88 D3 19 12 25 CA 77 CE F4 A7 93 FA 35 6C 88 0C 2E ?%蕎昔?l?.
00D77B98 65 03 FF 16 AD 8A 12 69 E5 70 08 4A B9 01 C4 FE e瓓i錺J?宁
00D77BA8 C9 28 78 DB 50 9B F5 48 F0 58 6B C6 E6 03 2D 7B ?x跴涻H餢k奇-{
00D77BB8 1C 52 33 FF 49 FF 55 58 52 0B 04 B9 BE E1 1B 00 R3IUXR咕?.
过程2和过程3 经过64次循环得以下结果
00D779BC 33 A0 81 65 FE 8D 4A 6A AA 8E A8 21 B6 78 90 34 3爜eJj獛?秞?
00D779CC AB F9 C4 72 59 41 77 3F A1 2B 4B 41 AA BF CA 64 膔YAw??KA蔰
00D779DC 45 DE 6C E7 BC 2D 27 EC 56 A4 01 20 3E 6A 90 09 E辧缂-'霽? >j?
00D779EC 92 6D 97 21 72 23 B6 A0 1B F6 43 E7 36 C6 7C 5A 抦?r#稜鯟?苵Z
此结果经过程1运算后 在经过程2和过程3运算
如此循环几次
得结果
00D77770 37 34 31 31 45 44 33 36 00 01 08 DA 34 46 AA 51 7411ED36.?F猀
00D77780 29 5F 6C 15 79 12 D5 10 4B E9 5E C4 53 B1 D6 B6 )_ly?K閊腟敝
00D77790 4E 2A 54 76 3F D1 47 7A 26 DE 49 C4 F8 7D E1 D2 N*Tv?袵z&轎镍}嵋
00D777A0 06 24 25 7F 06 97 03 C4 A5 C3 B4 8E 35 AD 02 00 $%?磨么??.
7411ED36 与系列号比较 相等则注册成功
写的有点乱 抱歉希望大家帮忙分析下 并附上软件
注册码176位后两位是3D3D
4E3171325A39664C78576C524B3365515A4C7245494443734F744869542B5A646C50573251444871635950643066335179656C727651575A756727777317933444C42654538645877586C33484137514F4D765144413D3D
0045CE3F 8D45EC lea eax, [ebp-$14]
0045CE42 50 push eax
0045CE43 8BD6 mov edx, esi
0045CE45 03D2 add edx, edx
0045CE47 42 inc edx
0045CE48 B902000000 mov ecx, $00000002
0045CE4D 8B45FC mov eax, [ebp-$04]
* Reference to: System.@LStrCopy;
|
0045CE50 E80F79FAFF call 00404764
0045CE55 8B45EC mov eax, [ebp-$14]
|
0045CE58 E8C7FEFFFF call 0045CD24
0045CE5D 8BD0 mov edx, eax
0045CE5F 8D45E8 lea eax, [ebp-$18]
* Reference to: System.@LStrFromChar(String;String;Char);
| or: System.@LStrFromWChar(String;String;WideChar);
| or: System.@WStrFromChar(WideString;WideString;Char);
| or: System.@WStrFromWChar(WideString;WideString;WideChar);
|
0045CE62 E8C575FAFF call 0040442C
0045CE67 8B55E8 mov edx, [ebp-$18]
0045CE6A 8D45F0 lea eax, [ebp-$10]
* Reference to: System.@LStrCat;
|
0045CE6D E89A76FAFF call 0040450C
0045CE72 46 inc esi
0045CE73 4B dec ebx
0045CE74 75C9 jnz 0045CE3F
每次取2个字符连接得到
00D75F3C 4E 31 71 32 5A 39 66 4C 78 57 6C 52 4B 33 65 51 N1q2Z9fLxWlRK3eQ
00D75F4C 5A 4C 72 45 49 44 43 73 4F 74 48 69 54 2B 5A 64 ZLrEIDCsOtHiT+Zd
00D75F5C 6C 50 57 32 51 44 48 71 63 59 50 64 30 66 33 51 lPW2QDHqcYPd0f3Q
00D75F6C 79 65 6C 72 76 51 57 5A 75 67 2F 77 77 31 79 33 yelrvQWZug/ww1y3
00D75F7C 44 4C 42 65 45 38 64 58 77 58 6C 33 48 41 37 51 DLBeE8dXwXl3HA7Q
00D75F8C 4F 4D 76 51 44 41 3D 3D OMvQDA==
下一部分算法是BASE64算法
00459349 |> /C64424 08 00 /mov byte ptr [esp+8], 0
0045934E |. |33DB |xor ebx, ebx
00459350 |. |8D5424 0C |lea edx, dword ptr [esp+C]
00459354 |. |B9 58000000 |mov ecx, 58
00459359 |. |8B0424 |mov eax, dword ptr [esp]
0045935C |. |8B38 |mov edi, dword ptr [eax]
0045935E |. |FF57 0C |call dword ptr [edi+C]
00459361 |. |884424 09 |mov byte ptr [esp+9], al
00459365 |. |807C24 09 00 |cmp byte ptr [esp+9], 0
0045936A |. |0F84 D1000000 |je 00459441
00459370 |. |3A5C24 09 |cmp bl, byte ptr [esp+9]
00459374 |. |0F83 A5000000 |jnb 0045941F
0045937A |> |33C0 |/xor eax, eax
0045937C |. |8AC3 ||mov al, bl
0045937E |. |0FB64404 0C ||movzx eax, byte ptr [esp+eax+C]
00459383 |. |8A4406 D5 ||mov al, byte ptr [esi+eax-2B]
00459387 |. |884424 0A ||mov byte ptr [esp+A], al
0045938B |. |8BFB ||mov edi, ebx
0045938D |. |81E7 FF000000 ||and edi, 0FF
00459393 |. |33C0 ||xor eax, eax
00459395 |. |8A443C 0D ||mov al, byte ptr [esp+edi+D]
00459399 |. |8A4406 D5 ||mov al, byte ptr [esi+eax-2B]
0045939D |. |33D2 ||xor edx, edx
0045939F |. |8A543C 0E ||mov dl, byte ptr [esp+edi+E]
004593A3 |. |8A5416 D5 ||mov dl, byte ptr [esi+edx-2B]
004593A7 |. |885424 0B ||mov byte ptr [esp+B], dl
004593AB |. |8A5424 0A ||mov dl, byte ptr [esp+A]
004593AF |. |C1E2 02 ||shl edx, 2
004593B2 |. |33C9 ||xor ecx, ecx
004593B4 |. |8AC8 ||mov cl, al
004593B6 |. |C1E9 04 ||shr ecx, 4
004593B9 |. |0AD1 ||or dl, cl
004593BB |. |33C9 ||xor ecx, ecx
004593BD |. |8A4C24 08 ||mov cl, byte ptr [esp+8]
004593C1 |. |88540C 64 ||mov byte ptr [esp+ecx+64], dl
004593C5 |. |FE4424 08 ||inc byte ptr [esp+8]
004593C9 |. |807C3C 0E 3D ||cmp byte ptr [esp+edi+E], 3D
004593CE |. |74 42 ||je short 00459412
004593D0 |. |C1E0 04 ||shl eax, 4
004593D3 |. |33D2 ||xor edx, edx
004593D5 |. |8A5424 0B ||mov dl, byte ptr [esp+B]
004593D9 |. |C1EA 02 ||shr edx, 2
004593DC |. |0AC2 ||or al, dl
004593DE |. |33D2 ||xor edx, edx
004593E0 |. |8A5424 08 ||mov dl, byte ptr [esp+8]
004593E4 |. |884414 64 ||mov byte ptr [esp+edx+64], al
004593E8 |. |FE4424 08 ||inc byte ptr [esp+8]
004593EC |. |807C3C 0F 3D ||cmp byte ptr [esp+edi+F], 3D
004593F1 |. |74 1F ||je short 00459412
004593F3 |. |8A4424 0B ||mov al, byte ptr [esp+B]
004593F7 |. |C1E0 06 ||shl eax, 6
004593FA |. |33D2 ||xor edx, edx
004593FC |. |8A543C 0F ||mov dl, byte ptr [esp+edi+F]
00459400 |. |0A4416 D5 ||or al, byte ptr [esi+edx-2B]
00459404 |. |33D2 ||xor edx, edx
00459406 |. |8A5424 08 ||mov dl, byte ptr [esp+8]
0045940A |. |884414 64 ||mov byte ptr [esp+edx+64], al
0045940E |. |FE4424 08 ||inc byte ptr [esp+8]
00459412 |> |80C3 04 ||add bl, 4
00459415 |. |3A5C24 09 ||cmp bl, byte ptr [esp+9]
00459419 |.^|0F82 5BFFFFFF |\jb 0045937A
0045941F |> |33C9 |xor ecx, ecx
00459421 |. |8A4C24 08 |mov cl, byte ptr [esp+8]
00459425 |. |8D5424 64 |lea edx, dword ptr [esp+64]
00459429 |. |8B4424 04 |mov eax, dword ptr [esp+4]
0045942D |. |8B18 |mov ebx, dword ptr [eax]
0045942F |. |FF53 10 |call dword ptr [ebx+10]
00459432 |. |33C0 |xor eax, eax
00459434 |. |8A4424 09 |mov al, byte ptr [esp+9]
00459438 |. |83F8 58 |cmp eax, 58
0045943B |.^\0F83 08FFFFFF \jnb 00459349
经运算结果
0012F4CC 37 5A B6 67 D7 CB C5 69 51 2B 77 90 64 BA C4 20 7Z秅姿舏Q+w恉耗
0012F4DC 30 AC 3A D1 E2 4F E6 5D 94 F5 B6 40 31 EA 71 83 0?砚O鎉旛禓1阸
0012F4EC DD D1 FD D0 C9 E9 6B BD 05 99 BA 0F F0 C3 5C B7 菅砷k?櫤鹈\
0012F4FC 0C B0 5E 13 C7 57 C1 79 77 1C 0E D0 38 CB D0 0C .癪荳羪w?诵.
过程1
00457390 |> /8B4424 2A /mov eax, dword ptr [esp+2A]
00457394 |. |803C38 00 |cmp byte ptr [eax+edi], 0
00457398 |. |0F84 97000000 |je 00457435
0045739E |. |33C0 |xor eax, eax
004573A0 |. |894424 04 |mov dword ptr [esp+4], eax
004573A4 |. |8B0424 |mov eax, dword ptr [esp]
004573A7 |. |85C0 |test eax, eax
004573A9 |. |7C 77 |jl short 00457422
004573AB |. |40 |inc eax
004573AC |. |894424 10 |mov dword ptr [esp+10], eax
004573B0 |. |33ED |xor ebp, ebp
004573B2 |> |8D1C2F |/lea ebx, dword ptr [edi+ebp]
004573B5 |. |8B4424 1D ||mov eax, dword ptr [esp+1D]
004573B9 |. |0FB60428 ||movzx eax, byte ptr [eax+ebp] 37
004573BD |. |8B5424 2A ||mov edx, dword ptr [esp+2A]
004573C1 |. |0FB6143A ||movzx edx, byte ptr [edx+edi] 37
004573C5 |. |0FAFD0 ||imul edx, eax
004573C8 |. |8BC2 ||mov eax, edx
004573CA |. |3B5E 01 ||cmp ebx, dword ptr [esi+1]
004573CD |. |7E 06 ||jle short 004573D5
004573CF |. |034424 04 ||add eax, dword ptr [esp+4]
004573D3 |. |EB 0D ||jmp short 004573E2
004573D5 |> |8B56 09 ||mov edx, dword ptr [esi+9]
004573D8 |. |0FB6141A ||movzx edx, byte ptr [edx+ebx]
004573DC |. |03C2 ||add eax, edx
004573DE |. |034424 04 ||add eax, dword ptr [esp+4]
004573E2 |> |8BD0 ||mov edx, eax
004573E4 |. |80E2 FF ||and dl, 0FF
004573E7 |. |885424 08 ||mov byte ptr [esp+8], dl
004573EB |. |C1E8 08 ||shr eax, 8
004573EE |. |894424 04 ||mov dword ptr [esp+4], eax
004573F2 |. |8D43 01 ||lea eax, dword ptr [ebx+1]
004573F5 |. |3B46 05 ||cmp eax, dword ptr [esi+5]
004573F8 |. |7E 0A ||jle short 00457404
004573FA |. |8D53 64 ||lea edx, dword ptr [ebx+64]
004573FD |. |8BC6 ||mov eax, esi
004573FF |. |E8 04F2FFFF ||call 00456608
00457404 |> |8B46 09 ||mov eax, dword ptr [esi+9]
00457407 |. |8A5424 08 ||mov dl, byte ptr [esp+8]
0045740B |. |881418 ||mov byte ptr [eax+ebx], dl
0045740E |. |8D43 01 ||lea eax, dword ptr [ebx+1]
00457411 |. |3B46 01 ||cmp eax, dword ptr [esi+1]
00457414 |. |7E 05 ||jle short 0045741B
00457416 |. |43 ||inc ebx
00457417 |. |895C24 15 ||mov dword ptr [esp+15], ebx
0045741B |> |45 ||inc ebp
0045741C |. |FF4C24 10 ||dec dword ptr [esp+10]
00457420 |.^|75 90 |\jnz short 004573B2
00457422 |> |8A4C24 04 |mov cl, byte ptr [esp+4]
00457426 |. |8B1424 |mov edx, dword ptr [esp]
00457429 |. |03D7 |add edx, edi
0045742B |. |83C2 02 |add edx, 2
0045742E |. |8BC6 |mov eax, esi
00457430 |. |E8 93F4FFFF |call 004568C8
00457435 |> |47 |inc edi
00457436 |. |FF4C24 0C |dec dword ptr [esp+C]
0045743A |.^\0F85 50FFFFFF \jnz 00457390
经运算结果
00D77168 D1 B7 FE A7 DE 00 09 88 30 19 BE B1 2E 2D 0F 4A 逊?.?颈.-J
00D77178 08 B4 0B 8B 87 B4 2F 4C 00 1D 7D 4B E8 0F 75 5C ?媷?L.}K?u\
00D77188 FA E4 0E C2 08 61 BB 16 5B DA 74 4E 7D 07 37 BD ?a?[趖N}7
00D77198 4A 5D AA F7 DA 7C E4 BF CF 47 39 1A 90 D9 BD 92 J]趞淇螱9愘綊
00D771A8 3F AF 33 44 AE CB 65 19 1C 5B 60 EC D2 62 14 0B ??De[`煲b
00D771B8 8B EC E5 24 64 94 50 3C 0D AE D4 1C 97 19 37 39 嬱?d擯<.?79
00D771C8 3D 2A C7 7C 8A 4C 2B 41 2F 61 60 8B 3A 54 97 BA =*莬奓+A/a`?T椇
00D771D8 5D 54 32 79 D0 D8 F8 85 2B 90 26 31 58 3D A4 00 ]T2y胸鴧+?1X=?
过程2
004575C5 |> /8B4424 0A /mov eax, dword ptr [esp+A]
004575C9 |. |0FB60430 |movzx eax, byte ptr [eax+esi]
此值为这个数组
00D77604 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D77614 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D77624 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D77634 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EB ...............
00D77644 6B 95 21 1F E4 53 97 24 74 C7 65 B6 66 DA 07 DD k?銼?t莈秄?
00D77654 25 E9 E6 0D B7 09 3E D3 27 3D CC D2 DD 17 73 3A %殒.?>?=桃?s:
00D77664 73 01 4F A1 39 B1 35 F8 3E 08 F5 C4 53 50 6A 3F sO???跄SPj?
00D77674 41 02 FF 79 86 D9 A2 2D D9 84 22 78 99 5B 88 Ay嗁?賱"x橻?
004575CD |. |33C9 |xor ecx, ecx
004575CF |. |8A0C24 |mov cl, byte ptr [esp]
此值为00A4 IDIV 88= 1
004575D2 |. |66:0FAFC1 |imul ax, cx
004575D6 |. |81E2 FF000000 |and edx, 0FF
004575DC |. |66:03C2 |add ax, dx
004575DF |. |8BD0 |mov edx, eax
004575E1 |. |8BC2 |mov eax, edx
004575E3 |. |24 FF |and al, 0FF
004575E5 |. |0FB7D2 |movzx edx, dx
004575E8 |. |C1EA 08 |shr edx, 8
004575EB |. |8B4B 09 |mov ecx, dword ptr [ebx+9]
004575EE |. |880431 |mov byte ptr [ecx+esi], al
004575F1 |. |8D46 01 |lea eax, dword ptr [esi+1]
004575F4 |. |3B43 01 |cmp eax, dword ptr [ebx+1]
004575F7 |. |7E 04 |jle short 004575FD
004575F9 |. |894424 02 |mov dword ptr [esp+2], eax
004575FD |> |46 |inc esi
004575FE |. |4F |dec edi
004575FF |.^\75 C4 \jnz short 004575C5
此过程结果为
00D77C50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D77C60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D77C70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D77C80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EB ...............
00D77C90 6B 95 21 1F E4 53 97 24 74 C7 65 B6 66 DA 07 DD k?銼?t莈秄?
00D77CA0 25 E9 E6 0D B7 09 3E D3 27 3D CC D2 DD 17 73 3A %殒.?>?=桃?s:
00D77CB0 73 01 4F A1 39 B1 35 F8 3E 08 F5 C4 53 50 6A 3F sO???跄SPj?
00D77CC0 41 02 FF 79 86 D9 A2 2D D9 84 22 78 99 5B 88 Ay嗁?賱"x橻?
过程3
00456FCC |> /8B45 F4 /mov eax, dword ptr [ebp-C]
00456FCF |. |0FB63438 |movzx esi, byte ptr [eax+edi]
此值为下数组
00D77AC4 D1 B7 FE A7 DE 00 09 88 30 19 BE B1 2E 2D 0F 4A 逊?.?颈.-J
00D77AD4 08 B4 0B 8B 87 B4 2F 4C 00 1D 7D 4B E8 0F 75 5C ?媷?L.}K?u\
00D77AE4 FA E4 0E C2 08 61 BB 16 5B DA 74 4E 7D 07 37 BD ?a?[趖N}7
00D77AF4 4A 5D AA F7 DA 7C E4 BF CF 47 39 1A 90 D9 BD 92 J]趞淇螱9愘綊
00D77B04 3F AF 33 44 AE CB 65 19 1C 5B 60 EC D2 62 14 0B ??De[`煲b
00D77B14 8B EC E5 24 64 94 50 3C 0D AE D4 1C 97 19 37 39 嬱?d擯<.?79
00D77B24 3D 2A C7 7C 8A 4C 2B 41 2F 61 60 8B 3A 54 97 BA =*莬奓+A/a`?T椇
00D77B34 5D 54 32 79 D0 D8 F8 85 2B 90 26 31 58 3D A4 00 ]T2y胸鴧+?1X=?
00456FD3 |. |8D47 01 |lea eax, dword ptr [edi+1]
00456FD6 |. |3B45 DF |cmp eax, dword ptr [ebp-21]
00456FD9 |. |7E 08 |jle short 00456FE3
00456FDB |. |0FB745 FE |movzx eax, word ptr [ebp-2]
00456FDF |. |2BF0 |sub esi, eax
00456FE1 |. |EB 0F |jmp short 00456FF2
00456FE3 |> |8B45 E7 |mov eax, dword ptr [ebp-19]
00456FE6 |. |0FB60438 |movzx eax, byte ptr [eax+edi]
此值为下数组
00D77C50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D77C60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D77C70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D77C80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EB ...............
00D77C90 6B 95 21 1F E4 53 97 24 74 C7 65 B6 66 DA 07 DD k?銼?t莈秄?
00D77CA0 25 E9 E6 0D B7 09 3E D3 27 3D CC D2 DD 17 73 3A %殒.?>?=桃?s:
00D77CB0 73 01 4F A1 39 B1 35 F8 3E 08 F5 C4 53 50 6A 3F sO???跄SPj?
00D77CC0 41 02 FF 79 86 D9 A2 2D D9 84 22 78 99 5B 88 Ay嗁?賱"x橻?
00456FEA |. |0FB755 FE |movzx edx, word ptr [ebp-2]
00456FEE |. |03C2 |add eax, edx
00456FF0 |. |2BF0 |sub esi, eax
00456FF2 |> |85F6 |test esi, esi
00456FF4 |. |7D 0E |jge short 00457004
00456FF6 |. |81C6 00010000 |add esi, 100
00456FFC |. |66:C745 FE 01>|mov word ptr [ebp-2], 1
00457002 |. |EB 06 |jmp short 0045700A
00457004 |> |66:C745 FE 00>|mov word ptr [ebp-2], 0
0045700A |> |8B43 01 |mov eax, dword ptr [ebx+1]
0045700D |. |40 |inc eax
0045700E |. |3B43 05 |cmp eax, dword ptr [ebx+5]
00457011 |. |7E 09 |jle short 0045701C
00457013 |. |8BD0 |mov edx, eax
00457015 |. |8BC3 |mov eax, ebx
00457017 |. |E8 ECF5FFFF |call 00456608
0045701C |> |8B43 01 |mov eax, dword ptr [ebx+1]
0045701F |. |8B53 09 |mov edx, dword ptr [ebx+9]
00457022 |. |8BCE |mov ecx, esi
00457024 |. |880C02 |mov byte ptr [edx+eax], cl
00457027 |. |FF43 01 |inc dword ptr [ebx+1]
0045702A |. |47 |inc edi
0045702B |. |FF4D F8 |dec dword ptr [ebp-8]
0045702E |.^\75 9C \jnz short 00456FCC
00D77B48 D1 B7 FE A7 DE 00 09 88 30 19 BE B1 2E 2D 0F 4A 逊?.?颈.-J
00D77B58 08 B4 0B 8B 87 B4 2F 4C 00 1D 7D 4B E8 0F 75 5C ?媷?L.}K?u\
00D77B68 FA E4 0E C2 08 61 BB 16 5B DA 74 4E 7D 07 37 BD ?a?[趖N}7
00D77B78 4A 5D AA F7 DA 7C E4 BF CF 47 39 1A 90 D9 BD A7 J]趞淇螱9愘涧
00D77B88 D3 19 12 25 CA 77 CE F4 A7 93 FA 35 6C 88 0C 2E ?%蕎昔?l?.
00D77B98 65 03 FF 16 AD 8A 12 69 E5 70 08 4A B9 01 C4 FE e瓓i錺J?宁
00D77BA8 C9 28 78 DB 50 9B F5 48 F0 58 6B C6 E6 03 2D 7B ?x跴涻H餢k奇-{
00D77BB8 1C 52 33 FF 49 FF 55 58 52 0B 04 B9 BE E1 1B 00 R3IUXR咕?.
过程2和过程3 经过64次循环得以下结果
00D779BC 33 A0 81 65 FE 8D 4A 6A AA 8E A8 21 B6 78 90 34 3爜eJj獛?秞?
00D779CC AB F9 C4 72 59 41 77 3F A1 2B 4B 41 AA BF CA 64 膔YAw??KA蔰
00D779DC 45 DE 6C E7 BC 2D 27 EC 56 A4 01 20 3E 6A 90 09 E辧缂-'霽? >j?
00D779EC 92 6D 97 21 72 23 B6 A0 1B F6 43 E7 36 C6 7C 5A 抦?r#稜鯟?苵Z
此结果经过程1运算后 在经过程2和过程3运算
如此循环几次
得结果
00D77770 37 34 31 31 45 44 33 36 00 01 08 DA 34 46 AA 51 7411ED36.?F猀
00D77780 29 5F 6C 15 79 12 D5 10 4B E9 5E C4 53 B1 D6 B6 )_ly?K閊腟敝
00D77790 4E 2A 54 76 3F D1 47 7A 26 DE 49 C4 F8 7D E1 D2 N*Tv?袵z&轎镍}嵋
00D777A0 06 24 25 7F 06 97 03 C4 A5 C3 B4 8E 35 AD 02 00 $%?磨么??.
7411ED36 与系列号比较 相等则注册成功
写的有点乱 抱歉希望大家帮忙分析下 并附上软件
赞赏
他的文章
看原图
赞赏
雪币:
留言: