老文章档案 · 2003 年

桌面撞球

破解教程 · 算法分析 · 2003-06-15 · 作者:ShenGe 人气: · 出处:嬴政天下整理收藏)

破解软件:ball.exe

破解工具:TRW1.22,WDASM黄金版

破解目的:技术研究,如大家有更好的想法,请指正

破解难度易

☆软件简介:

很好玩的小游戏,在各大下载站点都有不错的成绩。游戏的玩法很有创意,你需要用鼠标押住你控制的小球,尽量打向对方的球门,还要堵截对方打向你的球门的球,虽然界面简单,但很有挑战性,对手的AI(人工智能)也很出色,并可随意设置,让人百玩不厌。而这个游戏仅仅才75k,真的是十分出色。可别玩上瘾哦!建议最大化来进行游戏,能取得最好的效果。

游戏如果没有注册成功每次启动都会跳出请你注册的提示。真是烦人!Let's go!(本人初学破解,还请高手多多指点帮助!)

先用WDASM反汇编了一下,在输入函数中发现有GETDLGITEMTEXT,运行程序,出现提示注册窗口,下bpx getdlgitemtext,F5,按确定,OK!程序被拦下,按F12跳出,来到如下代码:

2237:8529 CMP BYTE [2E30],00

2237:852E JZ 8558

2237:8530 CALL 845C <---关键的Call

2237:8533 OR AX,AX <---判断标志位的值是否为1

2237:8535 JNZ 8558

2237:8537 PUSH SI

2237:8538 PUSH DS

2237:8539 PUSH WORD 0808

2237:853C PUSH AX

2237:853D PUSH AX

2237:853E PUSH AX

2237:853F CALL USER!MESSAGEBOX <---显示出错信息

2237:8544 MOV BYTE [2E30],00

很显然,CALL 845C就是对我们输入的注册码进行处理判断,跟进这个CALL来到如下代码:

2237:845C ENTER 22,00

2237:8460 PUSH DI

2237:8461 PUSH SI

2237:8462 XOR DX,DX

2237:8464 MOV [BP-02],DX

2237:8467 MOV SI,2E30

2237:846A CMP [SI],DL <---判断是否输入

2237:846C JZ 8494

2237:846E LEA DI,[BP-22]

2237:8471 LEA AX,[BP-02]

2237:8474 CMP DI,AX <---判断我们输入的数是否大于16位

2237:8476 JNC 8494

2237:8478 MOV AL,[SI] <---取我们输入的第一个数 ---

2237:847A CBW |

2237:847B MOV BX,AX |

2237:847D TEST BYTE [BX+08FD],04 <---不清楚干什么的,有谁能告诉我? |

2237:8482 JZ 848E |

2237:8484 CBW |

2237:8485 SUB AX,30 <--- 转换成10进 |

2237:8488 MOV [DI],AX |

2237:848A ADD DI,BYTE +02 |

2237:848D INC DX |

2237:848E INC SI |

2237:848F CMP BYTE [SI],00 <---判断是否取完 |

2237:8492 JNZ 8471 |

2237:8494 CMP DX,BYTE +10 <---判断我们输入的数是否小于16位 ---

2237:8497 JL 84E1

2237:8499 MOV AX,[BP-20] <---从这以后开始取转换后的数进行运算,取第2位数

2237:849C IMUL WORD [BP-16] <---取第7位数

2237:849F IMUL WORD [BP-0C] <---取第12位数

2237:84A2 IMUL WORD [BP-0A] <---取第13位数

2237:84A5 MOV CX,AX

2237:84A7 MOV AX,[BP-1C] <---取第4位数

2237:84AA IMUL WORD [BP-1A] <---取第5位数

2237:84AD IMUL WORD [BP-0E] <---取第11位数

2237:84B0 IMUL WORD [BP-08] <---取第14位数

2237:84B3 ADD CX,AX

2237:84B5 MOV AX,[BP-14] <---取第8位数

2237:84B8 IMUL WORD [BP-12] <---取第9位数

2237:84BB IMUL WORD [BP-10] <---取第10位数

2237:84BE IMUL WORD [BP-04] <---取第16位数

2237:84C1 ADD CX,AX

2237:84C3 MOV AX,[BP-1E] <---取第3位数

2237:84C6 IMUL WORD [BP-18] <---取第6位数

2237:84C9 IMUL WORD [BP-06] <---取第15位数

2237:84CC IMUL WORD [BP-22] <---取第1位数

2237:84CF ADD AX,CX

2237:84D1 MOV CX,01F4

2237:84D4 CWD

2237:84D5 IDIV CX

2237:84D7 CMP DX,BYTE +7F <---关键判断

2237:84DA JNZ 84E1

2237:84DC MOV WORD [BP-02],01

2237:84E1 MOV AX,[BP-02] <---置AX的置为1,走到这就成功了!

2237:84E4 POP SI

2237:84E5 POP DI

2237:84E6 LEAVE

2237:84E7 RET

现在我们基本上已清楚了算法,即分别取第1、3 、6、15位数相乘,第2、7 、12、13位数相乘,第4、5 、11、14位数相乘,第8、9 、10、16位数相乘,然后将它们的和除以01F4,余数为7F就满足要求(16进制运算)。用Windows自带的计算器即可搞定!我得到的注册码为:2373535393225523。

我尝试用TC用穷举法写了个注册机,发现不是很理想,还请高手指点,有没有更好的反算算法。

该软件注册成功后将注册信息保存在C:\WINDOWS\WSLAM.INI中。

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

相关文章:

·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 © 1999-2003

winzheng.com All Rights Reserved.

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

Powered

by:MeSky.Net

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

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

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