破解软件: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中。
相关视频
相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么
热门文章 去除winrar注册框方法
最新文章
比特币病毒怎么破解 比去除winrar注册框方法
华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)通过Access破解MSSQL获得数据
人气排行 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)qq相册密码破解方法去除winrar注册框方法(适应任何版本)怎么用手机破解收费游戏华为无线猫HG522破解如何给软件脱壳基础教程
查看所有0条评论>>