能力值:
( LV12,RANK:1130 )
|
-
-
5 楼
贴一段标准的Md5,不知道对你是否有帮助
标准Md5函数
00679B28 /$ 55 push ebp
00679B29 |. 8BEC mov ebp,esp
00679B2B |. 53 push ebx
00679B2C |. 56 push esi
00679B2D |. 8B5D 08 mov ebx,[arg.1]
00679B30 |. 33D2 xor edx,edx
00679B32 |. 8D43 40 lea eax,dword ptr ds:[ebx+40]
00679B35 |> 8B08 /mov ecx,dword ptr ds:[eax]
00679B37 |. 8948 10 |mov dword ptr ds:[eax+10],ecx
00679B3A |. 42 |inc edx
00679B3B |. 83C0 04 |add eax,4
00679B3E |. 83FA 04 |cmp edx,4
00679B41 |.^ 7C F2 \jl short TempDump.00679B35 ; MD5 4个标准常数
00679B43 |. 33F6 xor esi,esi i:=0 T0 39 (40) ; 0
00679B45 |> 8BC6 /mov eax,esi EAX=i
00679B47 |. 83E0 03 |and eax,3
00679B4A |. 83E8 01 |sub eax,1 EAX:=(i and 3)-1 ; Switch (cases 0..3)
00679B4D |. 72 0A |jb short TempDump.00679B59
00679B4F |. 74 27 |je short TempDump.00679B78
00679B51 |. 48 |dec eax
00679B52 |. 74 43 |je short TempDump.00679B97
00679B54 |. 48 |dec eax
00679B55 |. 74 5F |je short TempDump.00679BB6
00679B57 |. EB 7A |jmp short TempDump.00679BD3
00679B59 |> 56 |push esi i ; /Arg6; Case 0 of switch 00679B4A
00679B5A |. 8B53 5C |mov edx,dword ptr ds:[ebx+5C] d ; |
00679B5D |. 52 |push edx ; |Arg5
00679B5E |. 8B4B 58 |mov ecx,dword ptr ds:[ebx+58] c ; |
00679B61 |. 51 |push ecx ; |Arg4
00679B62 |. 8B43 54 |mov eax,dword ptr ds:[ebx+54] b ; |
00679B65 |. 50 |push eax ; |Arg3
00679B66 |. 8B53 50 |mov edx,dword ptr ds:[ebx+50] a ; |
00679B69 |. 52 |push edx ; |Arg2
00679B6A |. 53 |push ebx ; |Arg1
00679B6B |. E8 48020000 |call TempDump.00679DB8 ; \TempDump.00679DB8
00679B70 |. 83C4 18 |add esp,18
00679B73 |. 8943 50 |mov dword ptr ds:[ebx+50],eax a=XXX
00679B76 |. EB 5B |jmp short TempDump.00679BD3
00679B78 |> 56 |push esi i ; /Arg6; Case 1 of switch 00679B4A
00679B79 |. 8B4B 58 |mov ecx,dword ptr ds:[ebx+58] c ; |
00679B7C |. 51 |push ecx ; |Arg5
00679B7D |. 8B43 54 |mov eax,dword ptr ds:[ebx+54] b ; |
00679B80 |. 50 |push eax ; |Arg4
00679B81 |. 8B53 50 |mov edx,dword ptr ds:[ebx+50] a ; |
00679B84 |. 52 |push edx ; |Arg3
00679B85 |. 8B4B 5C |mov ecx,dword ptr ds:[ebx+5C] d ; |
00679B88 |. 51 |push ecx ; |Arg2
00679B89 |. 53 |push ebx ; |Arg1
00679B8A |. E8 29020000 |call TempDump.00679DB8 ; \TempDump.00679DB8
00679B8F |. 83C4 18 |add esp,18
00679B92 |. 8943 5C |mov dword ptr ds:[ebx+5C],eax d=xxx
00679B95 |. EB 3C |jmp short TempDump.00679BD3
00679B97 |> 56 |push esi i ; /Arg6; Case 2 of switch 00679B4A
00679B98 |. 8B43 54 |mov eax,dword ptr ds:[ebx+54] b ; |
00679B9B |. 50 |push eax ; |Arg5
00679B9C |. 8B53 50 |mov edx,dword ptr ds:[ebx+50] a ; |
00679B9F |. 52 |push edx ; |Arg4
00679BA0 |. 8B4B 5C |mov ecx,dword ptr ds:[ebx+5C] d ; |
00679BA3 |. 51 |push ecx ; |Arg3
00679BA4 |. 8B43 58 |mov eax,dword ptr ds:[ebx+58] c ; |
00679BA7 |. 50 |push eax ; |Arg2
00679BA8 |. 53 |push ebx ; |Arg1
00679BA9 |. E8 0A020000 |call TempDump.00679DB8 ; \TempDump.00679DB8
00679BAE |. 83C4 18 |add esp,18
00679BB1 |. 8943 58 |mov dword ptr ds:[ebx+58],eax c=xxx
00679BB4 |. EB 1D |jmp short TempDump.00679BD3
00679BB6 |> 56 |push esi i ; /Arg6; Case 3 of switch 00679B4A
00679BB7 |. 8B53 50 |mov edx,dword ptr ds:[ebx+50] a ; |
00679BBA |. 52 |push edx ; |Arg5
00679BBB |. 8B4B 5C |mov ecx,dword ptr ds:[ebx+5C] d ; |
00679BBE |. 51 |push ecx ; |Arg4
00679BBF |. 8B43 58 |mov eax,dword ptr ds:[ebx+58] c ; |
00679BC2 |. 50 |push eax ; |Arg3
00679BC3 |. 8B53 54 |mov edx,dword ptr ds:[ebx+54] b ; |
00679BC6 |. 52 |push edx ; |Arg2
00679BC7 |. 53 |push ebx ; |Arg1
00679BC8 |. E8 EB010000 |call TempDump.00679DB8 ; \TempDump.00679DB8
00679BCD |. 83C4 18 |add esp,18
00679BD0 |. 8943 54 |mov dword ptr ds:[ebx+54],eax b=xxx
00679BD3 |> 46 |inc esi ; Default case of switch 00679B4A
00679BD4 |. 83FE 40 |cmp esi,40
00679BD7 |.^ 0F8C 68FFFFFF \jl TempDump.00679B45
00679BDD |. 33D2 xor edx,edx edx=0
00679BDF |. 8D43 50 lea eax,dword ptr ds:[ebx+50] a
00679BE2 |> 8B08 mov ecx,dword ptr ds:[eax]
00679BE4 |. 0148 F0 add dword ptr ds:[eax-10],ecx 初始常数
00679BE7 |. 42 inc edx
00679BE8 |. 83C0 04 add eax,4
00679BEB |. 83FA 04 cmp edx,4
00679BEE |.^ 7C F2 jl short TempDump.00679BE2 Count[i]+a b c d
00679BF0 |. 5E pop esi
00679BF1 |. 5B pop ebx
00679BF2 |. 5D pop ebp
00679BF3 \. C3 retn
00679DB8 /$ 55 push ebp
00679DB9 |. 8BEC mov ebp,esp
00679DBB |. 83C4 F8 add esp,-8
00679DBE |. 53 push ebx
00679DBF |. 56 push esi
00679DC0 |. 8B45 1C mov eax,[arg.6] i
00679DC3 |. 8B4D 08 mov ecx,[arg.1] 待Md5字符串Str
00679DC6 |. 8BD0 mov edx,eax
00679DC8 |. 8BD8 mov ebx,eax
00679DCA |. C1FA 04 sar edx,4 //除16
00679DCD |. 83E3 0F and ebx,0F ebx=0~F
00679DD0 |. 895D FC mov [local.1],ebx //保存起来
00679DD3 |. 8BDA mov ebx,edx
00679DD5 |. 83EB 01 sub ebx,1 //确定执行那一轮变换 0-15 ; Switch (cases 0..3)
00679DD8 |. 72 0A jb short TempDump.00679DE4
00679DDA |. 74 23 je short TempDump.00679DFF
00679DDC |. 4B dec ebx
00679DDD |. 74 42 je short TempDump.00679E21
00679DDF |. 4B dec ebx
00679DE0 |. 74 5E je short TempDump.00679E40
00679DE2 |. EB 7C jmp short TempDump.00679E60 // F(x, y, z: DWORD): DWORD;
00679DE4 |> 8B75 10 mov esi,[arg.3] x ; Case 0 of switch 00679DD5
00679DE7 |. 8B5D 10 mov ebx,[arg.3] x
00679DEA |. F7D6 not esi not x
00679DEC |. 2375 18 and esi,[arg.5] (not x) and z
00679DEF |. 235D 14 and ebx,[arg.4] x and y
00679DF2 |. 0BDE or ebx,esi (x and y) or ((not x) and z)
00679DF4 |. 8B75 FC mov esi,[local.1] 1~16 //FF(Var a: DWORD; b, c, D, x: DWORD; s: byte; ac: DWORD);
00679DF7 |. 031CB1 add ebx,dword ptr ds:[ecx+esi*4] (x and y) or ((not x) and z) + Block[0]
00679DFA |. 015D 0C add [arg.2],ebx FF(var a)+(x and y) or ((not x) and z) + Block[0]
00679DFD |. EB 61 jmp short TempDump.00679E60
// G(x, y, z: DWORD): DWORD;
00679DFF |> 8B75 18 mov esi,[arg.5] z ; Case 1 of switch 00679DD5
00679E02 |. 8B5D 10 mov ebx,[arg.3] x
00679E05 |. F7D6 not esi not z
00679E07 |. 2375 14 and esi,[arg.4] (not z) and y
00679E0A |. 235D 18 and ebx,[arg.5] x and z
00679E0D |. 0BDE or ebx,esi (x and z) or ((not z) and y)
00679E0F |. 8B75 FC mov esi,[local.1]
00679E12 |. 8D34B6 lea esi,dword ptr ds:[esi+esi*4]
00679E15 |. 46 inc esi 5*(i and F) +1
00679E16 |. 83E6 0F and esi,0F
00679E19 |. 031CB1 add ebx,dword ptr ds:[ecx+esi*4] 1 6 11 0 5 10 15 4 9 14...
00679E1C |. 015D 0C add [arg.2],ebx
00679E1F |. EB 3F jmp short TempDump.00679E60 // H(x, y, z: DWORD): DWORD;
00679E21 |> 8B5D FC mov ebx,[local.1] ; Case 2 of switch 00679DD5
00679E24 |. 8D1C5B lea ebx,dword ptr ds:[ebx+ebx*2]
00679E27 |. 83C3 05 add ebx,5 3*(i and F)+5
00679E2A |. 83E3 0F and ebx,0F
00679E2D |. 8B0C99 mov ecx,dword ptr ds:[ecx+ebx*4] 5 8 11 14 1
00679E30 |. 8B5D 10 mov ebx,[arg.3] x
00679E33 |. 335D 14 xor ebx,[arg.4] x xor y
00679E36 |. 335D 18 xor ebx,[arg.5] x xor y xor z
00679E39 |. 03CB add ecx,ebx
00679E3B |. 014D 0C add [arg.2],ecx
00679E3E |. EB 20 jmp short TempDump.00679E60 //I(x, y, z: DWORD): DWORD;
00679E40 |> 8B5D FC mov ebx,[local.1] ; Case 3 of switch 00679DD5
00679E43 |. 8BF3 mov esi,ebx i and F
00679E45 |. C1E3 03 shl ebx,3 8*(i and F)
00679E48 |. 2BDE sub ebx,esi -i=7*(i and F)
00679E4A |. 83E3 0F and ebx,0F
00679E4D |. 8B0C99 mov ecx,dword ptr ds:[ecx+ebx*4] 0 7 14 5 12...
00679E50 |. 8B5D 18 mov ebx,[arg.5] z
00679E53 |. F7D3 not ebx not z
00679E55 |. 0B5D 10 or ebx,[arg.3] (not z) or x
00679E58 |. 335D 14 xor ebx,[arg.4] ((not z) or x) xor y
00679E5B |. 03CB add ecx,ebx
00679E5D |. 014D 0C add [arg.2],ecx
00679E60 |> 8BC8 mov ecx,eax ; Default case of switch 00679DD5
00679E62 |. 8D1495 D8656800 lea edx,dword ptr ds:[edx*4+6865D8]
00679E69 |. 83E1 03 and ecx,3
00679E6C |. 8B0485 D8646800 mov eax,dword ptr ds:[eax*4+6864D8]
00679E73 |. 0345 0C add eax,[arg.2] //加上常数
00679E76 |. 33DB xor ebx,ebx 0
00679E78 |. 8A1C0A mov bl,byte ptr ds:[edx+ecx] //循环N
00679E7B |. 8945 F8 mov [local.2],eax EAX=x x := (x Shl N) Or (x Shr (32 - N));
00679E7E |. 8B55 F8 mov edx,[local.2] x
00679E81 |. 8BCB mov ecx,ebx n
00679E83 |. D3E2 shl edx,cl x shl n
00679E85 |. B9 20000000 mov ecx,20
00679E8A |. 8B45 F8 mov eax,[local.2] x
00679E8D |. 2BCB sub ecx,ebx 20-n
00679E8F |. D3E8 shr eax,cl x shr (20-n)
00679E91 |. 0BD0 or edx,eax (x shl n) or (x shr (20-n))
00679E93 |. 0355 10 add edx,[arg.3]
00679E96 |. 8BC2 mov eax,edx
00679E98 |. 5E pop esi
00679E99 |. 5B pop ebx
00679E9A |. 59 pop ecx
00679E9B |. 59 pop ecx
00679E9C |. 5D pop ebp
00679E9D \. C3 retn
|
能力值:
( LV4,RANK:50 )
|
-
-
8 楼
那我贴多点吧,贴前16轮的,够多了吧
.text:00401881 mov edx, [ebp+var_C]
.text:00401884 mov esi, [eax]
.text:00401886 xor edx, edi
.text:00401888 mov ecx, eax
.text:0040188A and edx, ebx
.text:0040188C add eax, 4
.text:0040188F xor edx, [ebp+var_C]
.text:00401892 mov [ebp+var_58], eax
.text:00401895 add edx, [ebp+var_10]
.text:00401898 lea esi, [edx+esi-28955B88h]
.text:0040189F mov edx, esi
.text:004018A1 shr edx, 19h
.text:004018A4 shl esi, 7
.text:004018A7 or edx, esi
.text:004018A9 mov esi, edi
.text:004018AB add edx, ebx
.text:004018AD xor esi, ebx
.text:004018AF and esi, edx
.text:004018B1 xor esi, edi
.text:004018B3 mov edi, [eax]
.text:004018B5 add esi, [ebp+var_C]
.text:004018B8 add eax, 4
.text:004018BB lea edi, [esi+edi-173848AAh]
.text:004018C2 mov esi, edi
.text:004018C4 shr esi, 14h
.text:004018C7 shl edi, 0Ch
.text:004018CA or esi, edi
.text:004018CC mov edi, edx
.text:004018CE xor edi, ebx
.text:004018D0 add esi, edx
.text:004018D2 and edi, esi
.text:004018D4 xor edi, ebx
.text:004018D6 mov ebx, [eax]
.text:004018D8 add edi, [ebp+var_38]
.text:004018DB add eax, 4
.text:004018DE lea edi, [edi+ebx+242070DBh]
.text:004018E5 mov ebx, edi
.text:004018E7 shr ebx, 0Fh
.text:004018EA shl edi, 11h
.text:004018ED or ebx, edi
.text:004018EF mov edi, esi
.text:004018F1 add ebx, esi
.text:004018F3 xor edi, edx
.text:004018F5 and edi, ebx
.text:004018F7 mov [ebp+var_8], ebx
.text:004018FA mov ebx, [eax]
.text:004018FC xor edi, edx
.text:004018FE add edi, [ebp+var_34]
.text:00401901 add eax, 4
.text:00401904 lea edi, [edi+ebx-3E423112h]
.text:0040190B mov ebx, edi
.text:0040190D shl ebx, 16h
.text:00401910 shr edi, 0Ah
.text:00401913 or ebx, edi
.text:00401915 mov edi, esi
.text:00401917 add ebx, [ebp+var_8]
.text:0040191A xor edi, [ebp+var_8]
.text:0040191D and edi, ebx
.text:0040191F mov [ebp+arg_4], ebx
.text:00401922 xor edi, esi
.text:00401924 add edi, [eax]
.text:00401926 add eax, 4
.text:00401929 lea edx, [edx+edi-0A83F051h]
.text:00401930 mov edi, edx
.text:00401932 shr edi, 19h
.text:00401935 shl edx, 7
.text:00401938 or edi, edx
.text:0040193A mov edx, [ebp+var_8]
.text:0040193D add edi, ebx
.text:0040193F xor edx, ebx
.text:00401941 and edx, edi
.text:00401943 xor edx, [ebp+var_8]
.text:00401946 add edx, [eax]
.text:00401948 add eax, 4
.text:0040194B lea esi, [esi+edx+4787C62Ah]
.text:00401952 mov edx, esi
.text:00401954 shr edx, 14h
.text:00401957 shl esi, 0Ch
.text:0040195A or edx, esi
.text:0040195C mov esi, ebx
.text:0040195E add edx, edi
.text:00401960 xor esi, edi
.text:00401962 and esi, edx
.text:00401964 xor esi, ebx
.text:00401966 mov ebx, [ebp+var_8]
.text:00401969 add esi, [eax]
.text:0040196B add eax, 4
.text:0040196E lea esi, [ebx+esi-57CFB9EDh]
.text:00401975 mov ebx, esi
.text:00401977 shr ebx, 0Fh
.text:0040197A shl esi, 11h
.text:0040197D or ebx, esi
.text:0040197F mov esi, edx
.text:00401981 add ebx, edx
.text:00401983 xor esi, edi
.text:00401985 and esi, ebx
.text:00401987 mov [ebp+var_8], ebx
.text:0040198A mov ebx, [ebp+arg_4]
.text:0040198D xor esi, edi
.text:0040198F add esi, [eax]
.text:00401991 add eax, 4
.text:00401994 lea esi, [ebx+esi-2B96AFFh]
.text:0040199B mov ebx, esi
.text:0040199D shl ebx, 16h
.text:004019A0 shr esi, 0Ah
.text:004019A3 or ebx, esi
.text:004019A5 mov esi, edx
.text:004019A7 add ebx, [ebp+var_8]
.text:004019AA xor esi, [ebp+var_8]
.text:004019AD and esi, ebx
.text:004019AF mov [ebp+arg_4], ebx
.text:004019B2 xor esi, edx
.text:004019B4 add esi, [eax]
.text:004019B6 add eax, 4
.text:004019B9 lea edi, [edi+esi+698098D8h]
.text:004019C0 mov esi, edi
.text:004019C2 shr esi, 19h
.text:004019C5 shl edi, 7
.text:004019C8 or esi, edi
.text:004019CA mov edi, [ebp+var_8]
.text:004019CD add esi, ebx
.text:004019CF xor edi, ebx
.text:004019D1 and edi, esi
.text:004019D3 xor edi, [ebp+var_8]
.text:004019D6 add edi, [eax]
.text:004019D8 add eax, 4
.text:004019DB lea edx, [edx+edi-74BB0851h]
.text:004019E2 mov edi, edx
.text:004019E4 shr edi, 14h
.text:004019E7 shl edx, 0Ch
.text:004019EA or edi, edx
.text:004019EC mov edx, ebx
.text:004019EE add edi, esi
.text:004019F0 xor edx, esi
.text:004019F2 and edx, edi
.text:004019F4 xor edx, ebx
.text:004019F6 mov ebx, [ebp+var_8]
.text:004019F9 add edx, [eax]
.text:004019FB add eax, 4
.text:004019FE lea edx, [ebx+edx-0A44Fh]
.text:00401A05 mov ebx, edx
.text:00401A07 shr ebx, 0Fh
.text:00401A0A shl edx, 11h
.text:00401A0D or ebx, edx
.text:00401A0F mov edx, edi
.text:00401A11 add ebx, edi
.text:00401A13 xor edx, esi
.text:00401A15 and edx, ebx
.text:00401A17 mov [ebp+var_8], ebx
.text:00401A1A mov ebx, [ebp+arg_4]
.text:00401A1D xor edx, esi
.text:00401A1F add edx, [eax]
.text:00401A21 add eax, 4
.text:00401A24 lea edx, [ebx+edx-76A32842h]
.text:00401A2B mov ebx, edx
.text:00401A2D shl ebx, 16h
.text:00401A30 shr edx, 0Ah
.text:00401A33 or ebx, edx
.text:00401A35 mov edx, edi
.text:00401A37 add ebx, [ebp+var_8]
.text:00401A3A xor edx, [ebp+var_8]
.text:00401A3D mov [ebp+arg_4], ebx
.text:00401A40 and edx, ebx
.text:00401A42 xor edx, edi
.text:00401A44 add edx, [eax]
.text:00401A46 add eax, 4
.text:00401A49 lea esi, [esi+edx+6B901122h]
.text:00401A50 mov edx, esi
.text:00401A52 shr edx, 19h
.text:00401A55 shl esi, 7
.text:00401A58 or edx, esi
.text:00401A5A mov esi, [ebp+var_8]
.text:00401A5D add edx, ebx
.text:00401A5F xor esi, ebx
.text:00401A61 and esi, edx
.text:00401A63 xor esi, [ebp+var_8]
.text:00401A66 add esi, [eax]
.text:00401A68 add eax, 4
.text:00401A6B lea edi, [edi+esi-2678E6Dh]
.text:00401A72 mov esi, [ebp+arg_4]
.text:00401A75 mov ebx, edi
.text:00401A77 xor esi, edx
.text:00401A79 shr ebx, 14h
.text:00401A7C shl edi, 0Ch
.text:00401A7F or ebx, edi
.text:00401A81 mov edi, [ebp+var_8]
.text:00401A84 add ebx, edx
.text:00401A86 and esi, ebx
.text:00401A88 mov [ebp+var_4], ebx
.text:00401A8B xor esi, [ebp+arg_4]
.text:00401A8E add esi, [eax]
.text:00401A90 add eax, 4
.text:00401A93 lea edi, [edi+esi-5986BC72h]
.text:00401A9A mov esi, edi
.text:00401A9C shr esi, 0Fh
.text:00401A9F shl edi, 11h
.text:00401AA2 or esi, edi
.text:00401AA4 mov edi, [ebp+arg_4]
.text:00401AA7 add esi, ebx
.text:00401AA9 xor ebx, edx
.text:00401AAB and ebx, esi
.text:00401AAD xor ebx, edx
.text:00401AAF add ebx, [eax]
.text:00401AB1 add eax, 4
.text:00401AB4 lea edi, [edi+ebx+49B40821h]
.text:00401ABB mov ebx, edi
.text:00401ABD shl ebx, 16h
.text:00401AC0 shr edi, 0Ah
.text:00401AC3 or ebx, edi
.text:00401AC5 mov edi, [ebp+var_58]
.text:00401AC8 add ebx, esi
|