一、工具及游戏介绍
使用工具:Beyond Compare,010Editor,Ollydbg
实现功能:全部通关。
ferryman 渡者
二、逆向逻辑
1、初步判断
有两个方案:
- 进OD下相关的文件API断点,观察游戏数据被保存在哪个配置文件。
- 第二方法比较取巧,通过文件资源管理器的时间排序,来找到最后修改的文件,确定配置文件。
这里选择方案2。
游戏过关,并查看文件资源管理器。
替换未过关的profile文件,发现关卡回到了之前,可以确定是profile文件。
2、对比判断
备份游戏过关前后的profile文件。
用Beyond Compare进行文件数据的16进制比较。
3、修改文件
顺水推舟,用010Editor修改以下区域数据。
更新profile文件。
成功破解。
二、效果
逆向破解通关成功。
三、附加
来个小彩蛋, 拉进OD调试,发现文件有个小操作。
首先打开game.exe
在一些文件操作函数 和 进程线程函数 下断点,然后栈回溯到程序代码,程序函数。
发现程序调用CeateProcess。
查看CeateProcess的参数,发现程序实际打开的是captiv8.exe,并结束掉自身。
captiv8.exe才是真正运行游戏的程序。
个人总结:如果采用第1种方案的话,你会发现程序调用CreateFile的次数较多,打开很多文件,可能需要一个一个去观察锁定。包括还要辨别文件在附加彩蛋那里,刚开始打开了另一个exe,掩人耳目。
所以这里采用第2种方法,省下不少力气。
附件:
KID