今天要破解的一款游戏是很久远的一款游戏了,就是联想拖拉机了先看一下界面。
这就是界面我们要做到的效果是开始游戏就是我们做庄,也就是南,然后点数都是10点这样就算达到我们的要求了!ps也就是老师这么要求的。
先用od载入看一下
没啥特别的
一般来说对于这些东西我们要关注的是他们的点击事件所以我们下断点
bp TranslateMessage MSG==WM_LBUTTONUP
有下过断点就会发现我们的断点对于这里不起作用,有一个起作用的就是我们的MessageBoxA函数了,这里我们点击会断下来我们看一下
我们按F9运行,在COMMAND窗口输入上面的断点语句,点击两次开始游戏,第二次会弹出窗口,这个时候效果是这样的
这个时候我们按alt+F9返回用户空间(用户空间就是程序自己的函数)看一下效果
往上面瞅瞅就是这样的
我们猜测这里就是开始游戏函数开始的地方
现在我们找载入游戏函数开始的地方
这个时候我们发现载入函数怎么点击都不会断下来,这个时候怎么办呢?
有一个小秘诀一般人我都不告诉他,这个时候用ResoureceHacker打开我们的文件
我们可以看到啥?看到我们的两个menu的id号码了,我们可以通过这个id号码来找到我们的按钮相应函数
用winhex查找id 注意查找应该这么输入
32802 16进制是8022
32786 16进制是8012
打开我们的winhex
搜索这个2280000022800000和1280000012800000其实这个就是id号码
注意我标红的地方这个就是他们的相应函数地址了我们去看一下
419323就是我之前猜测开始游戏的地方这里就不展示了
这里我们隐约看到了Game.sav文件,可以大概断定这里就是载入函数了
两个函数都给我们找到了现在我们的想法是点击开始游戏就是点击载入游戏,然后修改Game.sav文件达到这种条件我们试一下。
我们修改汇编代码
发现可以完美运行,这个时候我们来看这个Game.sav文件来发现一些小秘密
可以看到前面都是02我们猜测这么就是我们的2点,我们改成A试一下
发现完美变成10了这个时候还有一个自己做庄也很好改,具体改法我会截图上传
这也是我测试出来的
这次逆向之旅到这里就差不多了。右键保存修改的exe即可。有啥疑问欢迎大家留言。