超级Ping V2.15
软件名称:
超级Ping V2.15
下载地址:
http://joysea.126.com/
------------------------------------------------------------
破解作者:
冷枫[OCN]
破解工具:
OLLYDBG,W32DASM
破解目的:
研究算法
------------------------------------------------------------
[破解过程]
详细过程:
[[我的第一篇算法,写的不好的地方请大家指教~~~~]]
0040708B . 6A 01 PUSH 1
0040708D . 8BCD MOV ECX,EBP
0040708F . C74424 7C 0000>MOV DWORD PTR SS:[ESP+7C],0
00407097 . E8 E80D0000 CALL <JMP.&MFC42.#6334>
0040709C . 8BBD E4000000 MOV EDI,DWORD PTR SS:[EBP+E4] ;
// 取用户冷枫(C0E4B7E3)放到EDI
004070A2 . 83C9 FF OR ECX,FFFFFFFF ;
// 将ECX变为FFFFFFFF
004070A5 . 33C0 XOR EAX,EAX ;
//EAX清零X,
004070A7 . 8D5424 38 LEA EDX,DWORD PTR SS:[ESP+38]
004070AB . F2:AE REPNE SCAS BYTE PTR ES:[EDI]
004070AD . F7D1 NOT ECX ;
004070AF . 2BF9 SUB EDI,ECX
004070B1 . 8BC1 MOV EAX,ECX ;
004070B3 . 8BF7 MOV ESI,EDI
004070B5 . 8BFA MOV EDI,EDX
004070B7 . C1E9 02 SHR ECX,2 ;
004070BA . F3:A5 REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
004070BC . 8BC8 MOV ECX,EAX
004070BE . 33C0 XOR EAX,EAX
004070C0 . 83E1 03 AND ECX,3
004070C3 . F3:A4 REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>
004070C5 . 8D7C24 38 LEA EDI,DWORD PTR SS:[ESP+38]
004070C9 . 83C9 FF OR ECX,FFFFFFFF
004070CC . F2:AE REPNE SCAS BYTE PTR ES:[EDI]
004070CE . F7D1 NOT ECX
004070D0 . 49 DEC ECX
004070D1 . 83F9 13 CMP ECX,13 ;
//看用户名是不是大于19
004070D4 . 7D 0F JGE SHORT PINGPLUS.004070E5 ;
///大等于则跳,不跳则通过位数运算的值来补充用户的位数一直到满足19位
004070D6 > 8AD1 MOV DL,CL ;
// 将位数放入EDX
004070D8 . 80C2 41 ADD DL,41 ;
//位数加41=41
004070DB . 88540C 38 MOV BYTE PTR SS:[ESP+ECX+38],DL ;
//用来补充的用户名的 ASCII
第5位用户名数:4+41=45 (E)
第6位用户名数:5+41=46 (F)。。。。一直到19位 EFGHIJKLMNOPQRS
004070DF . 41 INC ECX
//将用户位数加1,看是不是大于19
004070E0 . 83F9 13 CMP ECX,13
//直到满足19
004070E3 .^7C F1 JL SHORT PINGPLUS.004070D6
004070E5 > 8B4C24 47 MOV ECX,DWORD PTR SS:[ESP+47] ;
//取第16-19位=ecx
004070E9 . 8B4424 43 MOV EAX,DWORD PTR SS:[ESP+43] ;
// 取12-15位=EAX
004070ED . 8B5424 3A MOV EDX,DWORD PTR SS:[ESP+3A] ;
// 取3-6位=EDX
004070F1 . 894C24 54 MOV DWORD PTR SS:[ESP+54],ECX ;
// 将16-19位 PQRS 放入[ESP+54}=[内存地址] 0064DF4C 为另一组数的5-8位
004070F5 . 66:8B4C24 42 MOV CX,WORD PTR SS:[ESP+42] ;
// 取11-12位到ECX
004070FA . 894424 50 MOV DWORD PTR SS:[ESP+50],EAX ;
取 // 12-15位 LMNO 放入[ESP+50}=[内存地址] 0064DF48 为另一组数的1-4位
004070FE . 8B4424 3E MOV EAX,DWORD PTR SS:[ESP+3E] ;
// 取7-10位到EAX
00407102 . 895424 58 MOV DWORD PTR SS:[ESP+58],EDX ;
// 取3-6位 B7E3EFG 放入[ESP+58}=[内存地址] 0064DF50 为另一组数的9-12位
00407106 . 8A5424 44 MOV DL,BYTE PTR SS:[ESP+44] ;
0040710A . 66:894C24 60 MOV WORD PTR SS:[ESP+60],CX ;
// 取11-12位 KL 放入[ESP+60}=[内存地址] 0064DF58 为另一组数的17-18位
0040710F . C64424 4B 00 MOV BYTE PTR SS:[ESP+4B],0
00407114 . 894424 5C MOV DWORD PTR SS:[ESP+5C],EAX ;
// 取7-11位 GHIJ 放入[ESP+5c}=[内存地址] 0064DF54 为另一组数的13-16位
00407118 . 885424 62 MOV BYTE PTR SS:[ESP+62],DL ;
// 取13位 M 放入[ESP+62}=[内存地址] 0064df5a 为另一组数的13-16位
0040711C . C64424 63 00 MOV BYTE PTR SS:[ESP+63],0
// 取0, 放入[ESP+5c}=[内存地址] 0064df5B 00代表取完
整里上面的内存数据0064DF48-----0064df5B 为 L(4C)M(4D)N(4E)O(4F)P(50)Q(51)R(52)S(53)枫(B7 E3)E(45)F(46)G(47)H(48)I(49)J(4A)K(4B)L(4C)M(4D)19位ASCII码
00407121 . 33C9 XOR ECX,ECX ;
// 将ECX 清0
00407123 > 0FBE540C 50 MOVSX EDX,BYTE PTR SS:[ESP+ECX+50]
// 一个一个取上面19位ASCII码运算另一组数
1 ------ L(4C)----》EDX
2-----M(4D)----》EDX ,3-N(4E),4-O(4F),5-P(50),6-Q(51),7-R(52),8-S(53)9,10--枫(B7 E3),11-E(45),12-F(46)。。。。19-M(4D)
00407128 . BE 1A000000 MOV ESI,1A 将1A 放入ESI
0040712D . 8D0452 LEA EAX,DWORD PTR DS:[EDX+EDX*2]
1-----EDX(4C)+L(4C)*2=E4 ------》EAX
2-----EDX(4D)+L(4D)*2=E7 ------》EAX ,3-N(4E)+N(4E)*2=E7,。。。。。。一直到19位
00407130 . C1E0 03 SHL EAX,3
1-----EAX(E4) SHL 3 =720
2-----EAX(E7) SHL 3 =738
00407133 . 2BC2 SUB EAX,EDX
1----EAX(720)-EDX(4C)=6D4---->EAX
2----EAX(738)-EDX(4D)=6EB---->EAX。。。。。。。。。一直到19位
00407135 . 83C0 1B ADD EAX,1B
1----EAX(6D4)+1B=6EF----->EAX
2---EAX(6EB)+1B=706----->EAX。。。。。。。。。一直到19位
00407138 . 99 CDQ EDX 清 0
00407139 . F7FE IDIV ESI
1-------EAX(6EF) IDIV ESI(1A)得 44放入EAX 和 7放入EDX
2-------EAX(706) IDIV ESI(1A)得 45放入EAX 和 4放入EDX 。。。。。。。。。一直到19位
0040713B . 80C2 41 ADD DL,41
1-------EDX (7)+41=48
2-------EDX (4)+41=45。。。。。。。。。一直到19位
0040713E . 88540C 38 MOV BYTE PTR SS:[ESP+ECX+38],DL
1------EDX(48)放入内存64DF30
2------EDX(45)放入内存64DF31。。。。。。。。。一直到19位
00407142 . 41 INC ECX
// ECX 加1 表示注册码运算的位数
00407143 . 83F9 13 CMP ECX,13 比较是不是有19位了
00407146 .^7C DB JL SHORT PINGPLUS.00407123
// 没有,继续 运算完成19位得到:HEBYVSPM31CZWTQNKHE
00407148 . BF 1A000000 MOV EDI,1A
// 将1A----》EDI
0040714D . 8D4424 38 LEA EAX,DWORD PTR SS:[ESP+38]
00407151 . 33F6 XOR ESI,ESI
00407153 . 2BF8 SUB EDI,EAX
//EDI(1A)-EAX(64DF30)=FF9B20EA---》EDI
00407155 > 8D4C34 38 LEA ECX,DWORD PTR SS:[ESP+ESI+38]
//一个一个取上面运算得到的19位数进行运算,ESP+ESI+38为存放注册码的内存地址---》ECX
1----64DF30----》ECX。。。。。。。一直取到19位
00407159 . B8 BC070000 MOV EAX,7BC
//将7BC放入EAX
0040715E . 99 CDQ EDX 清0
0040715F . 8D1C0F LEA EBX,DWORD PTR DS:[EDI+ECX]
1--------将[EDI(FF9B20EA)+ECX(64DF30)]=1A---》EBX 。。。一直到19位
00407162 . F7FB IDIV EBX
1---------用EAX(7BC) IDIV EBX(1A)得到 4C放入 EAX 和4放入 EDX 。。。一直到19位
00407164 . 8BD8 MOV EBX,EAX
1--------将EAX 4C---》EBX 。。。一直到19位
00407166 . 0FBE01 MOVSX EAX,BYTE PTR DS:[ECX]
1-----将ECX 64DF30内存值(H -48)------》EAX 。。。一直到19位
00407169 . 99 CDQ
//EDX 清0
0040716A . 2BC2 SUB EAX,EDX
//EAX(48) -EDX(0) =48 。。。一直到19位
0040716C . D1F8 SAR EAX,1
//EAX(48) SAR 1=24 。。。一直到19位
0040716E . 02D8 ADD BL,AL
//EAX(48)+EBX(4C)=70----》EBX 。。。一直到19位
00407170 . 80FB 41 CMP BL,41
//比较是不是大于A 的 ASCii (41)也就是比较是不是大写字母。。。一直到19位
00407173 . 8819 MOV BYTE PTR DS:[ECX],BL
将BL(70)--》ECX。。。一直到19位
00407175 . 7D 10 JGE SHORT PINGPLUS.00407187
//大于在跳,不打则到下面在次运算
00407177 . 0FBEC3 MOVSX EAX,BL
0040717A . 99 CDQ
0040717B . BB 1A000000 MOV EBX,1A
00407180 . F7FB IDIV EBX
00407182 . 80C2 41 ADD DL,41
00407185 . 8811 MOV BYTE PTR DS:[ECX],DL
00407187 > 8A01 MOV AL,BYTE PTR DS:[ECX]
00407189 . 3C 5A CMP AL,5A
//比较是不是小于Z,和上面的A,一起用来比较是不是26个大写字母中的
0040718B . 7E 10 JLE SHORT PINGPLUS.0040719D
小于和等于跳
0040718D . 0FBEC0 MOVSX EAX,AL
将AL(70)---》EAX 。。。一直到19位
00407190 . 99 CDQ
00407191 . BB 1A000000 MOV EBX,1A
//1A----》EBX
00407196 . F7FB IDIV EBX
// 将70 IDIV 1A 得 4放入EAX 和 8放入 EDX 。。。一直到19位
00407198 . 80C2 41 ADD DL,41
//DL(8)+41=49 第一位真注册码。。。一直到19位
0040719B . 8811 MOV BYTE PTR DS:[ECX],DL
0040719D > 46 INC ESI
// ESI 加1 ,
0040719E . 83FE 13 CMP ESI,13
// 看是不是有19位了 最后得注册码:IDZIFAXUSPXUROYWTRO
004071A1 .^7C B2 JL SHORT PINGPLUS.00407155
//有则不跳,
004071A3 . 8D4C24 38 LEA ECX,DWORD PTR SS:[ESP+38]
004071A7 . 8D5424 1C LEA EDX,DWORD PTR SS:[ESP+1C]
004071AB . 51 PUSH ECX
004071AC . 68 F8D14000 PUSH PINGPLUS.0040D1F8 ; ASCII "%s"
004071B1 . 52 PUSH EDX
004071B2 . E8 EB0C0000 CALL <JMP.&MFC42.#2818>
004071B7 . 8B85 E8000000 MOV EAX,DWORD PTR SS:[EBP+E8]
004071BD . 50 PUSH EAX ;
EAX---》你输入的注册码
004071BE . 8B4424 2C MOV EAX,DWORD PTR SS:[ESP+2C] ; |
004071C2 . 50 PUSH EAX ;
EAX---》真注册码
004071C3 . FF15 A8A34000 CALL DWORD PTR DS:[<&MSVCRT._mbscmp>] 比较
004071C9 . 83C4 14 ADD ESP,14
004071CC . 85C0 TEST EAX,EAX
004071CE . 6A 00 PUSH 0
完工,写的不对的地方还请各位看观改正~~~~~~~~~~
破解小结:
用户:冷枫
注册码:IDZIFAXUSPXUROYWTRO
(出处:赢政天下整理收藏)
相关资讯:
·Tornado2之Licence暴力破解
·万能五笔2001注册码分析及暴力破解
·万能五笔2001注册码分析及暴力破解
·万能五笔2001注册码分析及暴力破解 ---可怜的思考者 (27千字)
·一个拨号软件的Win32Dasm暴力破解法
·CuteFTP V4.2.4之暴力破解
相关软件:
·电话卡暴力破解器 v2.0 (0425版)
→ 特别推荐
→ 热点TOP10
我为人人《《==》》人人为我
关于我们 |
帮助(?)
| 广告服务 |
版权声明 |
商业合作 |
发展历程 |
加盟我们 |
联系我们
Copyright © 1998-2003
winzheng.com All Rights Reserved.
繁体版:由华琦数码技术提供
Powered
by:MeSky.Net
当年一篇教程能让一台电脑焕然一新;今天的效率工具换成了 AI。 想知道当下最可靠的 AI 模型怎么选?看 赢政指数——我们用了 28 年的选软件严谨,现在用来评测大模型。