creantan 发表于 2009-2-21 19:14

WebTalker .NET Version2.2菜鸟级算法分析

【文章标题】: WebTalker .NET Version2.2菜鸟级算法分析
【文章作者】: creantan
【作者邮箱】: creantan@126.com
【作者主页】: www.crack-me.com
【软件名称】: WebTalker
【下载地址】: 自己搜索下载
【软件介绍】: 为一款录音,播放,以及帮你把声音文件加到你网站,电子邮件和新闻报道的专用工具,
它还可使你通常使用的聊天操作变得更容易和更快!
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
本来想找个C#的程序玩的。。。看他名字好像是。。
可是下载下来后一看是Borland Delphi的刚开始以为加了壳
结果一看就是Delphi的。。上当了。。汗汗
看了下算法很适合新手朋友。。。老鸟别笑哈。。可以飞过了。。。
00542FF0/.55            push    ebp      
00542FF1|.8BEC          mov   ebp, esp
00542FF3|.33C9          xor   ecx, ecx
00542FF5|.51            push    ecx
00542FF6|.51            push    ecx
00542FF7|.51            push    ecx
00542FF8|.51            push    ecx
00542FF9|.51            push    ecx
00542FFA|.53            push    ebx
00542FFB|.8BD8          mov   ebx, eax
00542FFD|.33C0          xor   eax, eax
00542FFF|.55            push    ebp
00543000|.68 AC315400   push    005431AC
00543005|.64:FF30       push    dword ptr fs:
00543008|.64:8920       mov   dword ptr fs:, esp
0054300B|.8D55 FC       lea   edx, dword ptr
0054300E|.8B83 10030000 mov   eax, dword ptr
00543014|.E8 0B54F1FF   call    00458424                         ;取用户邮箱
00543019|.837D FC 00    cmp   dword ptr , 0             ;判断是否为空
0054301D|.75 44         jnz   short 00543063                   ;为空的话显示“No Email Provied”错误提示
0054301F|.6A 00         push    0
00543021|.DB43 48       fild    dword ptr
00543024|.D835 B8315400 fdiv    dword ptr
0054302A|.E8 85FDEBFF   call    00402DB4
0054302F|.0343 40       add   eax, dword ptr
00543032|.83E8 50       sub   eax, 50
00543035|.50            push    eax
00543036|.DB43 4C       fild    dword ptr
00543039|.D835 B8315400 fdiv    dword ptr
0054303F|.E8 70FDEBFF   call    00402DB4
00543044|.0343 44       add   eax, dword ptr
00543047|.83E8 1E       sub   eax, 1E
0054304A|.50            push    eax
0054304B|.66:8B0D BC315>mov   cx, word ptr
00543052|.B2 01         mov   dl, 1
00543054|.A1 88965500   mov   eax, dword ptr
00543059|.E8 3E18EFFF   call    0043489C
0054305E|.E9 2E010000   jmp   00543191
00543063|>8D55 F8       lea   edx, dword ptr
00543066|.8B83 10030000 mov   eax, dword ptr
0054306C|.E8 B353F1FF   call    00458424
00543071|.8B45 F8       mov   eax, dword ptr
00543074|.E8 4B1CECFF   call    00404CC4                         ;取邮箱字符串长度
00543079|.83F8 0A       cmp   eax, 0A                        ;与长度10比较
0054307C|.7D 44         jge   short 005430C2                   ;小于的话显示“Email must be at least 10 chars long!”错误提示
0054307E|.6A 00         push    0
00543080|.DB43 48       fild    dword ptr
00543083|.D835 B8315400 fdiv    dword ptr
00543089|.E8 26FDEBFF   call    00402DB4
0054308E|.0343 40       add   eax, dword ptr
00543091|.83E8 50       sub   eax, 50
00543094|.50            push    eax
00543095|.DB43 4C       fild    dword ptr
00543098|.D835 B8315400 fdiv    dword ptr
0054309E|.E8 11FDEBFF   call    00402DB4
005430A3|.0343 44       add   eax, dword ptr
005430A6|.83E8 1E       sub   eax, 1E
005430A9|.50            push    eax
005430AA|.66:8B0D BC315>mov   cx, word ptr
005430B1|.B2 01         mov   dl, 1
005430B3|.A1 8C965500   mov   eax, dword ptr
005430B8|.E8 DF17EFFF   call    0043489C
005430BD|.E9 CF000000   jmp   00543191
005430C2|>8D55 F4       lea   edx, dword ptr
005430C5|.8B83 04030000 mov   eax, dword ptr
005430CB|.E8 5453F1FF   call    00458424                         ;取假码
005430D0|.837D F4 00    cmp   dword ptr , 0             ;判断是否为空
005430D4|.75 41         jnz   short 00543117                   ;为空的话显示“No Key Provided”错误提示
005430D6|.6A 00         push    0
005430D8|.DB43 48       fild    dword ptr
005430DB|.D835 B8315400 fdiv    dword ptr
005430E1|.E8 CEFCEBFF   call    00402DB4
005430E6|.0343 40       add   eax, dword ptr
005430E9|.83E8 50       sub   eax, 50
005430EC|.50            push    eax
005430ED|.DB43 4C       fild    dword ptr
005430F0|.D835 B8315400 fdiv    dword ptr
005430F6|.E8 B9FCEBFF   call    00402DB4
005430FB|.0343 44       add   eax, dword ptr
005430FE|.83E8 1E       sub   eax, 1E
00543101|.50            push    eax
00543102|.66:8B0D BC315>mov   cx, word ptr
00543109|.B2 01         mov   dl, 1
0054310B|.A1 90965500   mov   eax, dword ptr
00543110|.E8 8717EFFF   call    0043489C
00543115|.EB 7A         jmp   short 00543191
00543117|>8D55 F0       lea   edx, dword ptr
0054311A|.8B83 04030000 mov   eax, dword ptr
00543120|.E8 FF52F1FF   call    00458424
00543125|.8B45 F0       mov   eax, dword ptr
00543128|.50            push    eax
00543129|.8D55 EC       lea   edx, dword ptr
0054312C|.8B83 10030000 mov   eax, dword ptr
00543132|.E8 ED52F1FF   call    00458424
00543137|.8B55 EC       mov   edx, dword ptr
0054313A|.8BC3          mov   eax, ebx
0054313C|.59            pop   ecx
0054313D|.E8 7E000000   call    005431C0                         ;关键CALL。。。F7跟入
00543142|.84C0          test    al, al
00543144|.75 41         jnz   short 00543187
00543146|.6A 00         push    0
00543148|.DB43 48       fild    dword ptr
0054314B|.D835 B8315400 fdiv    dword ptr
00543151|.E8 5EFCEBFF   call    00402DB4
00543156|.0343 40       add   eax, dword ptr
00543159|.83E8 50       sub   eax, 50
0054315C|.50            push    eax
0054315D|.DB43 4C       fild    dword ptr
00543160|.D835 B8315400 fdiv    dword ptr
00543166|.E8 49FCEBFF   call    00402DB4
0054316B|.0343 44       add   eax, dword ptr
0054316E|.83E8 1E       sub   eax, 1E
00543171|.50            push    eax
00543172|.66:8B0D BC315>mov   cx, word ptr
00543179|.B2 01         mov   dl, 1
0054317B|.A1 94965500   mov   eax, dword ptr
00543180|.E8 1717EFFF   call    0043489C
00543185|.EB 0A         jmp   short 00543191
00543187|>C783 4C020000>mov   dword ptr , 1
00543191|>33C0          xor   eax, eax
00543193|.5A            pop   edx
00543194|.59            pop   ecx
00543195|.59            pop   ecx
00543196|.64:8910       mov   dword ptr fs:, edx
00543199|.68 B3315400   push    005431B3
0054319E|>8D45 EC       lea   eax, dword ptr
005431A1|.BA 05000000   mov   edx, 5
005431A6|.E8 6D18ECFF   call    00404A18
005431AB\.C3            retn

005431C0/$55            push    ebp
005431C1|.8BEC          mov   ebp, esp
005431C3|.6A 00         push    0
005431C5|.6A 00         push    0
005431C7|.6A 00         push    0
005431C9|.6A 00         push    0
005431CB|.6A 00         push    0
005431CD|.6A 00         push    0
005431CF|.6A 00         push    0
005431D1|.53            push    ebx
005431D2|.56            push    esi
005431D3|.57            push    edi
005431D4|.894D F8       mov   dword ptr , ecx
005431D7|.8955 FC       mov   dword ptr , edx
005431DA|.8B45 FC       mov   eax, dword ptr
005431DD|.E8 D21CECFF   call    00404EB4
005431E2|.8B45 F8       mov   eax, dword ptr
005431E5|.E8 CA1CECFF   call    00404EB4
005431EA|.33C0          xor   eax, eax
005431EC|.55            push    ebp
005431ED|.68 AE325400   push    005432AE
005431F2|.64:FF30       push    dword ptr fs:
005431F5|.64:8920       mov   dword ptr fs:, esp
005431F8|.BF C8010000   mov   edi, 1C8                         ;edi=0x1c8
005431FD|.BE 48E80100   mov   esi, 1E848                     ;esi=0x1e848
00543202|.8D45 F0       lea   eax, dword ptr
00543205|.BA C8325400   mov   edx, 005432C8                  ;ASCII "TSI"
0054320A|.E8 7D18ECFF   call    00404A8C
0054320F|.8D45 EC       lea   eax, dword ptr
00543212|.BA D4325400   mov   edx, 005432D4                  ;ASCII "WTN"
00543217|.E8 7018ECFF   call    00404A8C
0054321C|.FF75 F0       push    dword ptr
0054321F|.FF75 FC       push    dword ptr
00543222|.FF75 EC       push    dword ptr
00543225|.8D45 F4       lea   eax, dword ptr
00543228|.BA 03000000   mov   edx, 3
0054322D|.E8 521BECFF   call    00404D84                         ;“TSI”+邮箱+“WTN”
00543232|.8B45 F4       mov   eax, dword ptr          ;TSIcreantan@126.comWTN
00543235|.E8 8A1AECFF   call    00404CC4
0054323A|.84C0          test    al, al                           ;取连接后的字符串长度
0054323C|.76 18         jbe   short 00543256
0054323E|.B2 01         mov   dl, 1                            ;dl=1
00543240|>33C9          /xor   ecx, ecx
00543242|.8ACA          |mov   cl, dl
00543244|.8B5D F4       |mov   ebx, dword ptr
00543247|.0FB64C0B FF   |movzx   ecx, byte ptr        ;ecx *= edi
0054324C|.0FAFCF      |imul    ecx, edi                        ;esi += ecx
0054324F|.03F1          |add   esi, ecx
00543251|.42            |inc   edx
00543252|.FEC8          |dec   al
00543254|.^ 75 EA         \jnz   short 00543240                  ;esi的值
00543256|>FF75 F0       push    dword ptr                ;ASCII "TSI"
00543259|.68 E0325400   push    005432E0
0054325E|.FF75 EC       push    dword ptr                ;ASCII "WTN"
00543261|.68 E0325400   push    005432E0
00543266|.8D55 E4       lea   edx, dword ptr
00543269|.8BC6          mov   eax, esi
0054326B|.E8 1461ECFF   call    00409384
00543270|.FF75 E4       push    dword ptr
00543273|.8D45 E8       lea   eax, dword ptr
00543276|.BA 05000000   mov   edx, 5
0054327B|.E8 041BECFF   call    00404D84                        ;字符串连接"TSI-WTN-"+ESI十进制值
00543280|.8B45 E8       mov   eax, dword ptr
00543283|.8B55 F8       mov   edx, dword ptr
00543286|.E8 851BECFF   call    00404E10                        ;真假码比较
0054328B|.75 04         jnz   short 00543291                  ;
0054328D|.B3 01         mov   bl, 1                           ;bl = 1
0054328F|.EB 02         jmp   short 00543293
00543291|>33DB          xor   ebx, ebx
00543293|>33C0          xor   eax, eax
00543295|.5A            pop   edx
00543296|.59            pop   ecx
00543297|.59            pop   ecx
00543298|.64:8910       mov   dword ptr fs:, edx
0054329B|.68 B5325400   push    005432B5
005432A0|>8D45 E4       lea   eax, dword ptr
005432A3|.BA 07000000   mov   edx, 7
005432A8|.E8 6B17ECFF   call    00404A18
005432AD\.C3            retn
就这么简单。。。。哈哈。。。

【注册机】
      int addrLen;
        int edi = 0x1c8;
        int esi = 0x1e848;
        CString mark="TSIWTN";
        UpdateData(true);
        addrLen = m_mail.GetLength();
        if(m_mail.IsEmpty())
        {
                MessageBox("No Email Provied!");
                return;
        }
        if(addrLen < 10)
        {
                MessageBox("Email must be at least 10 chars long!");
                return;
        }
        mark.Insert(3,m_mail);
        m_serial = mark;
        addrLen = m_serial.GetLength();
        for(int i = 0;i < addrLen; i++)
        {
                esi +=(m_serial.GetAt(i)*edi);
        }
        m_serial.Format("TSI-WTN-%d",esi);
        UpdateData(false);
程序没有对邮箱格式做检验,只要EMAIL那填入一串长度大于10的字符串也能注册。。。

////////////////////////////////////////////////////////
注册码保存地点:
Software\Tometa Software\WebTalker.net
RegCode   TSI-WTN-998240
RegEmailcreantan@126.com

--------------------------------------------------------------------------------
【版权声明】: 本文原创于creantan, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2009年02月21日 19:08:01

iawen 发表于 2009-2-21 20:05

大牛的作品,膜拜一下!:loveliness:

cshow 发表于 2009-2-21 20:17

我也以为是C#的
转载后才知道不是
页: [1]
查看完整版本: WebTalker .NET Version2.2菜鸟级算法分析