Big Time Gangsta和街头风云 是掌中米格公司(Glu Games Inc.)同一款游戏,只是一个早期的英文版,另一个是中文版。
今天休息,正好研究研究,此游戏搜索修改值时虽然能找到,上面那一条五个值,钻石、钱、经验等,但修改后回到游戏没有变。
当初分析以为是双值验证,或显示值与加密值(也许可能是浮点),模糊搜索,浮点/整数分析,但怎么分析就这么一个值。
那反复测试已查到的数据,感觉应该就是这个,可能有验证小程序守护,故无法修改。锁定后五个值后,反复测试如何跳出验证小程序,
最后发现在抽奖(或者叫做赌场)可跳过验证修改成功,再打一局就可以提交经验到GameCenter了。
其中五个值是连着的,找到一个即可找到全部。
附图如下:
先找到这五个值,然后锁定。004A8020是经验,004a8024是钻石。(此五个值地址较为固定,估计应该为全局变量)
回到游戏中
然后去抽奖玩一下,就修改成功了。
分享一点修改小经验:
部分游戏使用多值验证,修改时须要同时修改这些值才有效,否则多值之间不等时,程序会判断为修改。
再则就是值为一个,但有守护程序进制验证,修改时须要先锁定,然后反复找漏洞,想办法跳过验证程序,我实际上就是乱点。
最后就是表面值与加密值,此类修改难度较大,按它的加密规则修改加密值才有效。虽然大部分可以通过模糊搜索找到加密的值(例如表面值+某个数=加密值)
但有些游戏加密复杂,如游戏中增加,而加密值减少等等,或者使用动态地址,无法定位,故得慢慢研究方法,可通过上级变量或相关联的变量来修改达到目的。
如果全部加密,再中上动态管理,如果没有汇编代码可分析,那只能等高手通过内部或外围来破解了。
(例如:新版的开心水族箱,原来分析出来的漏洞以及修改数据,均无效,还好当时我测试时打了N个100级的存档,随变拿出来一个,在GameCenter上就又排第一了)
游戏中的数据大多数都是以 变量或数组 等的形式存在,但在内存中都是按不同长度表现地址和地址上的内容。
如全局变量或静态变量 在内存中的地址较为固定,但局部变量等就不太固定。所以我们使用八门神器修改内存,实际上就是在修改游戏中的变量,改变其计算结果来控制我们想要的数值。故通过看定位内存中我们想看的东东,可以大概分析程序内部的运算类型,运算方式、参数控制等,如果再配合汇编程序代码分析就更加精确一点了。
当然纯无聊爱好而以,以上内容为个人小经验,专业选手勿见笑,直接忽略。