老文章档案 · 2003 年

3Dmark2003注册号的算法研究

破解教程 · 算法分析 · 2003-08-22 · 作者:火翼[CCG] 人气: · 出处:赢政天下整理收藏)

软件:3Dmark 2003

版本:3.1.3.0

下载网站:www.mydrivers.com

使用软件: OllyDbg+Ida430

昨天才出来的软件,官方下载地址没提供注册号(官方当然不会提供)。

用IDA反汇编,搜索"Incorrect registration code."在41D8CA找到对这个字符串的调用,向上可以在0041D81E找到关键判断

.text:0041D81E call sub_405190 //关键判断

.text:0041D823 add esp, 4

.text:0041D826 test al, al

.text:0041D828 lea ecx, [ebp+var_6C]

.text:0041D82B jz loc_41D8CA

跟进去之后,代码如下

.text:00405190 push 0FFFFFFFFh

.text:00405192 push offset loc_596D31

.text:00405197 mov eax, large fs:0

.text:0040519D push eax

.text:0040519E mov large fs:0, esp

.text:004051A5 sub esp, 40h

.text:004051A8 mov eax, dword_611F00

.text:004051AD xor eax, [esp+4Ch]

.text:004051B1 push ebx

.text:004051B2 push ebp

.text:004051B3 push esi

.text:004051B4 push edi

.text:004051B5 mov edi, [esp+5Ch+arg_0]

.text:004051B9 mov ecx, edi

.text:004051BB mov [esp+5Ch+var_10], eax

.text:004051BF call ?size@?

$basic_string@DU?$char_traits@D@std@@V?

$allocator@D@2@@std@@QBEIXZ //MFC字符串类的方法

//得到字符串长度

.text:004051C5 cmp eax, 17h

//看输入的是否是23

//个字符

.text:004051C8 jnz loc_40540C

.text:004051CE push 5

.text:004051D0 mov ecx, edi

.text:004051D2 call ??A?$basic_string@DU?

$char_traits@D@std@@V?$allocator@D

@2@@std@@QBEABDI@Z //取字符串的第6

//个字符

.text:004051D8 cmp byte ptr [eax], 2Dh

//和"-"比较

以下还有两处,判断第12位和第18位是不是"-"

.text:00405207 push offset

a5azuhNzcd6La83 ; "5AZUH-NZCD6-LA83C-RW5KS"

//黑名单

.text:0040520C push edi

.text:0040520D call ds:??8std@@YA_NABV?

$basic_string@DU?$char_traits@D@std@@V?

$allocator@D@2@@0@PBD@Z //字符串比较

.text:00405213 add esp, 8

.text:00405216 test al, al

.text:00405218 jnz loc_40540C //相等就跳

现在开始时注册号的计算过程

一共分为3段

(1)把输入的字符串在字符表B2CD6FHJ1LN4RSTE3VWX8YZA0Q7MUK9P5

中的位置写道内存中

对应ZA5UH-NZCD6-LA83C-RW5KS

在内存中的数字就是

16 17 20 1C 06 -

0A 16 02 03 04 -

09 17 14 10 02 -

0C 12 20 1D 0D

每个数字占32位,“-“用ffffffff代表

代码如下

.text:0040521E lea ecx, [esp+30h]

.text:00405222 call ds:??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string

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

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

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