码迷,mamicode.com
首页 > 编程语言 > 详细

反编译后的数组使用解析

时间:2014-12-09 15:45:29      阅读:396      评论:0      收藏:0      [点我收藏+]

标签:反编译   数据存储   游戏破解方面   

上午在一个群里见到有人在问反编译后的数组问题,不知道如何计算数据,想起来自己以前有写过小记录,这里再次贴上吧,供人参考一下。

对于一些简单的游戏来说,商店物品和人物血量之类的都是用数组来定义的。拿到一个游戏反编译后,经过分析寻找,发现所使用人物初始化数值为数组定义,以下为人物血量值,从第一级血量到满级都存放在下面这个数组。


bubuko.com,布布扣



这个图看不懂,没问题,我放上下图的的java代码你就明白了:


bubuko.com,布布扣


 关于这个数组,我们需要分析的是其中数值的计算,经过查询资料,这里面的数据是低级的数据存储,每一行代表着数组中一个数据,这两个数组是相互对应的。所以通过计算,一行代表着一个数组数据,每一行分成四个,同时,每个数据的最大值为255,于是第二个数据中0x1代表着一个255,加上第一个数据,再加上第二个数据的1则为数组中第二个数据的数值。

例如上面第三行为例,即:

0x0+1*255+1=256.(数据1的十进制+数据2的十进制*255+数据2的十进制=结果数据)

第五行数据为例,即:

64+255*2+2=576.



同时需要记得,这里的数据都是16进制的,可以直接用win7下的计算器将10进制数据转换为16进制即可。即如

0x64=100


这样了解以后,我们修改的时候,就可以直接修改每一行的第二个,第三个数值即可直接将人物血量调高,很简单的~




反编译后的数组使用解析

标签:反编译   数据存储   游戏破解方面   

原文地址:http://blog.csdn.net/guiguzi1110/article/details/41823763

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!