反编译后的数组使用解析

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

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

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

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

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

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

第五行数据为例,即:

64+255*2+2=576.

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

0x64=100

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

时间: 2024-10-26 03:21:19

反编译后的数组使用解析的相关文章

Android安全攻防战,反编译与混淆技术完全解析(上)

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/49738023 之前一直有犹豫过要不要写这篇文章,毕竟去反编译人家的程序并不是什么值得骄傲的事情.不过单纯从技术角度上来讲,掌握反编译功能确实是一项非常有用的技能,可能平常不太会用得到,但是一旦真的需要用到的了,而你却不会的话,那就非常头疼了.另外既然别人可以反编译程序,我们当然有理由应该对程序进行一定程度的保护,因此代码混淆也是我们必须要掌握的一项技术.那么最近的两篇文章我们就围

JD-GUI反编译后代码逻辑分析

一,用jd-gui.exe等工具查看源代码.如何你不会,可以参看此文章: http://blog.csdn.net/hp_2008/article/details/8207879 可以到以下连接下载可视化反编译工具: http://download.csdn.net/detail/hp_2008/5099046 二,反编译后的源代码,是乱的,看不太懂.这是因为开发者在发布APK时,一般都会用代码混淆器将原始的源代码打乱,这也是防盗的一种方法.但是再怎样防,道高一尺,魔高一丈,用反编译工具很轻松的

浅析Class文件反编译后的文件与源码文件大小关系

1.  编辑java文件后(有注释的情况下) 使用eclipse编译后成为.class文件后 2. 使用反编译工具编译后使用自带(Ctrl+S)的保存源码方式保存 3. 仅复制java翻译后的信息 其大小目前为149字节. 后续处理 a.      现在删除掉[第一步]源码文件中无关注释行,其大小变为118字节,但是其功能仍能实现. b.      现在将[第二步]中反编译工具保存的源码删除了无关部分,再看其大小.发现只有通过删除无关代码和空行后,才能使得其大小与第三步得到为java文件大小一致

C#中修改Dll文件 (反编译后重新编译)

Dll文件生成后,如没有源代码,又要修改其中内容 可以用微软自带的ildasm和ilasm程序 先用ildasm将dll文件反编译成il文件 ildasm Test.dll /out=Test.il 会生成Test.res和Test.il两个文件 il文件可以用文本编辑器修改,要注意其中的语法 改完后再用ilasm将il文件重新编译成dll文件 ilasm /dll /res:Test.res Test.il /out:Test.dll 本人测试时因为ildasm和ilasm程序都是从网上下载来

实现android apk反编译后代码混淆

通常情况下我们需要对我们开发的android代码进行混淆,以免代码在反编译时暴露敏感信息及相关技术代码: 反编译测试工具:onekey-decompile-apk-1.0.1. 在高级版本的adt创建完都会有project.properties文件:开启混淆的话,需要在文件中这样做如图: 注意:混淆代码的生效时刻是在:apk签名之后. 然后在用onekey-decompile-apk-1.0.1反编译后效果如下:

Android反编译后重新打包

apk中包含的内容 使用apktool直接反编译apk 好吧,不管怎样,反正是报异常了.有人说是apktool的版本不是最新导致的,我也难得去查找原因了,以前这样直接反编译也就是那样而已. 使用dex2jar将从apk中解压得到的dex文件转成jar包 使用jd-gui来查看jar包内容 将要需改的类更改代码后复制到jar内,完成覆盖替换 把jar包重新转成dex文件 将修改完成后的dex文件复制到原来的apk文件中 直接覆盖原来的dex文件 然后就兴冲冲地直接去安装了,然而- 看来果然没这么简

jd-gui 反编译后去除注释

默认情况下,使用jd-gui反编译时会有注释. 行号注释 /* 521:502 */ 元信息 /* Location:           D:\core-1.0.0.jar * Qualified Name:     com.co * JD-Core Version:    0.7.0.1 */ jd-gui 反编译时就可以设置不加注释 Help--Preference 去掉Sources saver 下的两个复选框

恢复Reflector反编译后资源文件的办法

反编译问题: 1.路径问题:如果遇到了Path.Combine,有错误改下即可 2.资源文件问题: 在Reflector下,对左边的资源管理窗口的Resources文件夹下的资源文件,进行右键点击,选中"Save as" 选项保存即可. 例:对于项目文件夹里面的TryAssemb.Form1.resx,首先改为Form1.resx然后移动到TryAssemb目录里面 3.对窗体打开"视图设计器",发现会出现下面的错误: 修改方法就是对所有System.Windows

php脚本生成google play url的下载链接,下载apk并自动反编译后获取android版本号

    需求:     get the offer tracking link    follow the redirect to get google play url    Go to http://apps.evozi.com/apk-downloader/    Enter google play url    Download APK file    Decompile APK file using https://code.google.com/p/android-apktool/w