ALFEIOEK1432264088对应411228b8499345ec64683394323a42c3820
ALFEIOEK1432210537对应411228b8499345ec64683394322eec103313
ALFEIOEK1432210126对应411228b8499345ec64683394322eec183258
这肯定不是MD5 不然 出来的密文不能这么规则啊。
然后 od看到的算法代码是这样的
004043EA . 8D8D C4020000 lea ecx,dword ptr ss:[ebp+0x2C4]
004043F0 . 51 push ecx //把返回的密文的地址压栈
004043F1 . 8D95 6C0F0000 lea edx,dword ptr ss:[ebp+0xF6C]
004043F7 . 52 push edx //把明文压榨
004043F8 . E8 13F0FFFF call Arecover.00403410 //call 加密算法
*************************下面是加密算法*********************************
00403410 /$ 83EC 0C sub esp,0xC
00403413 |. 55 push ebp
00403414 |. 8B6C24 14 mov ebp,dword ptr ss:[esp+0x14]
00403418 |. 56 push esi
00403419 |. 57 push edi
0040341A |. 33FF xor edi,edi
0040341C |. 897C24 0C mov dword ptr ss:[esp+0xC],edi
00403420 |. 897C24 1C mov dword ptr ss:[esp+0x1C],edi
00403424 |. 3BEF cmp ebp,edi
00403426 |. 0F84 6E010000 je Arecover.0040359A
0040342C |. 8B7424 20 mov esi,dword ptr ss:[esp+0x20]
00403430 |. 3BF7 cmp esi,edi
00403432 |. 0F84 62010000 je Arecover.0040359A
00403438 |. 8BC5 mov eax,ebp
0040343A |. 8D50 01 lea edx,dword ptr ds:[eax+0x1]
0040343D |. 8D49 00 lea ecx,dword ptr ds:[ecx]
00403440 |> 8A08 /mov cl,byte ptr ds:[eax]
00403442 |. 40 |inc eax
00403443 |. 84C9 |test cl,cl
00403445 |.^ 75 F9 \jnz XArecover.00403440
00403447 |. 2BC2 sub eax,edx
00403449 |. 40 inc eax
0040344A |. 83F8 64 cmp eax,0x64
0040344D |. 0F87 47010000 ja Arecover.0040359A
00403453 |. 8BC5 mov eax,ebp
00403455 |. 8D50 01 lea edx,dword ptr ds:[eax+0x1]
00403458 |> 8A08 /mov cl,byte ptr ds:[eax]
0040345A |. 40 |inc eax
0040345B |. 84C9 |test cl,cl
0040345D |.^ 75 F9 \jnz XArecover.00403458
0040345F |. 53 push ebx
00403460 |. 6A 64 push 0x64
00403462 |. 2BC2 sub eax,edx
00403464 |. 8BD8 mov ebx,eax
00403466 |. 57 push edi
00403467 |. 56 push esi
00403468 |. 895C24 20 mov dword ptr ss:[esp+0x20],ebx
0040346C |. E8 5F190200 call Arecover.00424DD0
00403471 |. 83C4 0C add esp,0xC
00403474 |. 3BDF cmp ebx,edi
00403476 |. 0F8E 00010000 jle Arecover.0040357C
0040347C |. 83C8 FF or eax,0xFFFFFFFF
0040347F |. 2BC5 sub eax,ebp
00403481 |. 894424 18 mov dword ptr ss:[esp+0x18],eax
**************************这里是核心循环算法*******************************
00403485 |> 8A142F /mov dl,byte ptr ds:[edi+ebp]
00403488 |. 8D342F |lea esi,dword ptr ds:[edi+ebp]
0040348B |. 0FB6C2 |movzx eax,dl
0040348E |. 014424 20 |add dword ptr ss:[esp+0x20],eax
00403492 |. 8BCF |mov ecx,edi
00403494 |. 81E1 01000080 |and ecx,0x80000001
0040349A |. 79 05 |jns XArecover.004034A1
0040349C |. 49 |dec ecx
0040349D |. 83C9 FE |or ecx,0xFFFFFFFE
004034A0 |. 41 |inc ecx
004034A1 |> 83F9 01 |cmp ecx,0x1
004034A4 |. 75 38 |jnz XArecover.004034DE
004034A6 |. 8A4C2F FF |mov cl,byte ptr ds:[edi+ebp-0x1]
004034AA |. 8AC1 |mov al,cl
004034AC |. B3 03 |mov bl,0x3
004034AE |. F6EB |imul bl
004034B0 |. 0206 |add al,byte ptr ds:[esi]
004034B2 |. 34 0E |xor al,0xE
004034B4 |. F6EA |imul dl
004034B6 |. 8AD8 |mov bl,al
004034B8 |. 8B4424 20 |mov eax,dword ptr ss:[esp+0x20]
004034BC |. 99 |cdq
004034BD |. 2BC2 |sub eax,edx
004034BF |. D1F8 |sar eax,1
004034C1 |. 02C3 |add al,bl
004034C3 |. F6E9 |imul cl
004034C5 |. 0FBED0 |movsx edx,al
004034C8 |. 81E2 FF000080 |and edx,0x800000FF
004034CE |. 79 08 |jns XArecover.004034D8
004034D0 |. 4A |dec edx
004034D1 |. 81CA 00FFFFFF |or edx,0xFFFFFF00
004034D7 |. 42 |inc edx
004034D8 |> 8B5C24 14 |mov ebx,dword ptr ss:[esp+0x14]
004034DC |. 8816 |mov byte ptr ds:[esi],dl
004034DE |> B8 56555555 |mov eax,0x55555556
004034E3 |. F7EF |imul edi
004034E5 |. 8BC2 |mov eax,edx
004034E7 |. C1E8 1F |shr eax,0x1F
004034EA |. 03C2 |add eax,edx
004034EC |. 8D0440 |lea eax,dword ptr ds:[eax+eax*2]
004034EF |. 8BD7 |mov edx,edi
004034F1 |. 2BD0 |sub edx,eax
004034F3 |. 83FA 02 |cmp edx,0x2
004034F6 |. 75 10 |jnz XArecover.00403508
004034F8 |. 8A06 |mov al,byte ptr ds:[esi]
004034FA |. 8A4C2F FF |mov cl,byte ptr ds:[edi+ebp-0x1]
004034FE |. 02C1 |add al,cl
00403500 |. 04 0D |add al,0xD
00403502 |. 34 11 |xor al,0x11
00403504 |. F6E9 |imul cl
00403506 |. 8806 |mov byte ptr ds:[esi],al
00403508 |> 83FA 03 |cmp edx,0x3
0040350B |. 75 1D |jnz XArecover.0040352A
0040350D |. 0FBE4C2F FF |movsx ecx,byte ptr ds:[edi+ebp-0x1]
00403512 |. B8 56555555 |mov eax,0x55555556
00403517 |. F7E9 |imul ecx
00403519 |. 8BCA |mov ecx,edx
0040351B |. C1E9 1F |shr ecx,0x1F
0040351E |. 03CA |add ecx,edx
00403520 |. 8BC1 |mov eax,ecx
00403522 |. 0206 |add al,byte ptr ds:[esi]
00403524 |. 34 13 |xor al,0x13
00403526 |. F6E8 |imul al
00403528 |. 8806 |mov byte ptr ds:[esi],al
0040352A |> 85FF |test edi,edi
0040352C |. 7E 20 |jle XArecover.0040354E
0040352E |. 8B5424 18 |mov edx,dword ptr ss:[esp+0x18]
00403532 |. 03D6 |add edx,esi
00403534 |. 3BFA |cmp edi,edx
00403536 |. 7D 16 |jge XArecover.0040354E
00403538 |. 8B4424 20 |mov eax,dword ptr ss:[esp+0x20]
0040353C |. 25 FF000080 |and eax,0x800000FF
00403541 |. 79 07 |jns XArecover.0040354A
00403543 |. 48 |dec eax
00403544 |. 0D 00FFFFFF |or eax,0xFFFFFF00
00403549 |. 40 |inc eax
0040354A |> 34 AB |xor al,0xAB
0040354C |. 8806 |mov byte ptr ds:[esi],al
0040354E |> 8B4424 10 |mov eax,dword ptr ss:[esp+0x10]
00403552 |. 83F8 64 |cmp eax,0x64
00403555 |. 73 32 |jnb XArecover.00403589
00403557 |. 0FB60E |movzx ecx,byte ptr ds:[esi]
0040355A |. 8B5424 24 |mov edx,dword ptr ss:[esp+0x24]
0040355E |. 51 |push ecx
0040355F |. 03C2 |add eax,edx
00403561 |. 68 D4FE4300 |push Arecover.0043FED4 ; ASCII "%x"
00403566 |. 50 |push eax
00403567 |. E8 A4040200 |call Arecover.00423A10
0040356C |. 014424 1C |add dword ptr ss:[esp+0x1C],eax
00403570 |. 47 |inc edi
00403571 |. 83C4 0C |add esp,0xC
00403574 |. 3BFB |cmp edi,ebx
00403576 |.^ 0F8C 09FFFFFF \jl Arecover.00403485
0040357C |> 5B pop ebx
0040357D |. 5F pop edi
0040357E |. 5E pop esi
0040357F |. B8 01000000 mov eax,0x1
00403584 |. 5D pop ebp
00403585 |. 83C4 0C add esp,0xC
00403588 |. C3 retn
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!