首页
社区
课程
招聘
[求助][求助][求助]算法求助
发表于: 2008-8-18 15:31 3988

[求助][求助][求助]算法求助

2008-8-18 15:31
3988
我有个小软件 算法已以找到 但是不知道如何逆推算法写注册机请大家帮帮忙
注册码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  ??De[`煲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     Ay嗁?賱"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     Ay嗁?賱"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  ??De[`煲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     Ay嗁?賱"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  R3IUXR 咕?.

过程2和过程3 经过64次循环得以下结果
00D779BC  33 A0 81 65 FE 8D 4A 6A AA 8E A8 21 B6 78 90 34  3爜eJj獛?秞?
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 与系列号比较 相等则注册成功
写的有点乱 抱歉希望大家帮忙分析下 并附上软件

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 214
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
自己顶一下大家帮忙看看后面是什么算法 怎么可逆 谢谢
2008-8-21 08:14
0
游客
登录 | 注册 方可回帖
返回
//