老文章档案 · 2003 年

5-Or-More! v2.0a

天下资讯 · 破解文章 · 2003-06-15 · 作者:shitman 人气: · 出处:嬴政天下整理收藏)

菜鸟教程,教你看最简单的注册算法

5-Or-More! v2.0a 这是一个很好玩的小游戏(见附件60k),寓教与乐,来解开它的秘密!!!

运行游戏填入用户名:shitman 假注册码:87654321 ctrl+n 调出trw2000 下bpx hmemcpy, g

回到游戏界面,点确定,被拦下,清断点 bc * 回到游戏 pmodule

0167:0040605F FF154C144100 CALL `USER32!GetDlgItemTextA`

0167:00406065 6A10 PUSH BYTE +10

0167:00406067 8D4DF0 LEA ECX,[EBP-10]

0167:0040606A 51 PUSH ECX

0167:0040606B 6882000000 PUSH DWORD 82

0167:00406070 FF7508 PUSH DWORD [EBP+08]

按F10几下到此*****(1)

0167:00406073 FF154C144100 CALL `USER32!GetDlgItemTextA` *****(1)获取用户名

0167:00406079 8D4DB0 LEA ECX,[EBP-50]

0167:0040607C 51 PUSH ECX 下 D ECX=shitman

0167:0040607D FF1560134100 CALL `KERNEL32!lstrlenA` 获取用户名的长度

0167:00406083 85C0 TEST EAX,EAX

0167:00406085 0F8489000000 JZ NEAR 00406114 如EAX=0,说明用户名为空就跳去死了!我有用户名,所以不会跳去死^_^

0167:0040608B 8D45F0 LEA EAX,[EBP-10]

0167:0040608E 50 PUSH EAX 我输入的假注册码 D EAX=87654321

0167:0040608F FF1560134100 CALL `KERNEL32!lstrlenA`获取注册码长度

0167:00406095 85C0 TEST EAX,EAX

0167:00406097 747B JZ 00406114 不为空,不会跳去死,会往下走

0167:00406099 8D45F0 LEA EAX,[EBP-10]

0167:0040609C 50 PUSH EAX EAX里放着我的假码:87654321

0167:0040609D E84EFEFFFF CALL 00405EF0 ********(2)这里就是关键处了

0167:004060A2 83C404 ADD ESP,BYTE +04

0167:004060A5 85C0 TEST EAX,EAX

0167:004060A7 746B JZ 00406114 走到这里就会跳去死了,因为我输入的是不正确的注册码,在*****(2)的call 会验证我的87654321,肯定不通过,跳到下面去死了。所以要去******(2)中的CALL里看看,到目前我们都没看到正确注册码,说明注册码在这个CALL 里做文章。

0167:004060A9 8D45F0 LEA EAX,[EBP-10]

0167:004060AC 8D4DB0 LEA ECX,[EBP-50]

0167:004060AF 50 PUSH EAX

0167:004060B0 51 PUSH ECX

0167:004060B1 E87FFEFFFF CALL 00405F35

0167:004060B6 83C408 ADD ESP,BYTE +08

0167:004060B9 85C0 TEST EAX,EAX

0167:004060BB 7449 JZ 00406106

0167:004060BD 6A40 PUSH BYTE +40

0167:004060BF 68ACD34000 PUSH DWORD 0040D3AC

0167:004060C4 6864D94000 PUSH DWORD 0040D964

0167:004060C9 FF7508 PUSH DWORD [EBP+08]

0167:004060CC FF1538144100 CALL `USER32!MessageBoxA`

0167:004060D2 C705F0E940000100+MOV DWORD [0040E9F0],01

0167:004060DC A1C4E94000 MOV EAX,[0040E9C4]

0167:004060E1 50 PUSH EAX

0167:004060E2 E87DCFFFFF CALL 00403064

0167:004060E7 83C404 ADD ESP,BYTE +04

0167:004060EA A1A0FA4000 MOV EAX,[0040FAA0]

0167:004060EF 6A00 PUSH BYTE +00

0167:004060F1 68449C0000 PUSH DWORD 9C44

0167:004060F6 50 PUSH EAX

0167:004060F7 FF15B0144100 CALL `USER32!GetMenu`

0167:004060FD 50 PUSH EAX

0167:004060FE FF15B8144100 CALL `USER32!DeleteMenu`

0167:00406104 EB23 JMP SHORT 00406129

0167:00406106 6A30 PUSH BYTE +30

0167:00406108 68ACD34000 PUSH DWORD 0040D3AC

0167:0040610D 684CD94000 PUSH DWORD 0040D94C

0167:00406112 EB0C JMP SHORT 00406120

0167:00406114 6A30 PUSH BYTE +30 **************去死的

0167:00406116 68ACD34000 PUSH DWORD 0040D3AC

0167:0040611B 6834D94000 PUSH DWORD 0040D934 地方在这

0167:00406120 FF7508 PUSH DWORD [EBP+08]

0167:00406123 FF1538144100 CALL `USER32!MessageBoxA`**********出错的对话框

算法段

0167:0040609D E84EFEFFFF CALL 00405EF0 ********(2)按F8跟进上面的这个关键对比call里

来到以下代码段:

0167:00405EF0 8B442404 MOV EAX,[ESP+04] 将87654321假码所在地址给EAX

0167:00405EF4 85C0 TEST EAX,EAX

0167:00405EF6 743A JZ 00405F32 测试EAX不为0,不会去死。

以下是比较注册码过程(最最简单的非明码比较)如果不看这里,你是无法得到正确的注册码!!!!!

0167:00405EF8 803831 CMP BYTE [EAX],31 比较第一位注册码是否是31即 1

0167:00405EFB 7535 JNZ 00405F32 到这里就不要往下按F10了,否则你去死了

0167:00405EFD 80780136 CMP BYTE [EAX+01],36 比较第二位注册码是否是36即 6

0167:00405F01 752F JNZ 00405F32

0167:00405F03 80780231 CMP BYTE [EAX+02],31 1

0167:00405F07 7529 JNZ 00405F32

0167:00405F09 80780333 CMP BYTE [EAX+03],33 3

0167:00405F0D 7523 JNZ 00405F32

0167:00405F0F 80780435 CMP BYTE [EAX+04],35 5

0167:00405F13 751D JNZ 00405F32

0167:00405F15 80780535 CMP BYTE [EAX+05],35 5

0167:00405F19 7517 JNZ 00405F32

0167:00405F1B 80780631 CMP BYTE [EAX+06],31 1

0167:00405F1F 7511 JNZ 00405F32

0167:00405F21 80780730 CMP BYTE [EAX+07],30 0

0167:00405F25 750B JNZ 00405F32

0167:00405F27 80780800 CMP BYTE [EAX+08],00 第九位没了就完成任务

0167:00405F2B B801000000 MOV EAX,01 置EAX=1

0167:00405F30 7402 JZ 00405F34 跳到返回ret成功了!!!!!

0167:00405F32 33C0 XOR EAX,EAX *******EAX=0上面的任意一个jnz 跳到这,你就完蛋

0167:00405F34 c3 Ret

考,注册信息不在注册表里,而在windows/5ormore.ini 里,我在注册表里找了半天。

[Settings]

Options=03C223C2430303C2630303C21313

MoreOptions=73C203C203C203

SN=1363133353531303

Name=5D5C1D9ABC9C

Time=64279602A457C6021323021313A33313A313130223030323A0

来看看sn 注册码的格式吧:从后往前 30 31 35 35 33 31 36 31 这是在跟踪时

的对比码16进制的,对应的字符为:01553161,既是注册码的反向16135510。

注册名:name 对应的是十六进制码 把这些信息删除,就成未注册版了^_^^_^。

总结:跟用户名无关,固定的注册码:16135510

这是本人第一次写教程,很菜,不过写这点东西也把我累坏了,恳请高手指教。

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

相关资讯:

·ASProtect的加密算法初步分析

·MD5算法研究

·Active Ebook Compiler的注册算法

·语音界面2.0算法分析及注册机源码!

·简单算法——小护士 V1.2

·侠客系统修改器1.21破解手记--算法分析

·中文拨号上网计时计费器 V4.12注册算法分析

·加密算法之RSA算法

·加密算法之DES算法

·加密算法之ElGamal算法

相关软件:

·胜新出纳-支票打印软件 V4.0X 的注册码算法

·胜新现代办公百宝箱 V5.01 的注册码算法

·胜新信函宝典-信封打印软件 V2.02 注册码的算法

·胜新通用企业计划管理系统的注册码算法

·共享软件加密算法库 V3.2

·操作系统内存分配银行家算法模拟系统 XP

→ 特别推荐

→ 热点TOP10

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

关于我们 |

帮助(?)

| 广告服务 |

版权声明 |

商业合作 |

发展历程 |

加盟我们 |

联系我们

Copyright ? 1998-2003 winzheng.com

All Rights Reserved.

特别感谢 蓝芒科技 提供下载站及论坛服务器

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

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

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