请问安卓的某些rpg游戏(比如艾诺迪亚3)物品爆率、经验倍数、无限物品之类的是怎么改的?
展开全部
那你搞过安卓开发吗?得要有一点经验才行,我把我破解的步骤告诉你吧。
下载doapk,用这个东西反编译游戏,反编译出来的代码是smali语言的。是java虚拟机执行的代码。然后就是在这些smali文件中打log(有些软件已经经过混绕器修改了,不过看多了就习惯了)。一步一步地摸索,直到找到你想要的数据。
现在的软件一般将重要的逻辑用ndk编写。这样反编译后就看不到他的逻辑了,不过理论上来说还是都可以修改的,像修改物品爆率,经验倍数,无限物品之类的,都可以修改的,就是麻烦一点,时间快的不到一个小时,时间慢的,要一天也有可能啊。
下载doapk,用这个东西反编译游戏,反编译出来的代码是smali语言的。是java虚拟机执行的代码。然后就是在这些smali文件中打log(有些软件已经经过混绕器修改了,不过看多了就习惯了)。一步一步地摸索,直到找到你想要的数据。
现在的软件一般将重要的逻辑用ndk编写。这样反编译后就看不到他的逻辑了,不过理论上来说还是都可以修改的,像修改物品爆率,经验倍数,无限物品之类的,都可以修改的,就是麻烦一点,时间快的不到一个小时,时间慢的,要一天也有可能啊。
追问
安卓开发没搞过,在这些smali文件中打log这一步怎么做?smali文件可读性太差了,感觉无从下手啊
追答
刚开始都是这样的,你就自己写个工程,在里面用System.out输出一段话,然后反编译,看看log是怎么打的。应该是这样:
const-string v0, "1111"
.local v0, str:Ljava/lang/String;
sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream;
invoke-virtual {v1, v0}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
把一个字符串放到v10里,把v10定义为一个局部的字符串变量,获取一个PrintStream对象,把它存放到v11里,然后调用PrintStream的虚方法println打印出“1111”这个字符串。在每个方法的头部都定义了.locals xxx,这个东西指明了这个方法里能用几个寄存器(暂且这么说吧,我觉得这个和windows的汇编语言很像),如果是.locals 10,那么只能用v0,v1,v2...v9。另外注意在中间加代码时别覆盖了其他寄存器的值,否则会出现veryfierror。
安卓开发还是要懂一点的,否则可能不知道程序的执行路线。特别是代码里有intent的时候,不知道代码转到什么地方执行了。
一开始有点难,很多东西是要自己慢慢去摸索的,看多了就和看普通的工程一样了。
展开全部
种子3,在宝软下的就是无限点,无限钱
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
八门神器。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
源码转换..
追问
能不能详细说明一下具体过程?谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询