- UID
- 32249
注册时间2007-5-7
阅读权限10
最后登录1970-1-1
周游历练
该用户从未签到
|
【破文标题】运行多个MSN的外挂器算法分析过程
【破文作者】laccer
【作者邮箱】[email protected]
【作者主页】
【破解工具】peid0.94+OD
【破解平台】XPsp2
【软件名称】运行多个MSN的外挂器
【软件大小】224K
【原版下载】http://shareware.skycn.com/soft/7578.htm
【保护方式】注册码
【软件简介】本版本新增加对8.X的支持. MSN多开器本软件绿色软件,无需安装.我们平时是 不是很苦恼一台机器上只能运行一个MSN呢? 这个软件帮你解决烦恼,你就可以象用QQ一样, 想打开几个就打开几个. 使用方法: 直接点击运行。然后每次点击再运行一个MSN,,就可以再打开一个msn了. 更新日期: 2007年08月14日
【破解声明】初学Crack,只是感兴趣,没有其它目的。失误之处敬请诸位大侠赐教!
------------------------------------------------------------------------
【破解过程】用PEID0.94查壳,发现无壳,软件件用Microsoft Visual C++ 6.0写的.
运行输入假码,注册错误提示"注册号无效!"
od载入F9运行
查字符串"注册号无效!"找到双击来到:
00402E85 . 68 1CF24200 PUSH MSN多开?0042F21C ; 注册号无效
向上找到如下:
- 00402DA0 . 6A FF PUSH -1 : 下断
- 00402DA2 . 68 08374200 PUSH MSN多开?00423708 ; SE 处理程序安装
- 00402DA7 . 64:A1 0000000>MOV EAX, DWORD PTR FS:[0]
- 00402DAD . 50 PUSH EAX
- 00402DAE . 64:8925 00000>MOV DWORD PTR FS:[0], ESP
- 00402DB5 . 83EC 08 SUB ESP, 8
- 00402DB8 . 56 PUSH ESI
- 00402DB9 . 8BF1 MOV ESI, ECX
- 00402DBB . 6A 01 PUSH 1
- 00402DBD . E8 D6720100 CALL MSN多开?0041A098
- 00402DC2 . A1 CCF54200 MOV EAX, DWORD PTR DS:[42F5CC] ; 假码
- 00402DC7 . 894424 04 MOV DWORD PTR SS:[ESP+4], EAX
- 00402DCB . 8D8E 1C010000 LEA ECX, DWORD PTR DS:[ESI+11C]
- 00402DD1 . C74424 14 000>MOV DWORD PTR SS:[ESP+14], 0
- 00402DD9 . 51 PUSH ECX
- 00402DDA . 8D4C24 08 LEA ECX, DWORD PTR SS:[ESP+8]
- 00402DDE . E8 74870100 CALL MSN多开?0041B557
- 00402DE3 . 51 PUSH ECX
- 00402DE4 . 8D5424 08 LEA EDX, DWORD PTR SS:[ESP+8] ; 假码地址传到EDX
- 00402DE8 . 8BCC MOV ECX, ESP
- 00402DEA . 896424 0C MOV DWORD PTR SS:[ESP+C], ESP
- 00402DEE . 52 PUSH EDX ; 压入假码地址
- 00402DEF . E8 E3830100 CALL MSN多开?0041B1D7 ; 读取假码
- 00402DF4 . E8 77FEFFFF CALL MSN多开?00402C70 ; 算法CALL
- 00402DF9 . 83C4 04 ADD ESP, 4
- 00402DFC . 85C0 TEST EAX, EAX ; EAX值是否为零
- 00402DFE . 74 1C JE SHORT MSN多开?00402E1C ; 关键跳(EAX值为零OVER)
- 00402E00 . 6A 00 PUSH 0
- 00402E02 . 68 60F24200 PUSH MSN多开?0042F260 ; NGNSSS
- 00402E07 . 68 7CF24200 PUSH MSN多开?0042F27C ; 注册成功
- 00402E0C . 8BCE MOV ECX, ESI
- 00402E0E . E8 296B0100 CALL MSN多开?0041993C
- 00402E13 . 8BCE MOV ECX, ESI
- 00402E15 . E8 609A0100 CALL MSN多开?0041C87A
- 00402E1A . EB 75 JMP SHORT MSN多开?00402E91
- 00402E1C > 6A 08 PUSH 8
- 00402E1E . 68 68F24200 PUSH MSN多开?0042F268 ; 1163659294813585
- 00402E23 . 6A 08 PUSH 8
- 00402E25 . 8D4C24 10 LEA ECX, DWORD PTR SS:[ESP+10]
- 00402E29 . E8 0B8A0100 CALL MSN多开?0041B839
- 00402E2E . 50 PUSH EAX
- 00402E2F . E8 0C810000 CALL MSN多开?0040AF40
- 00402E34 . 83C4 0C ADD ESP, 0C
- 00402E37 . 85C0 TEST EAX, EAX
- 00402E39 . 75 12 JNZ SHORT MSN多开?00402E4D
- 00402E3B . 50 PUSH EAX
- 00402E3C . 68 60F24200 PUSH MSN多开?0042F260 ; NGNSSS
- 00402E41 . 68 3CF24200 PUSH MSN多开?0042F23C ; 这是个盗版的注册号,请注册正式版本
- 00402E46 . 8BCE MOV ECX, ESI
- 00402E48 . E8 EF6A0100 CALL MSN多开?0041993C
- 00402E4D > 6A 08 PUSH 8
- 00402E4F . 68 28F24200 PUSH MSN多开?0042F228 ; 0386848021608060
- 00402E54 . 6A 08 PUSH 8
- 00402E56 . 8D4C24 10 LEA ECX, DWORD PTR SS:[ESP+10]
- 00402E5A . E8 DA890100 CALL MSN多开?0041B839
- 00402E5F . 50 PUSH EAX
- 00402E60 . E8 DB800000 CALL MSN多开?0040AF40
- 00402E65 . 83C4 0C ADD ESP, 0C
- 00402E68 . 85C0 TEST EAX, EAX
- 00402E6A . 75 12 JNZ SHORT MSN多开?00402E7E
- 00402E6C . 50 PUSH EAX
- 00402E6D . 68 60F24200 PUSH MSN多开?0042F260 ; NGNSSS
- 00402E72 . 68 3CF24200 PUSH MSN多开?0042F23C ; 这是个盗版的注册号,请注册正式版本
- 00402E77 . 8BCE MOV ECX, ESI
- 00402E79 . E8 BE6A0100 CALL MSN多开?0041993C
- 00402E7E > 6A 00 PUSH 0
- 00402E80 . 68 60F24200 PUSH MSN多开?0042F260 ; NGNSSS
- 00402E85 . 68 1CF24200 PUSH MSN多开?0042F21C ; 注册号无效
- 00402E8A . 8BCE MOV ECX, ESI
- 00402E8C . E8 AB6A0100 CALL MSN多开?0041993C
- 00402E91 > 8D4C24 04 LEA ECX, DWORD PTR SS:[ESP+4]
- 00402E95 . C74424 14 FFF>MOV DWORD PTR SS:[ESP+14], -1
- 00402E9D . E8 C0850100 CALL MSN多开?0041B462
- 00402EA2 . 8B4C24 0C MOV ECX, DWORD PTR SS:[ESP+C]
- 00402EA6 . 5E POP ESI
- 00402EA7 . 64:890D 00000>MOV DWORD PTR FS:[0], ECX
- 00402EAE . 83C4 14 ADD ESP, 14
- 00402EB1 . C3 RETN
复制代码
跟进CALL MSN多开?00402C70
如下:
- 00402C70 /$ 6A FF PUSH -1
- 00402C72 |. 68 E8364200 PUSH MSN多开?004236E8 ; SE 处理程序安装
- 00402C77 |. 64:A1 0000000>MOV EAX, DWORD PTR FS:[0]
- 00402C7D |. 50 PUSH EAX
- 00402C7E |. 64:8925 00000>MOV DWORD PTR FS:[0], ESP
- 00402C85 |. 83EC 18 SUB ESP, 18
- 00402C88 |. 53 PUSH EBX
- 00402C89 |. 8B4C24 2C MOV ECX, DWORD PTR SS:[ESP+2C] ; 假码
- 00402C8D |. 33C0 XOR EAX, EAX
- 00402C8F |. 894424 05 MOV DWORD PTR SS:[ESP+5], EAX
- 00402C93 |. 33DB XOR EBX, EBX
- 00402C95 |. 66:894424 09 MOV WORD PTR SS:[ESP+9], AX
- 00402C9A |. 895C24 24 MOV DWORD PTR SS:[ESP+24], EBX
- 00402C9E |. 884424 0B MOV BYTE PTR SS:[ESP+B], AL
- 00402CA2 |. 8B41 F8 MOV EAX, DWORD PTR DS:[ECX-8] ; 假码位数
- 00402CA5 |. 83F8 10 CMP EAX, 10 ; 是否16位
- 00402CA8 |. 885C24 04 MOV BYTE PTR SS:[ESP+4], BL
- 00402CAC |. 0F8C C0000000 JL MSN多开?00402D72 ; 假码小于16位就OVER
- 00402CB2 |. 56 PUSH ESI
- 00402CB3 |. 68 04010000 PUSH 104
- 00402CB8 |. 8D4C24 34 LEA ECX, DWORD PTR SS:[ESP+34]
- 00402CBC |. E8 788B0100 CALL MSN多开?0041B839
- 00402CC1 |. 8B10 MOV EDX, DWORD PTR DS:[EAX] ; 假码第1至第4位
- 00402CC3 |. 33F6 XOR ESI, ESI
- 00402CC5 |. 895424 10 MOV DWORD PTR SS:[ESP+10], EDX
- 00402CC9 |. 8B48 04 MOV ECX, DWORD PTR DS:[EAX+4] ; 假码第5至第8位
- 00402CCC |. 894C24 14 MOV DWORD PTR SS:[ESP+14], ECX
- 00402CD0 |. 8B50 08 MOV EDX, DWORD PTR DS:[EAX+8] ; 假码第9至第12位
- 00402CD3 |. 895424 18 MOV DWORD PTR SS:[ESP+18], EDX
- 00402CD7 |. 8B40 0C MOV EAX, DWORD PTR DS:[EAX+C] ; 假码第13至第16位
- 00402CDA |. 894424 1C MOV DWORD PTR SS:[ESP+1C], EAX
- 00402CDE |> 8A4C34 10 /MOV CL, BYTE PTR SS:[ESP+ESI+10] ; 假码ASCII转换数字
- 00402CE2 |. 51 |PUSH ECX
- 00402CE3 |. E8 68FFFFFF |CALL MSN多开?00402C50
- 00402CE8 |. 83C4 04 |ADD ESP, 4
- 00402CEB |. 884434 10 |MOV BYTE PTR SS:[ESP+ESI+10], AL ; 假码转换后的数字放入[ESP+ESI+10]
- 00402CEF |. 46 |INC ESI ; 每取一次假码ESI值加1
- 00402CF0 |. 83FE 10 |CMP ESI, 10 ; 是否取够16位
- 00402CF3 |.^ 7C E9 \JL SHORT MSN多开?00402CDE ; 不够继续
- 00402CF5 |. 33C0 XOR EAX, EAX
- 00402CF7 |. 8D4C24 10 LEA ECX, DWORD PTR SS:[ESP+10] ; 转换后的数字的地址放ECX
- 00402CFB |. 5E POP ESI
- 00402CFC |> 8A51 01 /MOV DL, BYTE PTR DS:[ECX+1] ; 取假码转换数字后的偶数位
- 00402CFF |. 8A19 |MOV BL, BYTE PTR DS:[ECX] ; 取假码转换数字后的奇数位
- 00402D01 |. C0E2 04 |SHL DL, 4 ; 偶数位的数字左移4位(假如DL=02,左移4位后是20)
- 00402D04 |. 02D3 |ADD DL, BL ; 偶数位左移4位的数字加奇数位的数字=DL
- 00402D06 |. 83C1 02 |ADD ECX, 2 ; 地址加2(为取假码数字作准备)
- 00402D09 |. 885404 04 |MOV BYTE PTR SS:[ESP+EAX+4], DL ; [偶数位左移4位的数字]加[奇数位的数字]结果放[ESP+EAX+4]
- 00402D0D |. 40 |INC EAX
- 00402D0E |. 83F8 08 |CMP EAX, 8
- 00402D11 |.^ 7C E9 \JL SHORT MSN多开?00402CFC
- 00402D13 |. 8A4424 07 MOV AL, BYTE PTR SS:[ESP+7] ; 假码转换数字后的第7位第8位=AL
- 00402D17 |. 8A5C24 04 MOV BL, BYTE PTR SS:[ESP+4] ; 假码转换数字后的第1位第2位=BL
- 00402D1B |. 8A4C24 0B MOV CL, BYTE PTR SS:[ESP+B] ; 假码转换数字后的第15位第16位=CL
- 00402D1F |. 8A5424 05 MOV DL, BYTE PTR SS:[ESP+5] ; 假码转换数字后的第3位第4位=DL
- 00402D23 |. 32C3 XOR AL, BL ; AL XOR BL=AL
- 00402D25 |. 8A5C24 06 MOV BL, BYTE PTR SS:[ESP+6] ; 假码转换数字后的第5位第6位
- 00402D29 |. 32CA XOR CL, DL ; CL XOR DL=CL
- 00402D2B |. 8A5424 09 MOV DL, BYTE PTR SS:[ESP+9] ; 假码转换数字后的第11位第12位
- 00402D2F |. 32D3 XOR DL, BL ; DL XOR BL = DL
- 00402D31 |. 8A5C24 08 MOV BL, BYTE PTR SS:[ESP+8] ; 假码转换数字后的第9位第10位
- 00402D35 |. 325C24 0A XOR BL, BYTE PTR SS:[ESP+A] ; BL XOR [ESP+A]=BL [ESP+A]=第13位第14位
- 00402D39 |. 3C 38 CMP AL, 38 ; AL与38比较
- 00402D3B |. 75 35 JNZ SHORT MSN多开?00402D72
- 00402D3D |. 80F9 78 CMP CL, 78 ; CL与78比较
- 00402D40 |. 75 30 JNZ SHORT MSN多开?00402D72
- 00402D42 |. 80FA 4E CMP DL, 4E ; DL与4E比较
- 00402D45 |. 75 2B JNZ SHORT MSN多开?00402D72
- 00402D47 |. 80FB 1A CMP BL, 1A ; BL与1A比较
- 00402D4A |. 75 26 JNZ SHORT MSN多开?00402D72 ; 以上相等注册成功
- 00402D4C |. 8D4C24 2C LEA ECX, DWORD PTR SS:[ESP+2C]
- 00402D50 |. C74424 24 FFF>MOV DWORD PTR SS:[ESP+24], -1
- 00402D58 |. E8 05870100 CALL MSN多开?0041B462
- 00402D5D |. B8 01000000 MOV EAX, 1
- 00402D62 |. 5B POP EBX
- 00402D63 |. 8B4C24 18 MOV ECX, DWORD PTR SS:[ESP+18]
- 00402D67 |. 64:890D 00000>MOV DWORD PTR FS:[0], ECX
- 00402D6E |. 83C4 24 ADD ESP, 24
- 00402D71 |. C3 RETN
复制代码
------------------------------------------------------------------------
【破解总结】注册码要符合以下条件:
假码第1位第2位 XOR 假码第7位第8位=38
假码第3位第4位 XOR 假码第15位第16位=78
假码第5位第6位 XOR 假码第11位第12位=4E
假码第9位第10位 XOR 假码第13位第14位=1E
有效的一组注册码:1212129112F6B395
------------------------------------------------------------------------
【版权声明】【版权声明】转载请注明出处,请注明作者并保持文章的完整, 谢谢!
[ 本帖最后由 laccer 于 2007-8-19 23:52 编辑 ] |
|