飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3811|回复: 2

[原创] 算法专题快来了,加紧学习------>找了个MD5 CM分析了一下

  [复制链接]
  • TA的每日心情

    2016-12-29 21:52
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2015-6-6 19:04:37 | 显示全部楼层 |阅读模式
    本帖最后由 wangwei1978 于 2015-6-6 19:04 编辑

            
    1. .text:00401A94                 push    12Ch            ; cchMax
    2. .text:00401A99                 push    offset String1  ; lpString
    3. .text:00401A9E                 push    64h             ; nIDDlgItem
    4. .text:00401AA0                 push    [ebp+hWnd]      ; hDlg
    5. .text:00401AA3                 call    GetDlgItemTextA ; 这个CM只判断是否有输入
    6. .text:00401AA8                 or      eax, eax        ; 判断用户名是否为空
    7. .text:00401AAA                 jnz     short loc_401AC5 ; 注意这个PUSH eax,eax保存在是用户名的长度
    8. .text:00401AAC                 push    0               ; uType
    9. .text:00401AAE                 push    offset aOoohInputError ; "oooH input Error"
    10. .text:00401AB3                 push    offset aYourNamePlease ; "Your name please !!!"
    11. .text:00401AB8                 push    0               ; hWnd
    12. .text:00401ABA                 call    MessageBoxA
    13. .text:00401ABF                 leave
    14. .text:00401AC0                 retn    10h
    15. .text:00401AC3 ; ---------------------------------------------------------------------------
    16. .text:00401AC3                 jmp     short loc_401AF8
    17. .text:00401AC5 ; ---------------------------------------------------------------------------
    18. .text:00401AC5
    19. .text:00401AC5 loc_401AC5:                             ; CODE XREF: DialogFunc+9Bj
    20. .text:00401AC5                 push    eax             ; 注意这个PUSH eax,eax保存在是用户名的长度
    21. .text:00401AC6                 push    12Ch            ; cchMax
    22. .text:00401ACB                 push    offset byte_409CF8 ; lpString
    23. .text:00401AD0                 push    0C8h            ; nIDDlgItem
    24. .text:00401AD5                 push    [ebp+hWnd]      ; hDlg
    25. .text:00401AD8                 call    GetDlgItemTextA ; 判断注册是否为空
    26. .text:00401ADD                 or      eax, eax
    27. .text:00401ADF                 jnz     short loc_401AF8
    28. .text:00401AE1                 push    0               ; uType
    29. .text:00401AE3                 push    offset aOoohInputError ; "oooH input Error"
    30. .text:00401AE8                 push    offset aWhereIsDaSeria ; "Where is Da serial DuDe ?"
    31. .text:00401AED                 push    0               ; hWnd
    32. .text:00401AEF                 call    MessageBoxA
    33. .text:00401AF4                 leave
    34. .text:00401AF5                 retn    10h
    35. .text:00401AF8 ; ---------------------------------------------------------------------------
    36. .text:00401AF8
    37. .text:00401AF8 loc_401AF8:                             ; CODE XREF: DialogFunc+B4j
    38. .text:00401AF8                                         ; DialogFunc+D0j
    39. .text:00401AF8                 push    offset String2  ; "BytePtr [e!]"
    40. .text:00401AFD                 push    offset String1  ; lpString1
    41. .text:00401B02                 call    lstrcatA        ; 用户名与上面字符拼接起来
    42. .text:00401B07                 pop     eax             ; 记得上面PUSH eax现在又POP eax,
    43. .text:00401B08                 push    offset dword_4056A8 ; unk_4056A8 是个缓存区
    44. .text:00401B0D                 push    eax             ; eax 是用户名长度
    45. .text:00401B0E                 push    offset String1  ; 指向拼接后的字串
    46. .text:00401B13                 call    sub_401000      ; MD5函数
    47. .text:00401B18                 call    sub_401B79      ; 格式MD5算出的字串
    48. .text:00401B1D                 push    offset byte_4079D0 ; lpString2
    49. .text:00401B22                 push    offset byte_409CF8 ; lpString1
    50. .text:00401B27                 call    lstrcmpA        ; 与假码比较
    51. .text:00401B2C                 test    eax, eax
    52. .text:00401B2E                 jnz     short loc_401B45
    53. .text:00401B30                 push    0               ; uType
    54. .text:00401B32                 push    offset aGoodWork ; "Good Work"
    55. .text:00401B37                 push    offset aGoodSerialNowS ; "Good serial, Now send your Tut & KeyGen"...
    56. .text:00401B3C                 push    0               ; hWnd
    57. .text:00401B3E                 call    MessageBoxA
    58. .text:00401B43                 jmp     short loc_401B73
    59. .text:00401B45 ; ---------------------------------------------------------------------------
    60. .text:00401B45
    61. .text:00401B45 loc_401B45:                             ; CODE XREF: DialogFunc+11Fj
    62. .text:00401B45                 push    0               ; uType
    63. .text:00401B47                 push    offset aFatalError ; "Fatal Error"
    64. .text:00401B4C                 push    offset aHmmmNotLikeThi ; "hmmm not like this  DuDe Try again...."
    65. .text:00401B51                 push    0               ; hWnd
    66. .text:00401B53                 call    MessageBoxA
    67. .text:00401B58                 xor     eax, eax
    68. .text:00401B5A                 leave
    69. .text:00401B5B                 retn    10h
    复制代码
             看看00401000代码,看汇编挺累 F5吧!
    1. void __stdcall __spoils<ecx> sub_401000(int a1, unsigned int a2, int a3)
    2. {
    3.   void *v3; // edi@1
    4.   unsigned int v4; // edx@1
    5.   int v5; // edi@3
    6.   unsigned int v6; // eax@3
    7.   signed __int64 v7; // rax@3
    8.   int v8; // edx@3
    9.   int v9; // edi@3
    10.   int v10; // esi@3
    11.   int v11; // ST20_4@4
    12.   int v12; // ST1C_4@4
    13.   int v13; // ST18_4@4
    14.   int v14; // eax@4
    15.   int v15; // ST24_4@4
    16.   int v16; // eax@4
    17.   int v17; // ST18_4@4
    18.   int v18; // eax@4
    19.   int v19; // ST1C_4@4
    20.   int v20; // eax@4
    21.   int v21; // ST20_4@4
    22.   int v22; // eax@4
    23.   int v23; // ST24_4@4
    24.   int v24; // eax@4
    25.   int v25; // ST18_4@4
    26.   int v26; // eax@4
    27.   int v27; // ST1C_4@4
    28.   int v28; // eax@4
    29.   int v29; // ST20_4@4
    30.   int v30; // eax@4
    31.   int v31; // ST24_4@4
    32.   int v32; // eax@4
    33.   int v33; // ST18_4@4
    34.   int v34; // eax@4
    35.   int v35; // ST1C_4@4
    36.   int v36; // eax@4
    37.   int v37; // ST20_4@4
    38.   int v38; // eax@4
    39.   int v39; // ST24_4@4
    40.   int v40; // eax@4
    41.   int v41; // ST18_4@4
    42.   int v42; // eax@4
    43.   int v43; // ST1C_4@4
    44.   int v44; // eax@4
    45.   int v45; // ST20_4@4
    46.   int v46; // eax@4
    47.   int v47; // ST24_4@4
    48.   int v48; // eax@4
    49.   int v49; // ST18_4@4
    50.   int v50; // eax@4
    51.   int v51; // ST1C_4@4
    52.   int v52; // eax@4
    53.   int v53; // ST20_4@4
    54.   int v54; // eax@4
    55.   int v55; // ST24_4@4
    56.   int v56; // eax@4
    57.   int v57; // ST18_4@4
    58.   int v58; // eax@4
    59.   int v59; // ST1C_4@4
    60.   int v60; // eax@4
    61.   int v61; // ST20_4@4
    62.   int v62; // eax@4
    63.   int v63; // ST24_4@4
    64.   int v64; // eax@4
    65.   int v65; // ST18_4@4
    66.   int v66; // eax@4
    67.   int v67; // ST1C_4@4
    68.   int v68; // eax@4
    69.   int v69; // ST20_4@4
    70.   int v70; // eax@4
    71.   int v71; // ST24_4@4
    72.   int v72; // eax@4
    73.   int v73; // ST18_4@4
    74.   int v74; // eax@4
    75.   int v75; // ST1C_4@4
    76.   int v76; // eax@4
    77.   int v77; // ST20_4@4
    78.   int v78; // eax@4
    79.   int v79; // ST24_4@4
    80.   int v80; // eax@4
    81.   int v81; // ST18_4@4
    82.   int v82; // eax@4
    83.   int v83; // ST1C_4@4
    84.   int v84; // eax@4
    85.   int v85; // ST20_4@4
    86.   int v86; // eax@4
    87.   int v87; // ST24_4@4
    88.   int v88; // eax@4
    89.   int v89; // ST18_4@4
    90.   int v90; // eax@4
    91.   int v91; // ST1C_4@4
    92.   int v92; // eax@4
    93.   int v93; // ST20_4@4
    94.   int v94; // eax@4
    95.   int v95; // ST24_4@4
    96.   int v96; // eax@4
    97.   int v97; // ST18_4@4
    98.   int v98; // eax@4
    99.   int v99; // ST1C_4@4
    100.   int v100; // eax@4
    101.   int v101; // ST20_4@4
    102.   int v102; // eax@4
    103.   int v103; // ST24_4@4
    104.   int v104; // eax@4
    105.   int v105; // ST18_4@4
    106.   int v106; // eax@4
    107.   int v107; // ST1C_4@4
    108.   int v108; // eax@4
    109.   int v109; // ST20_4@4
    110.   int v110; // eax@4
    111.   int v111; // ST24_4@4
    112.   int v112; // eax@4
    113.   int v113; // ST18_4@4
    114.   int v114; // eax@4
    115.   int v115; // ST1C_4@4
    116.   int v116; // eax@4
    117.   int v117; // ST20_4@4
    118.   int v118; // eax@4
    119.   int v119; // ST24_4@4
    120.   int v120; // eax@4
    121.   int v121; // ST18_4@4
    122.   int v122; // eax@4
    123.   int v123; // ST1C_4@4
    124.   int v124; // eax@4
    125.   int v125; // ST20_4@4
    126.   int v126; // eax@4
    127.   int v127; // ST24_4@4
    128.   int v128; // eax@4
    129.   int v129; // ST18_4@4
    130.   int v130; // eax@4
    131.   int v131; // ST1C_4@4
    132.   int v132; // eax@4
    133.   int v133; // ST20_4@4
    134.   int v134; // eax@4
    135.   int v135; // ST24_4@4
    136.   int v136; // eax@4
    137.   int v137; // ST18_4@4
    138.   int v138; // eax@4
    139.   int v139; // ST1C_4@4
    140.   int v140; // eax@4
    141.   signed int v141; // ecx@5
    142.   int v142; // eax@6
    143.   char v143; // t1@6
    144.   int v144; // [sp+1Ch] [bp+Ch]@3

    145.   v3 = (void *)(a2 + 1 + a1);
    146.   *((char *)v3 - 1) = -128;
    147.   v4 = 64 - (a2 + 1) % 0x40;
    148.   if ( v4 < 8 )
    149.     v4 += 64;
    150.   memset(v3, 0, v4);
    151.   v5 = (int)((char *)v3 + v4);
    152.   v6 = a2;
    153.   v144 = v4 + 1 + a2;
    154.   v7 = 8i64 * v6;
    155.   *(_DWORD *)(v5 - 8) = v7;
    156.   *(_DWORD *)(v5 - 4) = HIDWORD(v7);
    157.   v8 = v144;
    158.   v9 = a1;
    159.   v10 = a3;
    160.   *(_DWORD *)a3 = 1732584193;
    161.   *(_DWORD *)(a3 + 4) = -271733879;
    162.   *(_DWORD *)(a3 + 8) = -1732584194;
    163.   *(_DWORD *)(a3 + 12) = 271733878;
    164.   do
    165.   {
    166.     v11 = *(_DWORD *)(a3 + 4);
    167.     v12 = *(_DWORD *)(a3 + 8);
    168.     v13 = *(_DWORD *)(a3 + 12);
    169.     v14 = __ROL4__(*(_DWORD *)v9 + *(_DWORD *)a3 + (v11 & v12 | v13 & ~v11) - 680876936, 7);
    170.     v15 = v11 + v14;
    171.     v16 = __ROL4__(*(_DWORD *)(v9 + 4) + v13 + ((v11 + v14) & v11 | v12 & ~(v11 + v14)) - 389564586, 12);
    172.     v17 = v15 + v16;
    173.     v18 = __ROL4__(*(_DWORD *)(v9 + 8) + v12 + ((v15 + v16) & v15 | v11 & ~(v15 + v16)) + 606105819, 17);
    174.     v19 = v17 + v18;
    175.     v20 = __ROL4__(*(_DWORD *)(v9 + 12) + v11 + ((v17 + v18) & v17 | v15 & ~(v17 + v18)) - 1044525330, 22);
    176.     v21 = v19 + v20;
    177.     v22 = __ROL4__(*(_DWORD *)(v9 + 16) + v15 + ((v19 + v20) & v19 | v17 & ~(v19 + v20)) - 176418897, 7);
    178.     v23 = v21 + v22;
    179.     v24 = __ROL4__(*(_DWORD *)(v9 + 20) + v17 + ((v21 + v22) & v21 | v19 & ~(v21 + v22)) + 1200080426, 12);
    180.     v25 = v23 + v24;
    181.     v26 = __ROL4__(*(_DWORD *)(v9 + 24) + v19 + ((v23 + v24) & v23 | v21 & ~(v23 + v24)) - 1473231341, 17);
    182.     v27 = v25 + v26;
    183.     v28 = __ROL4__(*(_DWORD *)(v9 + 28) + v21 + ((v25 + v26) & v25 | v23 & ~(v25 + v26)) - 45705983, 22);
    184.     v29 = v27 + v28;
    185.     v30 = __ROL4__(*(_DWORD *)(v9 + 32) + v23 + ((v27 + v28) & v27 | v25 & ~(v27 + v28)) + 1770035416, 7);
    186.     v31 = v29 + v30;
    187.     v32 = __ROL4__(*(_DWORD *)(v9 + 36) + v25 + ((v29 + v30) & v29 | v27 & ~(v29 + v30)) - 1958414417, 12);
    188.     v33 = v31 + v32;
    189.     v34 = __ROL4__(*(_DWORD *)(v9 + 40) + v27 + ((v31 + v32) & v31 | v29 & ~(v31 + v32)) - 42063, 17);
    190.     v35 = v33 + v34;
    191.     v36 = __ROL4__(*(_DWORD *)(v9 + 44) + v29 + ((v33 + v34) & v33 | v31 & ~(v33 + v34)) - 1990404162, 22);
    192.     v37 = v35 + v36;
    193.     v38 = __ROL4__(*(_DWORD *)(v9 + 48) + v31 + ((v35 + v36) & v35 | v33 & ~(v35 + v36)) + 1804603682, 7);
    194.     v39 = v37 + v38;
    195.     v40 = __ROL4__(*(_DWORD *)(v9 + 52) + v33 + ((v37 + v38) & v37 | v35 & ~(v37 + v38)) - 40341101, 12);
    196.     v41 = v39 + v40;
    197.     v42 = __ROL4__(*(_DWORD *)(v9 + 56) + v35 + ((v39 + v40) & v39 | v37 & ~(v39 + v40)) - 1502002290, 17);
    198.     v43 = v41 + v42;
    199.     v44 = __ROL4__(*(_DWORD *)(v9 + 60) + v37 + ((v41 + v42) & v41 | v39 & ~(v41 + v42)) + 1236535329, 22);
    200.     v45 = v43 + v44;
    201.     v46 = __ROL4__(*(_DWORD *)(v9 + 4) + v39 + (v43 & ~v41 | v41 & (v43 + v44)) - 165796510, 5);
    202.     v47 = v45 + v46;
    203.     v48 = __ROL4__(*(_DWORD *)(v9 + 24) + v41 + (v45 & ~v43 | v43 & (v45 + v46)) - 1069501632, 9);
    204.     v49 = v47 + v48;
    205.     v50 = __ROL4__(*(_DWORD *)(v9 + 44) + v43 + (v47 & ~v45 | v45 & (v47 + v48)) + 643717713, 14);
    206.     v51 = v49 + v50;
    207.     v52 = __ROL4__(*(_DWORD *)v9 + v45 + (v49 & ~v47 | v47 & (v49 + v50)) - 373897302, 20);
    208.     v53 = v51 + v52;
    209.     v54 = __ROL4__(*(_DWORD *)(v9 + 20) + v47 + (v51 & ~v49 | v49 & (v51 + v52)) - 701558691, 5);
    210.     v55 = v53 + v54;
    211.     v56 = __ROL4__(*(_DWORD *)(v9 + 40) + v49 + (v53 & ~v51 | v51 & (v53 + v54)) + 38016083, 9);
    212.     v57 = v55 + v56;
    213.     v58 = __ROL4__(*(_DWORD *)(v9 + 60) + v51 + (v55 & ~v53 | v53 & (v55 + v56)) - 660478335, 14);
    214.     v59 = v57 + v58;
    215.     v60 = __ROL4__(*(_DWORD *)(v9 + 16) + v53 + (v57 & ~v55 | v55 & (v57 + v58)) - 405537848, 20);
    216.     v61 = v59 + v60;
    217.     v62 = __ROL4__(*(_DWORD *)(v9 + 36) + v55 + (v59 & ~v57 | v57 & (v59 + v60)) + 568446438, 5);
    218.     v63 = v61 + v62;
    219.     v64 = __ROL4__(*(_DWORD *)(v9 + 56) + v57 + (v61 & ~v59 | v59 & (v61 + v62)) - 1019803690, 9);
    220.     v65 = v63 + v64;
    221.     v66 = __ROL4__(*(_DWORD *)(v9 + 12) + v59 + (v63 & ~v61 | v61 & (v63 + v64)) - 187363961, 14);
    222.     v67 = v65 + v66;
    223.     v68 = __ROL4__(*(_DWORD *)(v9 + 32) + v61 + (v65 & ~v63 | v63 & (v65 + v66)) + 1163531501, 20);
    224.     v69 = v67 + v68;
    225.     v70 = __ROL4__(*(_DWORD *)(v9 + 52) + v63 + (v67 & ~v65 | v65 & (v67 + v68)) - 1444681467, 5);
    226.     v71 = v69 + v70;
    227.     v72 = __ROL4__(*(_DWORD *)(v9 + 8) + v65 + (v69 & ~v67 | v67 & (v69 + v70)) - 51403784, 9);
    228.     v73 = v71 + v72;
    229.     v74 = __ROL4__(*(_DWORD *)(v9 + 28) + v67 + (v71 & ~v69 | v69 & (v71 + v72)) + 1735328473, 14);
    230.     v75 = v73 + v74;
    231.     v76 = __ROL4__(*(_DWORD *)(v9 + 48) + v69 + (v73 & ~v71 | v71 & (v73 + v74)) - 1926607734, 20);
    232.     v77 = v75 + v76;
    233.     v78 = __ROL4__(*(_DWORD *)(v9 + 20) + v71 + (v73 ^ v75 ^ (v75 + v76)) - 378558, 4);
    234.     v79 = v77 + v78;
    235.     v80 = __ROL4__(*(_DWORD *)(v9 + 32) + v73 + (v75 ^ v77 ^ (v77 + v78)) - 2022574463, 11);
    236.     v81 = v79 + v80;
    237.     v82 = __ROL4__(*(_DWORD *)(v9 + 44) + v75 + (v77 ^ v79 ^ (v79 + v80)) + 1839030562, 16);
    238.     v83 = v81 + v82;
    239.     v84 = __ROL4__(*(_DWORD *)(v9 + 56) + v77 + (v79 ^ v81 ^ (v81 + v82)) - 35309556, 23);
    240.     v85 = v83 + v84;
    241.     v86 = __ROL4__(*(_DWORD *)(v9 + 4) + v79 + (v81 ^ v83 ^ (v83 + v84)) - 1530992060, 4);
    242.     v87 = v85 + v86;
    243.     v88 = __ROL4__(*(_DWORD *)(v9 + 16) + v81 + (v83 ^ v85 ^ (v85 + v86)) + 1272893353, 11);
    244.     v89 = v87 + v88;
    245.     v90 = __ROL4__(*(_DWORD *)(v9 + 28) + v83 + (v85 ^ v87 ^ (v87 + v88)) - 155497632, 16);
    246.     v91 = v89 + v90;
    247.     v92 = __ROL4__(*(_DWORD *)(v9 + 40) + v85 + (v87 ^ v89 ^ (v89 + v90)) - 1094730640, 23);
    248.     v93 = v91 + v92;
    249.     v94 = __ROL4__(*(_DWORD *)(v9 + 52) + v87 + (v89 ^ v91 ^ (v91 + v92)) + 681279174, 4);
    250.     v95 = v93 + v94;
    251.     v96 = __ROL4__(*(_DWORD *)v9 + v89 + (v91 ^ v93 ^ (v93 + v94)) - 358537222, 11);
    252.     v97 = v95 + v96;
    253.     v98 = __ROL4__(*(_DWORD *)(v9 + 12) + v91 + (v93 ^ v95 ^ (v95 + v96)) - 722521979, 16);
    254.     v99 = v97 + v98;
    255.     v100 = __ROL4__(*(_DWORD *)(v9 + 24) + v93 + (v95 ^ v97 ^ (v97 + v98)) + 76029189, 23);
    256.     v101 = v99 + v100;
    257.     v102 = __ROL4__(*(_DWORD *)(v9 + 36) + v95 + (v97 ^ v99 ^ (v99 + v100)) - 640364487, 4);
    258.     v103 = v101 + v102;
    259.     v104 = __ROL4__(*(_DWORD *)(v9 + 48) + v97 + (v99 ^ v101 ^ (v101 + v102)) - 421815835, 11);
    260.     v105 = v103 + v104;
    261.     v106 = __ROL4__(*(_DWORD *)(v9 + 60) + v99 + (v101 ^ v103 ^ (v103 + v104)) + 530742520, 16);
    262.     v107 = v105 + v106;
    263.     v108 = __ROL4__(*(_DWORD *)(v9 + 8) + v101 + (v103 ^ v105 ^ (v105 + v106)) - 995338651, 23);
    264.     v109 = v107 + v108;
    265.     v110 = __ROL4__(*(_DWORD *)v9 + v103 + (v107 ^ (~v105 | (v107 + v108))) - 198630844, 6);
    266.     v111 = v109 + v110;
    267.     v112 = __ROL4__(*(_DWORD *)(v9 + 28) + v105 + (v109 ^ (~v107 | (v109 + v110))) + 1126891415, 10);
    268.     v113 = v111 + v112;
    269.     v114 = __ROL4__(*(_DWORD *)(v9 + 56) + v107 + (v111 ^ (~v109 | (v111 + v112))) - 1416354905, 15);
    270.     v115 = v113 + v114;
    271.     v116 = __ROL4__(*(_DWORD *)(v9 + 20) + v109 + (v113 ^ (~v111 | (v113 + v114))) - 57434055, 21);
    272.     v117 = v115 + v116;
    273.     v118 = __ROL4__(*(_DWORD *)(v9 + 48) + v111 + (v115 ^ (~v113 | (v115 + v116))) + 1700485571, 6);
    274.     v119 = v117 + v118;
    275.     v120 = __ROL4__(*(_DWORD *)(v9 + 12) + v113 + (v117 ^ (~v115 | (v117 + v118))) - 1894986606, 10);
    276.     v121 = v119 + v120;
    277.     v122 = __ROL4__(*(_DWORD *)(v9 + 40) + v115 + (v119 ^ (~v117 | (v119 + v120))) - 1051523, 15);
    278.     v123 = v121 + v122;
    279.     v124 = __ROL4__(*(_DWORD *)(v9 + 4) + v117 + (v121 ^ (~v119 | (v121 + v122))) - 2054922799, 21);
    280.     v125 = v123 + v124;
    281.     v126 = __ROL4__(*(_DWORD *)(v9 + 32) + v119 + (v123 ^ (~v121 | (v123 + v124))) + 1873313359, 6);
    282.     v127 = v125 + v126;
    283.     v128 = __ROL4__(*(_DWORD *)(v9 + 60) + v121 + (v125 ^ (~v123 | (v125 + v126))) - 30611744, 10);
    284.     v129 = v127 + v128;
    285.     v130 = __ROL4__(*(_DWORD *)(v9 + 24) + v123 + (v127 ^ (~v125 | (v127 + v128))) - 1560198380, 15);
    286.     v131 = v129 + v130;
    287.     v132 = __ROL4__(*(_DWORD *)(v9 + 52) + v125 + (v129 ^ (~v127 | (v129 + v130))) + 1309151649, 21);
    288.     v133 = v131 + v132;
    289.     v134 = __ROL4__(*(_DWORD *)(v9 + 16) + v127 + (v131 ^ (~v129 | (v131 + v132))) - 145523070, 6);
    290.     v135 = v133 + v134;
    291.     v136 = __ROL4__(*(_DWORD *)(v9 + 44) + v129 + (v133 ^ (~v131 | (v133 + v134))) - 1120210379, 10);
    292.     v137 = v135 + v136;
    293.     v138 = __ROL4__(*(_DWORD *)(v9 + 8) + v131 + (v135 ^ (~v133 | (v135 + v136))) + 718787259, 15);
    294.     v139 = v137 + v138;
    295.     v140 = __ROL4__(*(_DWORD *)(v9 + 36) + v133 + (v137 ^ (~v135 | (v137 + v138))) - 343485551, 21);
    296.     *(_DWORD *)a3 += v135;
    297.     *(_DWORD *)(a3 + 4) += v139 + v140;
    298.     *(_DWORD *)(a3 + 8) += v139;
    299.     *(_DWORD *)(a3 + 12) += v137;
    300.     v9 += 64;
    301.     v8 -= 64;
    302.   }
    303.   while ( v8 );
    304.   v141 = 4;
    305.   do
    306.   {
    307.     v142 = *(_DWORD *)v10;
    308.     LOBYTE(v142) = BYTE1(v142);
    309.     BYTE1(v142) = *(_DWORD *)v10;
    310.     v142 = __ROL4__(v142, 16);
    311.     v143 = v142;
    312.     LOBYTE(v142) = BYTE1(v142);
    313.     BYTE1(v142) = v143;
    314.     *(_DWORD *)v10 = v142;
    315.     v10 += 4;
    316.     --v141;
    317.   }
    318.   while ( v141 );
    319. }
    复制代码
         看起来是MD5的算法了.这样的要么自己实现,要不把它提取出吧
    1. MD5        proc _buffer,len,_szName        ; CODE XREF: DialogFunc+104p

    2. var_10                = dword        ptr -10h
    3. var_C                = dword        ptr -0Ch
    4. var_8                = dword        ptr -8
    5. var_4                = dword        ptr -4
    6. arg_0                = dword        ptr  8
    7. arg_4                = dword        ptr  0Ch
    8. arg_8                = dword        ptr  10h

    9.                
    10.                 add        esp, 0FFFFFFF0h
    11.                 push        eax
    12.                 push        ebx
    13.                 push        ecx
    14.                 push        edx
    15.                 push        edi
    16.                 push        esi
    17.                 mov        edi, [ebp+arg_0]
    18.                 mov        eax, [ebp+arg_4]
    19.                 inc        eax
    20.                 add        edi, eax
    21.                 mov        byte ptr [edi-1], 80h
    22.                 xor        edx, edx
    23.                 mov        ebx, 40h
    24.                 div        ebx
    25.                 neg        edx
    26.                 add        edx, 40h
    27.                 cmp        edx, 8
    28.                 jnb        short loc_40102F
    29.                 add        edx, 40h

    30. loc_40102F:                                ; CODE XREF: sub_401000+2Aj
    31.                 mov        ecx, edx
    32.                 xor        al, al
    33.                 rep stosb
    34.                 mov        eax, [ebp+arg_4]
    35.                 inc        edx
    36.                 add        [ebp+arg_4], edx
    37.                 xor        edx, edx
    38.                 mov        ebx, 8
    39.                 mul        ebx
    40.                 mov        [edi-8], eax
    41.                 mov        [edi-4], edx
    42.                 mov        edx, [ebp+arg_4]
    43.                 mov        edi, [ebp+arg_0]
    44.                 mov        esi, [ebp+arg_8]
    45.                 mov        dword ptr [esi], 67452301h
    46.                 mov        dword ptr [esi+4], 0EFCDAB89h
    47.                 mov        dword ptr [esi+8], 98BADCFEh
    48.                 mov        dword ptr [esi+0Ch], 10325476h

    49. loc_40106F:                                ; CODE XREF: sub_401000+9BFj
    50.                 mov        eax, [esi]
    51.                 mov        [ebp+var_4], eax
    52.                 mov        eax, [esi+4]
    53.                 mov        [ebp+var_8], eax
    54.                 mov        eax, [esi+8]
    55.                 mov        [ebp+var_C], eax
    56.                 mov        eax, [esi+0Ch]
    57.                 mov        [ebp+var_10], eax
    58.                 mov        eax, [ebp+var_8]
    59.                 mov        ebx, [ebp+var_C]
    60.                 mov        ecx, [ebp+var_10]
    61.                 and        ebx, eax
    62.                 not        eax
    63.                 and        eax, ecx
    64.                 or        eax, ebx
    65.                 add        eax, [ebp+var_4]
    66.                 add        eax, [edi]
    67.                 add        eax, 0D76AA478h
    68.                 mov        cl, 7
    69.                 rol        eax, cl
    70.                 add        eax, [ebp+var_8]
    71.                 mov        [ebp+var_4], eax
    72.                 mov        eax, [ebp+var_4]
    73.                 mov        ebx, [ebp+var_8]
    74.                 mov        ecx, [ebp+var_C]
    75.                 and        ebx, eax
    76.                 not        eax
    77.                 and        eax, ecx
    78.                 or        eax, ebx
    79.                 add        eax, [ebp+var_10]
    80.                 add        eax, [edi+4]
    81.                 add        eax, 0E8C7B756h
    82.                 mov        cl, 0Ch
    83.                 rol        eax, cl
    84.                 add        eax, [ebp+var_4]
    85.                 mov        [ebp+var_10], eax
    86.                 mov        eax, [ebp+var_10]
    87.                 mov        ebx, [ebp+var_4]
    88.                 mov        ecx, [ebp+var_8]
    89.                 and        ebx, eax
    90.                 not        eax
    91.                 and        eax, ecx
    92.                 or        eax, ebx
    93.                 add        eax, [ebp+var_C]
    94.                 add        eax, [edi+8]
    95.                 add        eax, 242070DBh
    96.                 mov        cl, 11h
    97.                 rol        eax, cl
    98.                 add        eax, [ebp+var_10]
    99.                 mov        [ebp+var_C], eax
    100.                 mov        eax, [ebp+var_C]
    101.                 mov        ebx, [ebp+var_10]
    102.                 mov        ecx, [ebp+var_4]
    103.                 and        ebx, eax
    104.                 not        eax
    105.                 and        eax, ecx
    106.                 or        eax, ebx
    107.                 add        eax, [ebp+var_8]
    108.                 add        eax, [edi+0Ch]
    109.                 add        eax, 0C1BDCEEEh
    110.                 mov        cl, 16h
    111.                 rol        eax, cl
    112.                 add        eax, [ebp+var_C]
    113.                 mov        [ebp+var_8], eax
    114.                 mov        eax, [ebp+var_8]
    115.                 mov        ebx, [ebp+var_C]
    116.                 mov        ecx, [ebp+var_10]
    117.                 and        ebx, eax
    118.                 not        eax
    119.                 and        eax, ecx
    120.                 or        eax, ebx
    121.                 add        eax, [ebp+var_4]
    122.                 add        eax, [edi+10h]
    123.                 add        eax, 0F57C0FAFh
    124.                 mov        cl, 7
    125.                 rol        eax, cl
    126.                 add        eax, [ebp+var_8]
    127.                 mov        [ebp+var_4], eax
    128.                 mov        eax, [ebp+var_4]
    129.                 mov        ebx, [ebp+var_8]
    130.                 mov        ecx, [ebp+var_C]
    131.                 and        ebx, eax
    132.                 not        eax
    133.                 and        eax, ecx
    134.                 or        eax, ebx
    135.                 add        eax, [ebp+var_10]
    136.                 add        eax, [edi+14h]
    137.                 add        eax, 4787C62Ah
    138.                 mov        cl, 0Ch
    139.                 rol        eax, cl
    140.                 add        eax, [ebp+var_4]
    141.                 mov        [ebp+var_10], eax
    142.                 mov        eax, [ebp+var_10]
    143.                 mov        ebx, [ebp+var_4]
    144.                 mov        ecx, [ebp+var_8]
    145.                 and        ebx, eax
    146.                 not        eax
    147.                 and        eax, ecx
    148.                 or        eax, ebx
    149.                 add        eax, [ebp+var_C]
    150.                 add        eax, [edi+18h]
    151.                 add        eax, 0A8304613h
    152.                 mov        cl, 11h
    153.                 rol        eax, cl
    154.                 add        eax, [ebp+var_10]
    155.                 mov        [ebp+var_C], eax
    156.                 mov        eax, [ebp+var_C]
    157.                 mov        ebx, [ebp+var_10]
    158.                 mov        ecx, [ebp+var_4]
    159.                 and        ebx, eax
    160.                 not        eax
    161.                 and        eax, ecx
    162.                 or        eax, ebx
    163.                 add        eax, [ebp+var_8]
    164.                 add        eax, [edi+1Ch]
    165.                 add        eax, 0FD469501h
    166.                 mov        cl, 16h
    167.                 rol        eax, cl
    168.                 add        eax, [ebp+var_C]
    169.                 mov        [ebp+var_8], eax
    170.                 mov        eax, [ebp+var_8]
    171.                 mov        ebx, [ebp+var_C]
    172.                 mov        ecx, [ebp+var_10]
    173.                 and        ebx, eax
    174.                 not        eax
    175.                 and        eax, ecx
    176.                 or        eax, ebx
    177.                 add        eax, [ebp+var_4]
    178.                 add        eax, [edi+20h]
    179.                 add        eax, 698098D8h
    180.                 mov        cl, 7
    181.                 rol        eax, cl
    182.                 add        eax, [ebp+var_8]
    183.                 mov        [ebp+var_4], eax
    184.                 mov        eax, [ebp+var_4]
    185.                 mov        ebx, [ebp+var_8]
    186.                 mov        ecx, [ebp+var_C]
    187.                 and        ebx, eax
    188.                 not        eax
    189.                 and        eax, ecx
    190.                 or        eax, ebx
    191.                 add        eax, [ebp+var_10]
    192.                 add        eax, [edi+24h]
    193.                 add        eax, 8B44F7AFh
    194.                 mov        cl, 0Ch
    195.                 rol        eax, cl
    196.                 add        eax, [ebp+var_4]
    197.                 mov        [ebp+var_10], eax
    198.                 mov        eax, [ebp+var_10]
    199.                 mov        ebx, [ebp+var_4]
    200.                 mov        ecx, [ebp+var_8]
    201.                 and        ebx, eax
    202.                 not        eax
    203.                 and        eax, ecx
    204.                 or        eax, ebx
    205.                 add        eax, [ebp+var_C]
    206.                 add        eax, [edi+28h]
    207.                 add        eax, 0FFFF5BB1h
    208.                 mov        cl, 11h
    209.                 rol        eax, cl
    210.                 add        eax, [ebp+var_10]
    211.                 mov        [ebp+var_C], eax
    212.                 mov        eax, [ebp+var_C]
    213.                 mov        ebx, [ebp+var_10]
    214.                 mov        ecx, [ebp+var_4]
    215.                 and        ebx, eax
    216.                 not        eax
    217.                 and        eax, ecx
    218.                 or        eax, ebx
    219.                 add        eax, [ebp+var_8]
    220.                 add        eax, [edi+2Ch]
    221.                 add        eax, 895CD7BEh
    222.                 mov        cl, 16h
    223.                 rol        eax, cl
    224.                 add        eax, [ebp+var_C]
    225.                 mov        [ebp+var_8], eax
    226.                 mov        eax, [ebp+var_8]
    227.                 mov        ebx, [ebp+var_C]
    228.                 mov        ecx, [ebp+var_10]
    229.                 and        ebx, eax
    230.                 not        eax
    231.                 and        eax, ecx
    232.                 or        eax, ebx
    233.                 add        eax, [ebp+var_4]
    234.                 add        eax, [edi+30h]
    235.                 add        eax, 6B901122h
    236.                 mov        cl, 7
    237.                 rol        eax, cl
    238.                 add        eax, [ebp+var_8]
    239.                 mov        [ebp+var_4], eax
    240.                 mov        eax, [ebp+var_4]
    241.                 mov        ebx, [ebp+var_8]
    242.                 mov        ecx, [ebp+var_C]
    243.                 and        ebx, eax
    244.                 not        eax
    245.                 and        eax, ecx
    246.                 or        eax, ebx
    247.                 add        eax, [ebp+var_10]
    248.                 add        eax, [edi+34h]
    249.                 add        eax, 0FD987193h
    250.                 mov        cl, 0Ch
    251.                 rol        eax, cl
    252.                 add        eax, [ebp+var_4]
    253.                 mov        [ebp+var_10], eax
    254.                 mov        eax, [ebp+var_10]
    255.                 mov        ebx, [ebp+var_4]
    256.                 mov        ecx, [ebp+var_8]
    257.                 and        ebx, eax
    258.                 not        eax
    259.                 and        eax, ecx
    260.                 or        eax, ebx
    261.                 add        eax, [ebp+var_C]
    262.                 add        eax, [edi+38h]
    263.                 add        eax, 0A679438Eh
    264.                 mov        cl, 11h
    265.                 rol        eax, cl
    266.                 add        eax, [ebp+var_10]
    267.                 mov        [ebp+var_C], eax
    268.                 mov        eax, [ebp+var_C]
    269.                 mov        ebx, [ebp+var_10]
    270.                 mov        ecx, [ebp+var_4]
    271.                 and        ebx, eax
    272.                 not        eax
    273.                 and        eax, ecx
    274.                 or        eax, ebx
    275.                 add        eax, [ebp+var_8]
    276.                 add        eax, [edi+3Ch]
    277.                 add        eax, 49B40821h
    278.                 mov        cl, 16h
    279.                 rol        eax, cl
    280.                 add        eax, [ebp+var_C]
    281.                 mov        [ebp+var_8], eax
    282.                 mov        eax, [ebp+var_8]
    283.                 mov        ebx, [ebp+var_C]
    284.                 mov        ecx, [ebp+var_10]
    285.                 and        eax, ecx
    286.                 not        ecx
    287.                 and        ecx, ebx
    288.                 or        eax, ecx
    289.                 add        eax, [ebp+var_4]
    290.                 add        eax, [edi+4]
    291.                 add        eax, 0F61E2562h
    292.                 mov        cl, 5
    293.                 rol        eax, cl
    294.                 add        eax, [ebp+var_8]
    295.                 mov        [ebp+var_4], eax
    296.                 mov        eax, [ebp+var_4]
    297.                 mov        ebx, [ebp+var_8]
    298.                 mov        ecx, [ebp+var_C]
    299.                 and        eax, ecx
    300.                 not        ecx
    301.                 and        ecx, ebx
    302.                 or        eax, ecx
    303.                 add        eax, [ebp+var_10]
    304.                 add        eax, [edi+18h]
    305.                 add        eax, 0C040B340h
    306.                 mov        cl, 9
    307.                 rol        eax, cl
    308.                 add        eax, [ebp+var_4]
    309.                 mov        [ebp+var_10], eax
    310.                 mov        eax, [ebp+var_10]
    311.                 mov        ebx, [ebp+var_4]
    312.                 mov        ecx, [ebp+var_8]
    313.                 and        eax, ecx
    314.                 not        ecx
    315.                 and        ecx, ebx
    316.                 or        eax, ecx
    317.                 add        eax, [ebp+var_C]
    318.                 add        eax, [edi+2Ch]
    319.                 add        eax, 265E5A51h
    320.                 mov        cl, 0Eh
    321.                 rol        eax, cl
    322.                 add        eax, [ebp+var_10]
    323.                 mov        [ebp+var_C], eax
    324.                 mov        eax, [ebp+var_C]
    325.                 mov        ebx, [ebp+var_10]
    326.                 mov        ecx, [ebp+var_4]
    327.                 and        eax, ecx
    328.                 not        ecx
    329.                 and        ecx, ebx
    330.                 or        eax, ecx
    331.                 add        eax, [ebp+var_8]
    332.                 add        eax, [edi]
    333.                 add        eax, 0E9B6C7AAh
    334.                 mov        cl, 14h
    335.                 rol        eax, cl
    336.                 add        eax, [ebp+var_C]
    337.                 mov        [ebp+var_8], eax
    338.                 mov        eax, [ebp+var_8]
    339.                 mov        ebx, [ebp+var_C]
    340.                 mov        ecx, [ebp+var_10]
    341.                 and        eax, ecx
    342.                 not        ecx
    343.                 and        ecx, ebx
    344.                 or        eax, ecx
    345.                 add        eax, [ebp+var_4]
    346.                 add        eax, [edi+14h]
    347.                 add        eax, 0D62F105Dh
    348.                 mov        cl, 5
    349.                 rol        eax, cl
    350.                 add        eax, [ebp+var_8]
    351.                 mov        [ebp+var_4], eax
    352.                 mov        eax, [ebp+var_4]
    353.                 mov        ebx, [ebp+var_8]
    354.                 mov        ecx, [ebp+var_C]
    355.                 and        eax, ecx
    356.                 not        ecx
    357.                 and        ecx, ebx
    358.                 or        eax, ecx
    359.                 add        eax, [ebp+var_10]
    360.                 add        eax, [edi+28h]
    361.                 add        eax, 2441453h
    362.                 mov        cl, 9
    363.                 rol        eax, cl
    364.                 add        eax, [ebp+var_4]
    365.                 mov        [ebp+var_10], eax
    366.                 mov        eax, [ebp+var_10]
    367.                 mov        ebx, [ebp+var_4]
    368.                 mov        ecx, [ebp+var_8]
    369.                 and        eax, ecx
    370.                 not        ecx
    371.                 and        ecx, ebx
    372.                 or        eax, ecx
    373.                 add        eax, [ebp+var_C]
    374.                 add        eax, [edi+3Ch]
    375.                 add        eax, 0D8A1E681h
    376.                 mov        cl, 0Eh
    377.                 rol        eax, cl
    378.                 add        eax, [ebp+var_10]
    379.                 mov        [ebp+var_C], eax
    380.                 mov        eax, [ebp+var_C]
    381.                 mov        ebx, [ebp+var_10]
    382.                 mov        ecx, [ebp+var_4]
    383.                 and        eax, ecx
    384.                 not        ecx
    385.                 and        ecx, ebx
    386.                 or        eax, ecx
    387.                 add        eax, [ebp+var_8]
    388.                 add        eax, [edi+10h]
    389.                 add        eax, 0E7D3FBC8h
    390.                 mov        cl, 14h
    391.                 rol        eax, cl
    392.                 add        eax, [ebp+var_C]
    393.                 mov        [ebp+var_8], eax
    394.                 mov        eax, [ebp+var_8]
    395.                 mov        ebx, [ebp+var_C]
    396.                 mov        ecx, [ebp+var_10]
    397.                 and        eax, ecx
    398.                 not        ecx
    399.                 and        ecx, ebx
    400.                 or        eax, ecx
    401.                 add        eax, [ebp+var_4]
    402.                 add        eax, [edi+24h]
    403.                 add        eax, 21E1CDE6h
    404.                 mov        cl, 5
    405.                 rol        eax, cl
    406.                 add        eax, [ebp+var_8]
    407.                 mov        [ebp+var_4], eax
    408.                 mov        eax, [ebp+var_4]
    409.                 mov        ebx, [ebp+var_8]
    410.                 mov        ecx, [ebp+var_C]
    411.                 and        eax, ecx
    412.                 not        ecx
    413.                 and        ecx, ebx
    414.                 or        eax, ecx
    415.                 add        eax, [ebp+var_10]
    416.                 add        eax, [edi+38h]
    417.                 add        eax, 0C33707D6h
    418.                 mov        cl, 9
    419.                 rol        eax, cl
    420.                 add        eax, [ebp+var_4]
    421.                 mov        [ebp+var_10], eax
    422.                 mov        eax, [ebp+var_10]
    423.                 mov        ebx, [ebp+var_4]
    424.                 mov        ecx, [ebp+var_8]
    425.                 and        eax, ecx
    426.                 not        ecx
    427.                 and        ecx, ebx
    428.                 or        eax, ecx
    429.                 add        eax, [ebp+var_C]
    430.                 add        eax, [edi+0Ch]
    431.                 add        eax, 0F4D50D87h
    432.                 mov        cl, 0Eh
    433.                 rol        eax, cl
    434.                 add        eax, [ebp+var_10]
    435.                 mov        [ebp+var_C], eax
    436.                 mov        eax, [ebp+var_C]
    437.                 mov        ebx, [ebp+var_10]
    438.                 mov        ecx, [ebp+var_4]
    439.                 and        eax, ecx
    440.                 not        ecx
    441.                 and        ecx, ebx
    442.                 or        eax, ecx
    443.                 add        eax, [ebp+var_8]
    444.                 add        eax, [edi+20h]
    445.                 add        eax, 455A14EDh
    446.                 mov        cl, 14h
    447.                 rol        eax, cl
    448.                 add        eax, [ebp+var_C]
    449.                 mov        [ebp+var_8], eax
    450.                 mov        eax, [ebp+var_8]
    451.                 mov        ebx, [ebp+var_C]
    452.                 mov        ecx, [ebp+var_10]
    453.                 and        eax, ecx
    454.                 not        ecx
    455.                 and        ecx, ebx
    456.                 or        eax, ecx
    457.                 add        eax, [ebp+var_4]
    458.                 add        eax, [edi+34h]
    459.                 add        eax, 0A9E3E905h
    460.                 mov        cl, 5
    461.                 rol        eax, cl
    462.                 add        eax, [ebp+var_8]
    463.                 mov        [ebp+var_4], eax
    464.                 mov        eax, [ebp+var_4]
    465.                 mov        ebx, [ebp+var_8]
    466.                 mov        ecx, [ebp+var_C]
    467.                 and        eax, ecx
    468.                 not        ecx
    469.                 and        ecx, ebx
    470.                 or        eax, ecx
    471.                 add        eax, [ebp+var_10]
    472.                 add        eax, [edi+8]
    473.                 add        eax, 0FCEFA3F8h
    474.                 mov        cl, 9
    475.                 rol        eax, cl
    476.                 add        eax, [ebp+var_4]
    477.                 mov        [ebp+var_10], eax
    478.                 mov        eax, [ebp+var_10]
    479.                 mov        ebx, [ebp+var_4]
    480.                 mov        ecx, [ebp+var_8]
    481.                 and        eax, ecx
    482.                 not        ecx
    483.                 and        ecx, ebx
    484.                 or        eax, ecx
    485.                 add        eax, [ebp+var_C]
    486.                 add        eax, [edi+1Ch]
    487.                 add        eax, 676F02D9h
    488.                 mov        cl, 0Eh
    489.                 rol        eax, cl
    490.                 add        eax, [ebp+var_10]
    491.                 mov        [ebp+var_C], eax
    492.                 mov        eax, [ebp+var_C]
    493.                 mov        ebx, [ebp+var_10]
    494.                 mov        ecx, [ebp+var_4]
    495.                 and        eax, ecx
    496.                 not        ecx
    497.                 and        ecx, ebx
    498.                 or        eax, ecx
    499.                 add        eax, [ebp+var_8]
    500.                 add        eax, [edi+30h]
    501.                 add        eax, 8D2A4C8Ah
    502.                 mov        cl, 14h
    503.                 rol        eax, cl
    504.                 add        eax, [ebp+var_C]
    505.                 mov        [ebp+var_8], eax
    506.                 mov        eax, [ebp+var_8]
    507.                 mov        ebx, [ebp+var_C]
    508.                 mov        ecx, [ebp+var_10]
    509.                 xor        eax, ebx
    510.                 xor        eax, ecx
    511.                 add        eax, [ebp+var_4]
    512.                 add        eax, [edi+14h]
    513.                 add        eax, 0FFFA3942h
    514.                 mov        cl, 4
    515.                 rol        eax, cl
    516.                 add        eax, [ebp+var_8]
    517.                 mov        [ebp+var_4], eax
    518.                 mov        eax, [ebp+var_4]
    519.                 mov        ebx, [ebp+var_8]
    520.                 mov        ecx, [ebp+var_C]
    521.                 xor        eax, ebx
    522.                 xor        eax, ecx
    523.                 add        eax, [ebp+var_10]
    524.                 add        eax, [edi+20h]
    525.                 add        eax, 8771F681h
    526.                 mov        cl, 0Bh
    527.                 rol        eax, cl
    528.                 add        eax, [ebp+var_4]
    529.                 mov        [ebp+var_10], eax
    530.                 mov        eax, [ebp+var_10]
    531.                 mov        ebx, [ebp+var_4]
    532.                 mov        ecx, [ebp+var_8]
    533.                 xor        eax, ebx
    534.                 xor        eax, ecx
    535.                 add        eax, [ebp+var_C]
    536.                 add        eax, [edi+2Ch]
    537.                 add        eax, 6D9D6122h
    538.                 mov        cl, 10h
    539.                 rol        eax, cl
    540.                 add        eax, [ebp+var_10]
    541.                 mov        [ebp+var_C], eax
    542.                 mov        eax, [ebp+var_C]
    543.                 mov        ebx, [ebp+var_10]
    544.                 mov        ecx, [ebp+var_4]
    545.                 xor        eax, ebx
    546.                 xor        eax, ecx
    547.                 add        eax, [ebp+var_8]
    548.                 add        eax, [edi+38h]
    549.                 add        eax, 0FDE5380Ch
    550.                 mov        cl, 17h
    551.                 rol        eax, cl
    552.                 add        eax, [ebp+var_C]
    553.                 mov        [ebp+var_8], eax
    554.                 mov        eax, [ebp+var_8]
    555.                 mov        ebx, [ebp+var_C]
    556.                 mov        ecx, [ebp+var_10]
    557.                 xor        eax, ebx
    558.                 xor        eax, ecx
    559.                 add        eax, [ebp+var_4]
    560.                 add        eax, [edi+4]
    561.                 add        eax, 0A4BEEA44h
    562.                 mov        cl, 4
    563.                 rol        eax, cl
    564.                 add        eax, [ebp+var_8]
    565.                 mov        [ebp+var_4], eax
    566.                 mov        eax, [ebp+var_4]
    567.                 mov        ebx, [ebp+var_8]
    568.                 mov        ecx, [ebp+var_C]
    569.                 xor        eax, ebx
    570.                 xor        eax, ecx
    571.                 add        eax, [ebp+var_10]
    572.                 add        eax, [edi+10h]
    573.                 add        eax, 4BDECFA9h
    574.                 mov        cl, 0Bh
    575.                 rol        eax, cl
    576.                 add        eax, [ebp+var_4]
    577.                 mov        [ebp+var_10], eax
    578.                 mov        eax, [ebp+var_10]
    579.                 mov        ebx, [ebp+var_4]
    580.                 mov        ecx, [ebp+var_8]
    581.                 xor        eax, ebx
    582.                 xor        eax, ecx
    583.                 add        eax, [ebp+var_C]
    584.                 add        eax, [edi+1Ch]
    585.                 add        eax, 0F6BB4B60h
    586.                 mov        cl, 10h
    587.                 rol        eax, cl
    588.                 add        eax, [ebp+var_10]
    589.                 mov        [ebp+var_C], eax
    590.                 mov        eax, [ebp+var_C]
    591.                 mov        ebx, [ebp+var_10]
    592.                 mov        ecx, [ebp+var_4]
    593.                 xor        eax, ebx
    594.                 xor        eax, ecx
    595.                 add        eax, [ebp+var_8]
    596.                 add        eax, [edi+28h]
    597.                 add        eax, 0BEBFBC70h
    598.                 mov        cl, 17h
    599.                 rol        eax, cl
    600.                 add        eax, [ebp+var_C]
    601.                 mov        [ebp+var_8], eax
    602.                 mov        eax, [ebp+var_8]
    603.                 mov        ebx, [ebp+var_C]
    604.                 mov        ecx, [ebp+var_10]
    605.                 xor        eax, ebx
    606.                 xor        eax, ecx
    607.                 add        eax, [ebp+var_4]
    608.                 add        eax, [edi+34h]
    609.                 add        eax, 289B7EC6h
    610.                 mov        cl, 4
    611.                 rol        eax, cl
    612.                 add        eax, [ebp+var_8]
    613.                 mov        [ebp+var_4], eax
    614.                 mov        eax, [ebp+var_4]
    615.                 mov        ebx, [ebp+var_8]
    616.                 mov        ecx, [ebp+var_C]
    617.                 xor        eax, ebx
    618.                 xor        eax, ecx
    619.                 add        eax, [ebp+var_10]
    620.                 add        eax, [edi]
    621.                 add        eax, 0EAA127FAh
    622.                 mov        cl, 0Bh
    623.                 rol        eax, cl
    624.                 add        eax, [ebp+var_4]
    625.                 mov        [ebp+var_10], eax
    626.                 mov        eax, [ebp+var_10]
    627.                 mov        ebx, [ebp+var_4]
    628.                 mov        ecx, [ebp+var_8]
    629.                 xor        eax, ebx
    630.                 xor        eax, ecx
    631.                 add        eax, [ebp+var_C]
    632.                 add        eax, [edi+0Ch]
    633.                 add        eax, 0D4EF3085h
    634.                 mov        cl, 10h
    635.                 rol        eax, cl
    636.                 add        eax, [ebp+var_10]
    637.                 mov        [ebp+var_C], eax
    638.                 mov        eax, [ebp+var_C]
    639.                 mov        ebx, [ebp+var_10]
    640.                 mov        ecx, [ebp+var_4]
    641.                 xor        eax, ebx
    642.                 xor        eax, ecx
    643.                 add        eax, [ebp+var_8]
    644.                 add        eax, [edi+18h]
    645.                 add        eax, 4881D05h
    646.                 mov        cl, 17h
    647.                 rol        eax, cl
    648.                 add        eax, [ebp+var_C]
    649.                 mov        [ebp+var_8], eax
    650.                 mov        eax, [ebp+var_8]
    651.                 mov        ebx, [ebp+var_C]
    652.                 mov        ecx, [ebp+var_10]
    653.                 xor        eax, ebx
    654.                 xor        eax, ecx
    655.                 add        eax, [ebp+var_4]
    656.                 add        eax, [edi+24h]
    657.                 add        eax, 0D9D4D039h
    658.                 mov        cl, 4
    659.                 rol        eax, cl
    660.                 add        eax, [ebp+var_8]
    661.                 mov        [ebp+var_4], eax
    662.                 mov        eax, [ebp+var_4]
    663.                 mov        ebx, [ebp+var_8]
    664.                 mov        ecx, [ebp+var_C]
    665.                 xor        eax, ebx
    666.                 xor        eax, ecx
    667.                 add        eax, [ebp+var_10]
    668.                 add        eax, [edi+30h]
    669.                 add        eax, 0E6DB99E5h
    670.                 mov        cl, 0Bh
    671.                 rol        eax, cl
    672.                 add        eax, [ebp+var_4]
    673.                 mov        [ebp+var_10], eax
    674.                 mov        eax, [ebp+var_10]
    675.                 mov        ebx, [ebp+var_4]
    676.                 mov        ecx, [ebp+var_8]
    677.                 xor        eax, ebx
    678.                 xor        eax, ecx
    679.                 add        eax, [ebp+var_C]
    680.                 add        eax, [edi+3Ch]
    681.                 add        eax, 1FA27CF8h
    682.                 mov        cl, 10h
    683.                 rol        eax, cl
    684.                 add        eax, [ebp+var_10]
    685.                 mov        [ebp+var_C], eax
    686.                 mov        eax, [ebp+var_C]
    687.                 mov        ebx, [ebp+var_10]
    688.                 mov        ecx, [ebp+var_4]
    689.                 xor        eax, ebx
    690.                 xor        eax, ecx
    691.                 add        eax, [ebp+var_8]
    692.                 add        eax, [edi+8]
    693.                 add        eax, 0C4AC5665h
    694.                 mov        cl, 17h
    695.                 rol        eax, cl
    696.                 add        eax, [ebp+var_C]
    697.                 mov        [ebp+var_8], eax
    698.                 mov        eax, [ebp+var_8]
    699.                 mov        ebx, [ebp+var_C]
    700.                 mov        ecx, [ebp+var_10]
    701.                 not        ecx
    702.                 or        eax, ecx
    703.                 xor        eax, ebx
    704.                 add        eax, [ebp+var_4]
    705.                 add        eax, [edi]
    706.                 add        eax, 0F4292244h
    707.                 mov        cl, 6
    708.                 rol        eax, cl
    709.                 add        eax, [ebp+var_8]
    710.                 mov        [ebp+var_4], eax
    711.                 mov        eax, [ebp+var_4]
    712.                 mov        ebx, [ebp+var_8]
    713.                 mov        ecx, [ebp+var_C]
    714.                 not        ecx
    715.                 or        eax, ecx
    716.                 xor        eax, ebx
    717.                 add        eax, [ebp+var_10]
    718.                 add        eax, [edi+1Ch]
    719.                 add        eax, 432AFF97h
    720.                 mov        cl, 0Ah
    721.                 rol        eax, cl
    722.                 add        eax, [ebp+var_4]
    723.                 mov        [ebp+var_10], eax
    724.                 mov        eax, [ebp+var_10]
    725.                 mov        ebx, [ebp+var_4]
    726.                 mov        ecx, [ebp+var_8]
    727.                 not        ecx
    728.                 or        eax, ecx
    729.                 xor        eax, ebx
    730.                 add        eax, [ebp+var_C]
    731.                 add        eax, [edi+38h]
    732.                 add        eax, 0AB9423A7h
    733.                 mov        cl, 0Fh
    734.                 rol        eax, cl
    735.                 add        eax, [ebp+var_10]
    736.                 mov        [ebp+var_C], eax
    737.                 mov        eax, [ebp+var_C]
    738.                 mov        ebx, [ebp+var_10]
    739.                 mov        ecx, [ebp+var_4]
    740.                 not        ecx
    741.                 or        eax, ecx
    742.                 xor        eax, ebx
    743.                 add        eax, [ebp+var_8]
    744.                 add        eax, [edi+14h]
    745.                 add        eax, 0FC93A039h
    746.                 mov        cl, 15h
    747.                 rol        eax, cl
    748.                 add        eax, [ebp+var_C]
    749.                 mov        [ebp+var_8], eax
    750.                 mov        eax, [ebp+var_8]
    751.                 mov        ebx, [ebp+var_C]
    752.                 mov        ecx, [ebp+var_10]
    753.                 not        ecx
    754.                 or        eax, ecx
    755.                 xor        eax, ebx
    756.                 add        eax, [ebp+var_4]
    757.                 add        eax, [edi+30h]
    758.                 add        eax, 655B59C3h
    759.                 mov        cl, 6
    760.                 rol        eax, cl
    761.                 add        eax, [ebp+var_8]
    762.                 mov        [ebp+var_4], eax
    763.                 mov        eax, [ebp+var_4]
    764.                 mov        ebx, [ebp+var_8]
    765.                 mov        ecx, [ebp+var_C]
    766.                 not        ecx
    767.                 or        eax, ecx
    768.                 xor        eax, ebx
    769.                 add        eax, [ebp+var_10]
    770.                 add        eax, [edi+0Ch]
    771.                 add        eax, 8F0CCC92h
    772.                 mov        cl, 0Ah
    773.                 rol        eax, cl
    774.                 add        eax, [ebp+var_4]
    775.                 mov        [ebp+var_10], eax
    776.                 mov        eax, [ebp+var_10]
    777.                 mov        ebx, [ebp+var_4]
    778.                 mov        ecx, [ebp+var_8]
    779.                 not        ecx
    780.                 or        eax, ecx
    781.                 xor        eax, ebx
    782.                 add        eax, [ebp+var_C]
    783.                 add        eax, [edi+28h]
    784.                 add        eax, 0FFEFF47Dh
    785.                 mov        cl, 0Fh
    786.                 rol        eax, cl
    787.                 add        eax, [ebp+var_10]
    788.                 mov        [ebp+var_C], eax
    789.                 mov        eax, [ebp+var_C]
    790.                 mov        ebx, [ebp+var_10]
    791.                 mov        ecx, [ebp+var_4]
    792.                 not        ecx
    793.                 or        eax, ecx
    794.                 xor        eax, ebx
    795.                 add        eax, [ebp+var_8]
    796.                 add        eax, [edi+4]
    797.                 add        eax, 85845DD1h
    798.                 mov        cl, 15h
    799.                 rol        eax, cl
    800.                 add        eax, [ebp+var_C]
    801.                 mov        [ebp+var_8], eax
    802.                 mov        eax, [ebp+var_8]
    803.                 mov        ebx, [ebp+var_C]
    804.                 mov        ecx, [ebp+var_10]
    805.                 not        ecx
    806.                 or        eax, ecx
    807.                 xor        eax, ebx
    808.                 add        eax, [ebp+var_4]
    809.                 add        eax, [edi+20h]
    810.                 add        eax, 6FA87E4Fh
    811.                 mov        cl, 6
    812.                 rol        eax, cl
    813.                 add        eax, [ebp+var_8]
    814.                 mov        [ebp+var_4], eax
    815.                 mov        eax, [ebp+var_4]
    816.                 mov        ebx, [ebp+var_8]
    817.                 mov        ecx, [ebp+var_C]
    818.                 not        ecx
    819.                 or        eax, ecx
    820.                 xor        eax, ebx
    821.                 add        eax, [ebp+var_10]
    822.                 add        eax, [edi+3Ch]
    823.                 add        eax, 0FE2CE6E0h
    824.                 mov        cl, 0Ah
    825.                 rol        eax, cl
    826.                 add        eax, [ebp+var_4]
    827.                 mov        [ebp+var_10], eax
    828.                 mov        eax, [ebp+var_10]
    829.                 mov        ebx, [ebp+var_4]
    830.                 mov        ecx, [ebp+var_8]
    831.                 not        ecx
    832.                 or        eax, ecx
    833.                 xor        eax, ebx
    834.                 add        eax, [ebp+var_C]
    835.                 add        eax, [edi+18h]
    836.                 add        eax, 0A3014314h
    837.                 mov        cl, 0Fh
    838.                 rol        eax, cl
    839.                 add        eax, [ebp+var_10]
    840.                 mov        [ebp+var_C], eax
    841.                 mov        eax, [ebp+var_C]
    842.                 mov        ebx, [ebp+var_10]
    843.                 mov        ecx, [ebp+var_4]
    844.                 not        ecx
    845.                 or        eax, ecx
    846.                 xor        eax, ebx
    847.                 add        eax, [ebp+var_8]
    848.                 add        eax, [edi+34h]
    849.                 add        eax, 4E0811A1h
    850.                 mov        cl, 15h
    851.                 rol        eax, cl
    852.                 add        eax, [ebp+var_C]
    853.                 mov        [ebp+var_8], eax
    854.                 mov        eax, [ebp+var_8]
    855.                 mov        ebx, [ebp+var_C]
    856.                 mov        ecx, [ebp+var_10]
    857.                 not        ecx
    858.                 or        eax, ecx
    859.                 xor        eax, ebx
    860.                 add        eax, [ebp+var_4]
    861.                 add        eax, [edi+10h]
    862.                 add        eax, 0F7537E82h
    863.                 mov        cl, 6
    864.                 rol        eax, cl
    865.                 add        eax, [ebp+var_8]
    866.                 mov        [ebp+var_4], eax
    867.                 mov        eax, [ebp+var_4]
    868.                 mov        ebx, [ebp+var_8]
    869.                 mov        ecx, [ebp+var_C]
    870.                 not        ecx
    871.                 or        eax, ecx
    872.                 xor        eax, ebx
    873.                 add        eax, [ebp+var_10]
    874.                 add        eax, [edi+2Ch]
    875.                 add        eax, 0BD3AF235h
    876.                 mov        cl, 0Ah
    877.                 rol        eax, cl
    878.                 add        eax, [ebp+var_4]
    879.                 mov        [ebp+var_10], eax
    880.                 mov        eax, [ebp+var_10]
    881.                 mov        ebx, [ebp+var_4]
    882.                 mov        ecx, [ebp+var_8]
    883.                 not        ecx
    884.                 or        eax, ecx
    885.                 xor        eax, ebx
    886.                 add        eax, [ebp+var_C]
    887.                 add        eax, [edi+8]
    888.                 add        eax, 2AD7D2BBh
    889.                 mov        cl, 0Fh
    890.                 rol        eax, cl
    891.                 add        eax, [ebp+var_10]
    892.                 mov        [ebp+var_C], eax
    893.                 mov        eax, [ebp+var_C]
    894.                 mov        ebx, [ebp+var_10]
    895.                 mov        ecx, [ebp+var_4]
    896.                 not        ecx
    897.                 or        eax, ecx
    898.                 xor        eax, ebx
    899.                 add        eax, [ebp+var_8]
    900.                 add        eax, [edi+24h]
    901.                 add        eax, 0EB86D391h
    902.                 mov        cl, 15h
    903.                 rol        eax, cl
    904.                 add        eax, [ebp+var_C]
    905.                 mov        [ebp+var_8], eax
    906.                 mov        eax, [ebp+var_4]
    907.                 add        [esi], eax
    908.                 mov        eax, [ebp+var_8]
    909.                 add        [esi+4], eax
    910.                 mov        eax, [ebp+var_C]
    911.                 add        [esi+8], eax
    912.                 mov        eax, [ebp+var_10]
    913.                 add        [esi+0Ch], eax
    914.                 add        edi, 40h
    915.                 sub        edx, 40h
    916.                 jnz        loc_40106F
    917.                 mov        ecx, 4

    918. loc_4019CA:                                ; CODE XREF: sub_401000+9D8j
    919.                 mov        eax, [esi]
    920.                 xchg        al, ah
    921.                 rol        eax, 10h
    922.                 xchg        al, ah
    923.                 mov        [esi], eax
    924.                 add        esi, 4
    925.                 loop        loc_4019CA
    926.                 pop        esi
    927.                 pop        edi
    928.                 pop        edx
    929.                 pop        ecx
    930.                 pop        ebx
    931.                 pop        eax
    932.                 leave
    933.                 retn        0Ch
    934. MD5        endp
    复制代码
             .text:00401B18                 call    sub_401B79      ; 格式MD5算出的字串去这个函数看看吧!
    1. void __spoils<ecx> sub_401B79()
    2. {
    3.   int v0; // ebx@1

    4.   v0 = dword_4056A8[1];  //  取出MD5算岀的第2组数据
    5.   wsprintfA(byte_4079D0, a_8x, v0 ^ dword_4056A8[0]); // 第一组和第二组 XOR 并格化保存到 byte_4079D0
    6.   v0 ^= 0xFBD0099u;   
    7.   wsprintfA(&byte_4079D0[8], a_8x, v0); // 第一组与0xFBD0099u XOR 并格化保存到 byte_4079D0[8]
    8.   wsprintfA(&byte_4079D0[16], a_8x, v0 ^ dword_4056A8[2]);//第一组与第三组XOR 并格化保存到 byte_4079D0[16]
    9.   wsprintfA(&byte_4079D0[24], a_8x, dword_4056A8[3]);  // 第四组格化保存到 byte_4079D0[24]
    10. }
    复制代码
           也提取一下代码,偷懒
    1. ; =============== S U B        R O U T        I N E =======================================


    2. sub_401B79        proc near                ; CODE XREF: DialogFunc+109p
    3.                 pusha
    4.                 mov        edi, offset byte_4079D0
    5.                 mov        esi, offset unk_4056A8
    6.                 mov        eax, [esi]
    7.                 mov        ebx, [esi+4]
    8.                 xor        eax, ebx
    9.                 push        eax
    10.                 push        offset a_8x        ; "%.8X"
    11.                 push        edi                ; LPSTR
    12.                 call        wsprintfA
    13.                 add        esp, 0Ch
    14.                 add        edi, 8
    15.                 xor        ebx, 0FBD0099h
    16.                 push        ebx
    17.                 push        offset a_8x        ; "%.8X"
    18.                 push        edi                ; LPSTR
    19.                 call        wsprintfA
    20.                 add        esp, 0Ch
    21.                 mov        ecx, [esi+8]
    22.                 xor        ecx, ebx
    23.                 add        edi, 8
    24.                 push        ecx
    25.                 push        offset a_8x        ; "%.8X"
    26.                 push        edi                ; LPSTR
    27.                 call        wsprintfA
    28.                 add        esp, 0Ch
    29.                 xor        ebx, 0B0C0A09h
    30.                 mov        edx, [esi+0Ch]
    31.                 add        edi, 8
    32.                 push        edx
    33.                 push        offset a_8x        ; "%.8X"
    34.                 push        edi                ; LPSTR
    35.                 call        wsprintfA
    36.                 add        esp, 0Ch
    37.                 popa
    38.                 retn
    39. sub_401B79        endp
    复制代码
            自已建个工程把代码贴进入去.

            把CM和我的工程文件打包.希望0基础一起学习进步

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?加入我们

    x

    评分

    参与人数 2威望 +8 收起 理由
    一梦千年缘 + 4 赞一个!
    maxwell + 4 很给力!一直不太敢碰这些算法。

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    擦汗
    昨天 19:49
  • 签到天数: 2582 天

    [LV.Master]伴坛终老

    发表于 2015-6-6 20:31:48 | 显示全部楼层
    太感谢了,收藏学习{:soso_e179:}
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2022-7-30 16:46
  • 签到天数: 469 天

    [LV.9]以坛为家II

    发表于 2015-6-7 16:30:01 | 显示全部楼层
    不错呢,学习了
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表