- UID
 - 17574
 
 注册时间2006-7-6
阅读权限40
最后登录1970-1-1
独步武林 
   
 
 
 
该用户从未签到  
 | 
 
****家庭理财非常简单的MD5算法分析 
 
【文章作者】: tzl  
【作者邮箱】: 无 
【软件名称】: ***家庭理财 
【软件大小】: 1224KB  
【下载地址】: http://www.newhua.com/soft/52975.htm 
【加壳方式】: 无 
【保护方式】: 注册码 
【编写语言】: Microsoft Visual C++ 7.0 
【使用工具】: OD PEID 
【操作平台】: XP SP2 
【软件介绍】:  
***家庭理财是帮助个人、 家庭、小型企业理财的好帮手,能很方便的知道客户消费了多少钱,收入多少钱,现有现金多少,存款多少。能快速的满足客户的各种统计需求! 
 
非常简单的算法,适合菜鸟学习,这里与大家分享,菜鸟共同进步。 
 
一、查壳无; 
 
二、根据字符串相关信息,我们可以在这里下断开始分析: 
 
注册名:tigerisme 
地区:*** 
邮箱:[email protected] 
注册日期:20061121 
密码:123456789 
 
00452EBC   .  55            push    ebp 
00452EBD   .  56            push    esi 
00452EBE   .  8BF1          mov     esi, ecx 
00452EC0   .  57            push    edi 
00452EC1   .  8D4C24 20     lea     ecx, dword ptr [esp+20] 
00452EC5   .  E8 308A0000   call    <jmp.&MFC42.#540> 
00452ECA   .  8D4C24 14     lea     ecx, dword ptr [esp+14] 
00452ECE   .  C78424 240100>mov     dword ptr [esp+124], 0 
00452ED9   .  E8 1C8A0000   call    <jmp.&MFC42.#540> 
00452EDE   .  8D4C24 1C     lea     ecx, dword ptr [esp+1C] 
00452EE2   .  C68424 240100>mov     byte ptr [esp+124], 1 
00452EEA   .  E8 0B8A0000   call    <jmp.&MFC42.#540> 
00452EEF   .  8D4C24 10     lea     ecx, dword ptr [esp+10] 
00452EF3   .  C68424 240100>mov     byte ptr [esp+124], 2 
00452EFB   .  E8 FA890000   call    <jmp.&MFC42.#540> 
00452F00   .  8D4C24 18     lea     ecx, dword ptr [esp+18] 
00452F04   .  C68424 240100>mov     byte ptr [esp+124], 3 
00452F0C   .  E8 E9890000   call    <jmp.&MFC42.#540> 
00452F11   .  8D4424 20     lea     eax, dword ptr [esp+20] 
00452F15   .  8BCE          mov     ecx, esi 
00452F17   .  50            push    eax 
00452F18   .  68 2B040000   push    42B 
00452F1D   .  C68424 2C0100>mov     byte ptr [esp+12C], 4 
00452F25   .  E8 4A8B0000   call    <jmp.&MFC42.#3097> 
00452F2A   .  8D4C24 14     lea     ecx, dword ptr [esp+14]          ;  ecx=tigerisme 
00452F2E   .  51            push    ecx 
00452F2F   .  68 2D040000   push    42D 
00452F34   .  8BCE          mov     ecx, esi 
00452F36   .  E8 398B0000   call    <jmp.&MFC42.#3097> 
00452F3B   .  8D5424 1C     lea     edx, dword ptr [esp+1C]          ;  [email protected] 
00452F3F   .  8BCE          mov     ecx, esi 
00452F41   .  52            push    edx 
00452F42   .  68 2E040000   push    42E 
00452F47   .  E8 288B0000   call    <jmp.&MFC42.#3097> 
00452F4C   .  8D4424 10     lea     eax, dword ptr [esp+10] 
00452F50   .  8BCE          mov     ecx, esi 
00452F52   .  50            push    eax 
00452F53   .  68 2F040000   push    42F 
00452F58   .  E8 178B0000   call    <jmp.&MFC42.#3097> 
00452F5D   .  8D4C24 18     lea     ecx, dword ptr [esp+18]          ;  ecx=20061121 
00452F61   .  51            push    ecx 
00452F62   .  68 30040000   push    430 
00452F67   .  8BCE          mov     ecx, esi 
00452F69   .  E8 068B0000   call    <jmp.&MFC42.#3097> 
00452F6E   .  8B5424 20     mov     edx, dword ptr [esp+20] 
00452F72   .  8B3D 84894600 mov     edi, dword ptr [<&MSVCRT._mbscmp>;  msvcrt._mbscmp 
00452F78   .  68 80E24700   push    0047E280                         ; /s2 = "" 
00452F7D   .  52            push    edx                              ; |s1 
00452F7E   .  FFD7          call    edi                              ; \_mbscmp 
00452F80   .  83C4 08       add     esp, 8 
00452F83   .  85C0          test    eax, eax 
00452F85   .  74 4C         je      short 00452FD3                   ;  检测注册信息是否为空 
00452F87   .  8B4424 14     mov     eax, dword ptr [esp+14]          ;  “[email protected]",送eax 
00452F8B   .  68 80E24700   push    0047E280 
00452F90   .  50            push    eax 
00452F91   .  FFD7          call    edi 
00452F93   .  83C4 08       add     esp, 8 
00452F96   .  85C0          test    eax, eax 
00452F98   .  74 39         je      short 00452FD3                   ;  检测注册信息是否为空 
00452F9A   .  8B4C24 1C     mov     ecx, dword ptr [esp+1C] 
00452F9E   .  68 80E24700   push    0047E280 
00452FA3   .  51            push    ecx 
00452FA4   .  FFD7          call    edi 
00452FA6   .  83C4 08       add     esp, 8 
00452FA9   .  85C0          test    eax, eax 
00452FAB   .  74 26         je      short 00452FD3                   ;  检测注册信息是否为空 
00452FAD   .  8B5424 10     mov     edx, dword ptr [esp+10] 
00452FB1   .  68 80E24700   push    0047E280 
00452FB6   .  52            push    edx 
00452FB7   .  FFD7          call    edi 
00452FB9   .  83C4 08       add     esp, 8 
00452FBC   .  85C0          test    eax, eax 
00452FBE   .  74 13         je      short 00452FD3                   ;  检测注册信息是否为空 
00452FC0   .  8B4424 18     mov     eax, dword ptr [esp+18] 
00452FC4   .  68 80E24700   push    0047E280 
00452FC9   .  50            push    eax 
00452FCA   .  FFD7          call    edi 
00452FCC   .  83C4 08       add     esp, 8 
00452FCF   .  85C0          test    eax, eax 
00452FD1   .  75 10         jnz     short 00452FE3                   ;  检测注册信息是否为空,不为空正常跳转 
00452FD3   >  6A 00         push    0 
00452FD5   .  6A 00         push    0 
00452FD7   .  68 38DF4700   push    0047DF38                         ;  尊敬的客户!你需要在右边的网站上注册后,正确的填写用户、邮箱、地区、注册日期和取得的密码就可以注册啦! 
00452FDC   .  8BCE          mov     ecx, esi 
00452FDE   .  E8 AD890000   call    <jmp.&MFC42.#4224> 
00452FE3   >  8D4C24 10     lea     ecx, dword ptr [esp+10] 
00452FE7   .  E8 68890000   call    <jmp.&MFC42.#6282> 
00452FEC   .  8D4C24 10     lea     ecx, dword ptr [esp+10] 
00452FF0   .  E8 59890000   call    <jmp.&MFC42.#6283> 
00452FF5   .  8D4C24 14     lea     ecx, dword ptr [esp+14] 
00452FF9   .  E8 56890000   call    <jmp.&MFC42.#6282> 
00452FFE   .  8D4C24 14     lea     ecx, dword ptr [esp+14] 
00453002   .  E8 47890000   call    <jmp.&MFC42.#6283> 
00453007   .  B9 10000000   mov     ecx, 10 
0045300C   .  33C0          xor     eax, eax 
0045300E   .  8D7C24 55     lea     edi, dword ptr [esp+55] 
00453012   .  C64424 54 00  mov     byte ptr [esp+54], 0 
00453017   .  F3:AB         rep     stos dword ptr es:[edi] 
00453019   .  8D4C24 2C     lea     ecx, dword ptr [esp+2C] 
0045301D   .  8D6E 60       lea     ebp, dword ptr [esi+60] 
00453020   .  E8 D5880000   call    <jmp.&MFC42.#540> 
00453025   .  8D4C24 24     lea     ecx, dword ptr [esp+24] 
00453029   .  C68424 240100>mov     byte ptr [esp+124], 5 
00453031   .  E8 C4880000   call    <jmp.&MFC42.#540> 
00453036   .  8D4C24 10     lea     ecx, dword ptr [esp+10] 
0045303A   .  68 30DF4700   push    0047DF30                         ;  fuck,计算注册码时用到,用这个连接符真BT! 
0045303F   .  8D5424 2C     lea     edx, dword ptr [esp+2C] 
00453043   .  B3 06         mov     bl, 6 
00453045   .  51            push    ecx 
00453046   .  52            push    edx 
00453047   .  889C24 300100>mov     byte ptr [esp+130], bl 
0045304E   .  E8 8D8A0000   call    <jmp.&MFC42.#924> 
00453053   .  8D4C24 14     lea     ecx, dword ptr [esp+14] 
00453057   .  8D5424 34     lea     edx, dword ptr [esp+34] 
0045305B   .  51            push    ecx 
0045305C   .  50            push    eax 
0045305D   .  52            push    edx 
0045305E   .  C68424 300100>mov     byte ptr [esp+130], 7 
00453066   .  E8 37890000   call    <jmp.&MFC42.#922> 
0045306B   .  50            push    eax 
0045306C   .  8D4C24 30     lea     ecx, dword ptr [esp+30] 
00453070   .  C68424 280100>mov     byte ptr [esp+128], 8 
00453078   .  E8 F5880000   call    <jmp.&MFC42.#858> 
0045307D   .  8D4C24 34     lea     ecx, dword ptr [esp+34] 
00453081   .  C68424 240100>mov     byte ptr [esp+124], 7 
00453089   .  E8 3C880000   call    <jmp.&MFC42.#800> 
0045308E   .  8D4C24 28     lea     ecx, dword ptr [esp+28] 
00453092   .  889C24 240100>mov     byte ptr [esp+124], bl 
00453099   .  E8 2C880000   call    <jmp.&MFC42.#800> 
0045309E   .  8B45 00       mov     eax, dword ptr [ebp] 
004530A1   .  8BCD          mov     ecx, ebp 
004530A3   .  FF50 0C       call    dword ptr [eax+C]                ;  call运算,将注册日期、fuck及注册邮箱连接起来 
004530A6   .  8B4424 2C     mov     eax, dword ptr [esp+2C]          ;  连起来的字符串为"[email protected]" 
004530AA   .  8B55 00       mov     edx, dword ptr [ebp] 
004530AD   .  8B48 F8       mov     ecx, dword ptr [eax-8] 
004530B0   .  51            push    ecx 
004530B1   .  50            push    eax 
004530B2   .  8BCD          mov     ecx, ebp 
004530B4   .  FF52 04       call    dword ptr [edx+4] 
004530B7   .  8B45 00       mov     eax, dword ptr [ebp] 
004530BA   .  8D4C24 54     lea     ecx, dword ptr [esp+54] 
004530BE   .  51            push    ecx 
004530BF   .  8BCD          mov     ecx, ebp 
004530C1   .  FF50 08       call    dword ptr [eax+8] 
004530C4   .  B9 20000000   mov     ecx, 20 
004530C9   .  33C0          xor     eax, eax 
004530CB   .  8DBC24 990000>lea     edi, dword ptr [esp+99] 
004530D2   .  C68424 980000>mov     byte ptr [esp+98], 0 
004530DA   .  8D9424 980000>lea     edx, dword ptr [esp+98] 
004530E1   .  F3:AB         rep     stos dword ptr es:[edi] 
004530E3   .  52            push    edx 
004530E4   .  8D4424 58     lea     eax, dword ptr [esp+58] 
004530E8   .  6A 10         push    10 
004530EA   .  50            push    eax 
004530EB   .  E8 40FDFFFF   call    00452E30                         ;  MD5运算,即MD5([email protected]),有兴趣可以进去看看 
004530F0   .  8B5424 24     mov     edx, dword ptr [esp+24] 
004530F4   .  8D8C24 A40000>lea     ecx, dword ptr [esp+A4] 
004530FB   .  51            push    ecx                              ; /MD5结果为“B3EE0D943618B2EB238E9D6F35BCF746”,放在ecx中 
004530FC   .  52            push    edx                              ; |edx=试练码“123456789” 
004530FD   .  FF15 84894600 call    dword ptr [<&MSVCRT._mbscmp>]    ; \_mbscmp 
00453103   .  83C4 14       add     esp, 14 
00453106   .  85C0          test    eax, eax 
00453108   .  0F85 F0020000 jnz     004533FE                         ;  关键跳转,爆破点 
0045310E   .  8D4424 20     lea     eax, dword ptr [esp+20] 
00453112   .  8D4C24 30     lea     ecx, dword ptr [esp+30] 
********************************************************************************************** 
算法总结: 
 
软件采算法非常简单,注册码=MD5(注册日期+fuck+注册邮箱),取32位大写。软件作者真BT,算法简单,还加个BT的连接符。 
 
特别说明: 本文仅是一些破解的心得和思路,完全是个人对程序的研究,无其他目的。 |   
 
 
 
 |