老文章档案 · 2003 年

DB Commander 2000 PRO(简称DBC_2000)笔记

破解教程 · 暴力破解 · 2003-10-21 · 作者:辉仔Yock[DFCG][YCG] 人气: · 出处:赢政天下整理收藏)

【前 言】:这是我用ME以外的操作系统破的第一个软件!这个软件对于架设<传奇>私服的朋友是再熟悉不过了!以前这个软件下载的地方都有破解补丁放在一起的,可是我找了好久都没有找到,看来还是自己动手的好!

【软件名称】:DB Commander 2000 PRO(简称DBC_2000)

【作者声明】:本人发表这篇文章只是为了学习!!!请不用于商业用途或是将本文方法制作的注册机任意传播,读者看了文章后所做的事情与我无关,我也不会负责,请读者看了文章后三思而后行!最后希望大家在经济基础好的时候,支持共享软件!

【破解工具】:Ollydbg

—————————————————————————————————

【过 程】:

用Ollydbg加载主程序DB_Commander.exe

根据字符参考知道出错的地方一共有三处,分别对这三个地方下断!

输入用户名Yock和注册码987-654-321后,按注册,拦下:

00541398 . 53 PUSH EBX

00541399 . 56 PUSH ESI

0054139A . 8BF2 MOV ESI,EDX

0054139C . 8BD8 MOV EBX,EAX

0054139E . BA E4135400 MOV EDX,TKDB_Com.005413E4

005413A3 . B8 1C145400 MOV EAX,TKDB_Com.0054141C

005413A8 . E8 5F2FECFF CALL TKDB_Com.0040430C

//这里好像是验证注册表是否有"Tsapanidis"这个值!

//但是我注册表里面没有这个值!

//这里可能是一个暗桩吧!

005413AD . 85C0 TEST EAX,EAX

005413AF . 7E 0C JLE SHORT TKDB_Com.005413BD

//这里不能跳,以跳下去就挂了!

//我这里是跳的,所以我把这里NOP掉了!

005413B1 . 8BD6 MOV EDX,ESI

005413B3 . 8BC3 MOV EAX,EBX

005413B5 . E8 76FCFFFF CALL TKDB_Com.00541030

//这里是关键,根进去!

005413BA . 5E POP ESI

005413BB . 5B POP EBX

005413BC . C3 RETN

005413BD > E8 5AB4ECFF CALL TKDB_Com.0040C81C

005413C2 . 6A 00 PUSH 0

005413C4 . 66:8B0D 281454>MOV CX,WORD PTR DS:[541428]

005413CB . 33D2 XOR EDX,EDX

005413CD . B8 34145400 MOV EAX,TKDB_Com.00541434

//这里就是出错的地方了!

005413D2 . E8 3569F0FF CALL TKDB_Com.00447D0C

005413D7 . 5E POP ESI

005413D8 . 5B POP EBX

005413D9 . C3 RETN

-----------------------------------------------------------------

上面5413b5的CALL来到这里!

00541030 /$ 55 PUSH EBP

00541031 |. 8BEC MOV EBP,ESP

00541033 |. 6A 00 PUSH 0

00541035 |. 6A 00 PUSH 0

00541037 |. 6A 00 PUSH 0

00541039 |. 53 PUSH EBX

0054103A |. 33C0 XOR EAX,EAX

0054103C |. 55 PUSH EBP

0054103D |. 68 20125400 PUSH TKDB_Com.00541220

00541042 |. 64:FF30 PUSH DWORD PTR FS:[EAX]

00541045 |. 64:8920 MOV DWORD PTR FS:[EAX],ESP

00541048 |. A1 AC215700 MOV EAX,DWORD PTR DS:[5721AC]

0054104D |. FF00 INC DWORD PTR DS:[EAX]

0054104F |. 8D55 FC LEA EDX,DWORD PTR SS:[EBP-4]

00541052 |. A1 383B5700 MOV EAX,DWORD PTR DS:[573B38]

00541057 |. 8B80 EC010000 MOV EAX,DWORD PTR DS:[EAX+1EC]

0054105D |. E8 EA8CF0FF CALL TKDB_Com.00449D4C

00541062 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]

00541065 |. 50 PUSH EAX

00541066 |. 8D55 F8 LEA EDX,DWORD PTR SS:[EBP-8]

00541069 |. A1 383B5700 MOV EAX,DWORD PTR DS:[573B38]

0054106E |. 8B80 E0010000 MOV EAX,DWORD PTR DS:[EAX+1E0]

00541074 |. E8 8B3DEEFF CALL TKDB_Com.00424E04

00541079 |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]

//这里是用户名!

0054107C |. 5A POP EDX

//这里是输入的假注册码!

0054107D |. E8 8EF6FFFF CALL TKDB_Com.00540710

//关键跟进去!

00541082 |. 84C0 TEST AL,AL

00541084 |. 0F84 C1000000 JE TKDB_Com.0054114B

//这里不跳的话,就把正确的注册信息保存起来!

//跳走的话就出错咯!

0054108A |. A1 C81C5700 MOV EAX,DWORD PTR DS:[571CC8]

0054108F |. C600 01 MOV BYTE PTR DS:[EAX],1

00541092 |. A1 B0215700 MOV EAX,DWORD PTR DS:[5721B0]

00541097 |. C600 00 MOV BYTE PTR DS:[EAX],0

............................

.............

00541144 |. E8 C36BF0FF CALL TKDB_Com.00447D0C

00541149 |. EB 49 JMP SHORT TKDB_Com.00541194

0054114B |> 6A 40 PUSH 40

0054114D |. E8 2E64ECFF CALL <JMP.&user32.MessageBeep>

00541152 |. A1 AC215700 MOV EAX,DWORD PTR DS:[5721AC]

00541157 |. 8338 03 CMP DWORD PTR DS:[EAX],3

0054115A |. 7C 23 JL SHORT TKDB_Com.0054117F

0054115C |. 6A 00 PUSH 0

0054115E |. 66:8B0D 981254>MOV CX,WORD PTR DS:[541298]

00541165 |. 33D2 XOR EDX,EDX

00541167 |. B8 14135400 MOV EAX,TKDB_Com.00541314

Goodbye..."

//这里是注册成功的地方!

0054116C |. E8 9B6BF0FF CALL TKDB_Com.00447D0C

00541171 |. A1 D41F5700 MOV EAX,DWORD PTR DS:[571FD4]

00541176 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]

00541178 |. E8 634FEFFF CALL TKDB_Com.004360E0

0054117D |. EB 15 JMP SHORT TKDB_Com.00541194

0054117F |> 6A 00 PUSH 0

00541181 |. 66:8B0D 981254>MOV CX,WORD PTR DS:[541298]

00541188 |. 33D2 XOR EDX,EDX

0054118A |. B8 50135400 MOV EAX,TKDB_Com.00541350

//这里是另外一个出错的地方了!

0054118F |. E8 786BF0FF CALL TKDB_Com.00447D0C

00541194 |> A1 C81C5700 MOV EAX,DWORD PTR DS:[571CC8]

00541199 |. 8038 00 CMP BYTE PTR DS:[EAX],0

0054119C |. 74 52 JE SHORT TKDB_Com.005411F0

-----------------------------------------------------------------

上面54107d的CALL来到这里!

00540710 /$ 55 PUSH EBP

00540711 |. 8BEC MOV EBP,ESP

00540713 |. 83C4 F0 ADD ESP,-10

00540716 |. 53 PUSH EBX

00540717 |. 56 PUSH ESI

00540718 |. 57 PUSH EDI

00540719 |. 33C9 XOR ECX,ECX

0054071B |. 894D F0 MOV DWORD PTR SS:[EBP-10],ECX

0054071E |. 894D F4 MOV DWORD PTR SS:[EBP-C],ECX

00540721 |. 8955 F8 MOV DWORD PTR SS:[EBP-8],EDX

00540724 |. 8945 FC MOV DWORD PTR SS:[EBP-4],EAX

00540727 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]

0054072A |. E8 A93AECFF CALL TKDB_Com.004041D8

0054072F |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]

00540732 |. E8 A13AECFF CALL TKDB_Com.004041D8

00540737 |. 33C0 XOR EAX,EAX

00540739 |. 55 PUSH EBP

0054073A |. 68 4C085400 PUSH TKDB_Com.0054084C

0054073F |. 64:FF30 PUSH DWORD PTR FS:[EAX]

00540742 |. 64:8920 MOV DWORD PTR FS:[EAX],ESP

00540745 |. 33FF XOR EDI,EDI

00540747 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]

//输入的用户名!

0054074A |. E8 D538ECFF CALL TKDB_Com.00404024

//取用户名的位数!

0054074F |. 8BF0 MOV ESI,EAX

00540751 |. 85F6 TEST ESI,ESI

//是否有用户名!

00540753 |. 7E 34 JLE SHORT TKDB_Com.00540789

//没有就跳走咯!

00540755 |. BB 01000000 MOV EBX,1

//赋值1,EBX作为计数器!

0054075A |> 8B45 FC /MOV EAX,DWORD PTR SS:[EBP-4]

0054075D |. 8A4418 FF |MOV AL,BYTE PTR DS:[EAX+EBX-1]

00540761 |. 8BD0 |MOV EDX,EAX

00540763 |. 80C2 D0 |ADD DL,0D0

00540766 |. 80EA 0A |SUB DL,0A

00540769 |. 72 10 |JB SHORT TKDB_Com.0054077B

//比较当前用户名是否是数字,是的话就跳下去直接累加!

0054076B |. 80C2 F9 |ADD DL,0F9

0054076E |. 80EA 1A |SUB DL,1A

00540771 |. 72 08 |JB SHORT TKDB_Com.0054077B

//比较当前用户名是否是大写字母,是的话就跳下取直接累加!

00540773 |. 80C2 FA |ADD DL,0FA

00540776 |. 80EA 1A |SUB DL,1A

00540779 |. 73 0A |JNB SHORT TKDB_Com.00540785

//比较当前用户名是否是小写字母,是的话就不跳!

//如果不是小写字母的话跳走不累加了!

0054077B |> 8B55 FC |MOV EDX,DWORD PTR SS:[EBP-4]

0054077E |. 25 FF000000 |AND EAX,0FF

00540783 |. 03F8 |ADD EDI,EAX

00540785 |> 43 |INC EBX

00540786 |. 4E |DEC ESI

00540787 |.^75 D1 \JNZ SHORT TKDB_Com.0054075A

//从0054075A到这里的循环是把用户名的值累加起来

//累加的结果保存再EDI里面!

//注意:要是用户名有非法字符和空格的话,就不作计算!

//也就是说,只计算用户名的"A-Z"和"a-z"和"0-9"之间的数!

00540789 |> 8BC7 MOV EAX,EDI

//累加值=EDI=EAX

0054078B |. C1E0 02 SHL EAX,2

//逻辑左移

0054078E |. 8BD7 MOV EDX,EDI

//EDI=EDX=累加值

00540790 |. 4A DEC EDX

//减一

00540791 |. 8BCA MOV ECX,EDX

//EDX=ECX=累加值减一

00540793 |. 99 CDQ

00540794 |. F7F9 IDIV ECX

//整数除法

00540796 |. 8BD7 MOV EDX,EDI

//累加值=EDI=EDX

00540798 |. 85D2 TEST EDX,EDX

//这里我理解是--是否有累加值,有的话就跳!

0054079A |. 79 03 JNS SHORT TKDB_Com.0054079F

//我这里是跳下去的!

0054079C |. 83C2 03 ADD EDX,3

0054079F |> C1FA 02 SAR EDX,2

//算术右移

005407A2 |. 0FAFD7 IMUL EDX,EDI

//EDX=EDX*EDI

005407A5 |. 03C2 ADD EAX,EDX

//EAX=EAX+EDX

005407A7 |. 05 391B0000 ADD EAX,1B39

//累加1B39

005407AC |. 8BF8 MOV EDI,EAX

//EAX=EDI

005407AE |. 81C7 00E1F505 ADD EDI,5F5E100

//累加5F5E100

//这里的EDI的十进制就十真的注册码了!

//注册码就是怎么练成的!

//对于我来说,我有学到了一些宝贵的东西了,你呢???

005407B4 |. 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]

005407B7 |. E8 EC35ECFF CALL TKDB_Com.00403DA8

005407BC |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]

//这里是输入的假注册码!

005407BF |. E8 6038ECFF CALL TKDB_Com.00404024

//取假注册码的位数!

005407C4 |. 8BF0 MOV ESI,EAX

005407C6 |. 85F6 TEST ESI,ESI

//有没有输入?

005407C8 |. 7E 3C JLE SHORT TKDB_Com.00540806

//没有输入注册码就跳走咯!

005407CA |. BB 01000000 MOV EBX,1

//赋值1,EBX作为计数器!

005407CF |> 8B45 F8 /MOV EAX,DWORD PTR SS:[EBP-8]

005407D2 |. 8A4418 FF |MOV AL,BYTE PTR DS:[EAX+EBX-1]

005407D6 |. 04 D0 |ADD AL,0D0

005407D8 |. 2C 0A |SUB AL,0A

005407DA |. 72 0C |JB SHORT TKDB_Com.005407E8

005407DC |. 04 F9 |ADD AL,0F9

005407DE |. 2C 1A |SUB AL,1A

005407E0 |. 72 06 |JB SHORT TKDB_Com.005407E8

005407E2 |. 04 FA |ADD AL,0FA

005407E4 |. 2C 1A |SUB AL,1A

005407E6 |. 73 1A |JNB SHORT TKDB_Com.00540802

005407E8 |> 8D45 F0 |LEA EAX,DWORD PTR SS:[EBP-10]

005407EB |. 8B55 F8 |MOV EDX,DWORD PTR SS:[EBP-8]

005407EE |. 8A541A FF |MOV DL,BYTE PTR DS:[EDX+EBX-1]

005407F2 |. E8 5537ECFF |CALL TKDB_Com.00403F4C

005407F7 |. 8B55 F0 |MOV EDX,DWORD PTR SS:[EBP-10]

005407FA |. 8D45 F4 |LEA EAX,DWORD PTR SS:[EBP-C]

005407FD |. E8 2A38ECFF |CALL TKDB_Com.0040402C

00540802 |> 43 |INC EBX

00540803 |. 4E |DEC ESI

00540804 |.^75 C9 \JNZ SHORT TKDB_Com.005407CF

//从005407CF到这里的循环是把注册码的"-"去掉的!

//举个例子,我输入的注册码是"987-654-321"

//经过这里有就变成"987654321"了!

00540806 |> 8D55 F0 LEA EDX,DWORD PTR SS:[EBP-10]

00540809 |. 8BC7 MOV EAX,EDI

0054080B |. E8 F47FECFF CALL TKDB_Com.00408804

00540810 |. 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10]

//这里就是真的注册码了!

00540813 |. 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C]

//这里是我输入的假注册码!

00540816 |. E8 1939ECFF CALL TKDB_Com.00404134

0054081B |. 0F94C3 SETE BL

0054081E |. BA 64085400 MOV EDX,TKDB_Com.00540864 ; ASCII "Beverly Saunders Site"

//这个就是万能注册名了!

00540823 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]

//这里是输入的用户名!

//可见这个软件有一个万能注册名的!

00540826 |. E8 E13AECFF CALL TKDB_Com.0040430C

0054082B |. 85C0 TEST EAX,EAX

0054082D |. 7E 02 JLE SHORT TKDB_Com.00540831

0054082F |. 33DB XOR EBX,EBX

00540831 |> 33C0 XOR EAX,EAX

00540833 |. 5A POP EDX

00540834 |. 59 POP ECX

00540835 |. 59 POP ECX

------------------------------------------------------------------

【总 结】:

又来到我最怕的地方了---总结!

说起来,这个软件又一个地方我搞不懂的就是为什么要检查注册表的

[\Software\T&T Solutions\DB Commander 2000 PRO]

Tsapanidis

我的机子里面没有这个项目,所以要把

005413AF . 7E 0C JLE SHORT TKDB_Com.005413BD

NOP掉才可以注册成功!如果大虾们愿意研究的话,可以告诉我一个究竟吗?

把用户名的字符的ASCII码累加以来!(非法字符和空格除外,只累加这些值.包括"A-Z"/"a-z"/"0-9")

最后把累加值经过下面的运算得出得结果的十进制就是真的注册码了!

累加值=EAX=EDI

MOV EAX,EDI

SHL EAX,2

MOV EDX,EDI

DEC EDX

MOV ECX,EDX

CDQ

IDIV ECX

SAR EDX,2

IMUL EDX,EDI

ADD EAX,EDX

ADD EAX,1B39

MOV EDI,EAX

ADD EDI,5F5E100

最后注册码的结果=EDI的十进制值!

注册信息保存在:

[HKEY_LOCAL_MACHINE\SOFTWARE\T&T Solutions\DB Commander 2000 PRO\5.0.0.0]

"RegNumber"="005F69C6B"

//保存方式是注册码的十六进制!

一组可用的注册码:

Yock

100-047-979

--------------------------------------------------------------------

最后在这里真心感谢你花了那么多时间看这篇文章!谢谢了...

(出处:赢政天下整理收藏)

相关文章:

·Tornado2之Licence暴力破解

·万能五笔2001注册码分析及暴力破解

·万能五笔2001注册码分析及暴力破解

·万能五笔2001注册码分析及暴力破解 ---可怜的思考者 (27千字)

·一个拨号软件的Win32Dasm暴力破解法

·CuteFTP V4.2.4之暴力破解

相关软件:

·电话卡暴力破解器 v2.0 (0425版)

→ 特别推荐

→ 热点TOP10

我为人人《《==》》人人为我

关于我们 |

帮助(?)

| 广告服务 |

版权声明 |

商业合作 |

发展历程 |

加盟我们 |

联系我们

Copyright © 1999-2003

winzheng.com All Rights Reserved.

繁体版:由华琦数码技术提供

Powered

by:MeSky.Net

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

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

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