Md5也能这样玩?这个仅仅是算法的一部分,我看不是标准的MD5,动态修改Md5的4个常数?请路过的高人指点一下模型,先谢了。
006650D8 /$ 55 push ebp
006650D9 |. 8BEC mov ebp,esp
006650DB |. 53 push ebx
006650DC |. 56 push esi
006650DD |. 8B5D 08 mov ebx,[arg.1]
006650E0 |. 33D2 xor edx,edx
006650E2 |. 8D43 44 lea eax,dword ptr ds:[ebx+44]
006650E5 |> 8B08 /mov ecx,dword ptr ds:[eax]
006650E7 |. 8948 10 |mov dword ptr ds:[eax+10],ecx
006650EA |. 42 |inc edx
006650EB |. 83C0 04 |add eax,4
006650EE |. 83FA 04 |cmp edx,4
006650F1 |.^ 7C F2 \jl short Temp.006650E5 ; MD5的4个常数
006650F3 |. 33F6 xor esi,esi ; i=0
006650F5 |> 8BC6 /mov eax,esi
006650F7 |. 83E0 03 |and eax,3
006650FA |. 83E8 01 |sub eax,1 ; Switch (cases 0..3)
006650FD |. 72 0A |jb short Temp.00665109
006650FF |. 74 27 |je short Temp.00665128
00665101 |. 48 |dec eax
00665102 |. 74 43 |je short Temp.00665147
00665104 |. 48 |dec eax
00665105 |. 74 5F |je short Temp.00665166
00665107 |. EB 7A |jmp short Temp.00665183
00665109 |> 56 |push esi ; /Arg6; Case 0 of switch 006650FA
0066510A |. 8B53 60 |mov edx,dword ptr ds:[ebx+60] ; |
0066510D |. 52 |push edx ; |Arg5
0066510E |. 8B4B 5C |mov ecx,dword ptr ds:[ebx+5C] ; |
00665111 |. 51 |push ecx ; |Arg4
00665112 |. 8B43 58 |mov eax,dword ptr ds:[ebx+58] ; |
00665115 |. 50 |push eax ; |Arg3
00665116 |. 8B53 54 |mov edx,dword ptr ds:[ebx+54] ; |
00665119 |. 52 |push edx ; |Arg2
0066511A |. 53 |push ebx ; |Arg1
0066511B |. E8 84000000 |call Temp.006651A4 ; \Temp.006651A4
00665120 |. 83C4 18 |add esp,18
00665123 |. 8943 54 |mov dword ptr ds:[ebx+54],eax
00665126 |. EB 5B |jmp short Temp.00665183
00665128 |> 56 |push esi ; /Arg6; Case 1 of switch 006650FA
00665129 |. 8B4B 5C |mov ecx,dword ptr ds:[ebx+5C] ; |
0066512C |. 51 |push ecx ; |Arg5
0066512D |. 8B43 58 |mov eax,dword ptr ds:[ebx+58] ; |
00665130 |. 50 |push eax ; |Arg4
00665131 |. 8B53 54 |mov edx,dword ptr ds:[ebx+54] ; |
00665134 |. 52 |push edx ; |Arg3
00665135 |. 8B4B 60 |mov ecx,dword ptr ds:[ebx+60] ; |
00665138 |. 51 |push ecx ; |Arg2
00665139 |. 53 |push ebx ; |Arg1
0066513A |. E8 65000000 |call Temp.006651A4 ; \Temp.006651A4
0066513F |. 83C4 18 |add esp,18
00665142 |. 8943 60 |mov dword ptr ds:[ebx+60],eax
00665145 |. EB 3C |jmp short Temp.00665183
00665147 |> 56 |push esi ; /Arg6; Case 2 of switch 006650FA
00665148 |. 8B43 58 |mov eax,dword ptr ds:[ebx+58] ; |
0066514B |. 50 |push eax ; |Arg5
0066514C |. 8B53 54 |mov edx,dword ptr ds:[ebx+54] ; |
0066514F |. 52 |push edx ; |Arg4
00665150 |. 8B4B 60 |mov ecx,dword ptr ds:[ebx+60] ; |
00665153 |. 51 |push ecx ; |Arg3
00665154 |. 8B43 5C |mov eax,dword ptr ds:[ebx+5C] ; |
00665157 |. 50 |push eax ; |Arg2
00665158 |. 53 |push ebx ; |Arg1
00665159 |. E8 46000000 |call Temp.006651A4 ; \Temp.006651A4
0066515E |. 83C4 18 |add esp,18
00665161 |. 8943 5C |mov dword ptr ds:[ebx+5C],eax
00665164 |. EB 1D |jmp short Temp.00665183
00665166 |> 56 |push esi ; /Arg6; Case 3 of switch 006650FA
00665167 |. 8B53 54 |mov edx,dword ptr ds:[ebx+54] ; |
0066516A |. 52 |push edx ; |Arg5
0066516B |. 8B4B 60 |mov ecx,dword ptr ds:[ebx+60] ; |
0066516E |. 51 |push ecx ; |Arg4
0066516F |. 8B43 5C |mov eax,dword ptr ds:[ebx+5C] ; |
00665172 |. 50 |push eax ; |Arg3
00665173 |. 8B53 58 |mov edx,dword ptr ds:[ebx+58] ; |
00665176 |. 52 |push edx ; |Arg2
00665177 |. 53 |push ebx ; |Arg1
00665178 |. E8 27000000 |call Temp.006651A4 ; \Temp.006651A4
0066517D |. 83C4 18 |add esp,18
00665180 |. 8943 58 |mov dword ptr ds:[ebx+58],eax
00665183 |> 46 |inc esi ; Default case of switch 006650FA
00665184 |. 83FE 40 |cmp esi,40
00665187 |.^ 0F8C 68FFFFF>\jl Temp.006650F5
0066518D |. 33D2 xor edx,edx
0066518F |. 8D43 54 lea eax,dword ptr ds:[ebx+54]
00665192 |> 8B08 mov ecx,dword ptr ds:[eax]
00665194 |. 0148 F0 add dword ptr ds:[eax-10],ecx
00665197 |. 42 inc edx
00665198 |. 83C0 04 add eax,4
0066519B |. 83FA 04 cmp edx,4
0066519E |.^ 7C F2 jl short Temp.00665192
006651A0 |. 5E pop esi
006651A1 |. 5B pop ebx
006651A2 |. 5D pop ebp
006651A3 \. C3 retn
006651A4 /$ 55 push ebp
006651A5 |. 8BEC mov ebp,esp
006651A7 |. 51 push ecx
006651A8 |. 53 push ebx
006651A9 |. 56 push esi
006651AA |. 8B45 1C mov eax,[arg.6]
006651AD |. 8B5D 18 mov ebx,[arg.5]
006651B0 |. 8B4D 08 mov ecx,[arg.1]
006651B3 |. 8BD0 mov edx,eax
006651B5 |. C1FA 04 sar edx,4
006651B8 |. 8BF2 mov esi,edx
006651BA |. 83EE 01 sub esi,1 ; Switch (cases 0..3)
006651BD |. 72 0A jb short Temp.006651C9
006651BF |. 74 27 je short Temp.006651E8
006651C1 |. 4E dec esi
006651C2 |. 74 44 je short Temp.00665208
006651C4 |. 4E dec esi
006651C5 |. 74 5B je short Temp.00665222
006651C7 |. EB 7A jmp short Temp.00665243
006651C9 |> 8BF0 mov esi,eax ; Case 0 of switch 006651BA
006651CB |. 83E6 0F and esi,0F
006651CE |. 8B4CB1 04 mov ecx,dword ptr ds:[ecx+esi*4+4]
006651D2 |. 8B75 10 mov esi,[arg.3]
006651D5 |. F7D6 not esi
006651D7 |. 23DE and ebx,esi
006651D9 |. 03CB add ecx,ebx
006651DB |. 8B5D 10 mov ebx,[arg.3]
006651DE |. 235D 14 and ebx,[arg.4]
006651E1 |. 0BCB or ecx,ebx
006651E3 |. 014D 0C add [arg.2],ecx
006651E6 |. EB 5B jmp short Temp.00665243
006651E8 |> 8D3480 lea esi,dword ptr ds:[eax+eax*4] ; Case 1 of switch 006651BA
006651EB |. 83C6 B1 add esi,-4F
006651EE |. 83E6 0F and esi,0F
006651F1 |. 8B4CB1 04 mov ecx,dword ptr ds:[ecx+esi*4+4]
006651F5 |. 8BF3 mov esi,ebx
006651F7 |. F7D6 not esi
006651F9 |. 2375 14 and esi,[arg.4]
006651FC |. 235D 10 and ebx,[arg.3]
006651FF |. 03CE add ecx,esi
00665201 |. 0BCB or ecx,ebx
00665203 |. 014D 0C add [arg.2],ecx
00665206 |. EB 3B jmp short Temp.00665243
00665208 |> 8D3440 lea esi,dword ptr ds:[eax+eax*2] ; Case 2 of switch 006651BA
0066520B |. 83C6 A5 add esi,-5B
0066520E |. 83E6 0F and esi,0F
00665211 |. 035CB1 04 add ebx,dword ptr ds:[ecx+esi*4+4]
00665215 |. 8B4D 10 mov ecx,[arg.3]
00665218 |. 334D 14 xor ecx,[arg.4]
0066521B |. 33D9 xor ebx,ecx
0066521D |. 015D 0C add [arg.2],ebx
00665220 |. EB 21 jmp short Temp.00665243
00665222 |> 8BF0 mov esi,eax ; Case 3 of switch 006651BA
00665224 |. C1E6 03 shl esi,3
00665227 |. 2BF0 sub esi,eax
00665229 |. 81C6 B0FEFFF>add esi,-150
0066522F |. 83E6 0F and esi,0F
00665232 |. F7D3 not ebx
00665234 |. 235D 10 and ebx,[arg.3]
00665237 |. 8B4CB1 04 mov ecx,dword ptr ds:[ecx+esi*4+4]
0066523B |. 03CB add ecx,ebx
0066523D |. 334D 14 xor ecx,[arg.4]
00665240 |. 014D 0C add [arg.2],ecx
00665243 |> 8D1490 lea edx,dword ptr ds:[eax+edx*4] ; Default case of switch 006651BA
00665246 |. 8B0485 8CE56>mov eax,dword ptr ds:[eax*4+67E58C]
0066524D |. 83E2 03 and edx,3
00665250 |. 33DB xor ebx,ebx
00665252 |. 0345 0C add eax,[arg.2]
00665255 |. 8A9A 8CE6670>mov bl,byte ptr ds:[edx+67E68C]
0066525B |. 8945 FC mov [local.1],eax
0066525E |. 8BCB mov ecx,ebx
00665260 |. 8B55 FC mov edx,[local.1]
00665263 |. 8B45 FC mov eax,[local.1]
00665266 |. D3E2 shl edx,cl
00665268 |. B9 20000000 mov ecx,20
0066526D |. 2BCB sub ecx,ebx
0066526F |. D3E8 shr eax,cl
00665271 |. 0BD0 or edx,eax
00665273 |. 0355 10 add edx,[arg.3]
00665276 |. 8BC2 mov eax,edx
00665278 |. 5E pop esi
00665279 |. 5B pop ebx
0066527A |. 59 pop ecx
0066527B |. 5D pop ebp
0066527C \. C3 retn
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!