老文章档案 · 2003 年

超级Ping V2.15

天下资讯 · 破解文章 · 2003-10-08 · 作者:冷枫[OCN] 人气: · 出处:赢政天下整理收藏)

软件名称:

超级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

2003-2004 年,宽带刚刚普及,下载站的文章区是许多人学电脑的第一课堂。
🕰 → 🤖 从那时到现在

当年一篇教程能让一台电脑焕然一新;今天的效率工具换成了 AI。 想知道当下最可靠的 AI 模型怎么选?看 赢政指数——我们用了 28 年的选软件严谨,现在用来评测大模型。

档案性质声明:本页为赢政天下(1998-2011)老文章的历史档案复原, 内容反映当年发表时的原貌——包括当年的技术表述、软件版本与观点,部分方法在今天已不适用或不合规,仅作互联网历史记录与研究用途, 不提供任何形式的下载。原始数据经由公共网络存档(Internet Archive)复原。发现问题请联系我们
← 返回老文章档案 · 软件史档案馆 · 赢政天下站史