请问安卓的某些rpg游戏(比如艾诺迪亚3)物品爆率、经验倍数、无限物品之类的是怎么改的?

本人懂一点Java,知道安卓软件结构,请详细说明,谢谢... 本人懂一点Java,知道安卓软件结构,请详细说明,谢谢 展开
 我来答
corcan
2012-11-18 · TA获得超过504个赞
知道小有建树答主
回答量:235
采纳率:0%
帮助的人:231万
展开全部
那你搞过安卓开发吗?得要有一点经验才行,我把我破解的步骤告诉你吧。

下载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的时候,不知道代码转到什么地方执行了。

一开始有点难,很多东西是要自己慢慢去摸索的,看多了就和看普通的工程一样了。
11Sco
2012-11-18 · TA获得超过241个赞
知道小有建树答主
回答量:445
采纳率:0%
帮助的人:224万
展开全部
种子3,在宝软下的就是无限点,无限钱
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
AUVAUV6
2012-11-18 · TA获得超过991个赞
知道小有建树答主
回答量:1412
采纳率:50%
帮助的人:768万
展开全部
八门神器。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
張明偉
2012-11-18 · TA获得超过741个赞
知道小有建树答主
回答量:445
采纳率:0%
帮助的人:269万
展开全部
源码转换..
追问
能不能详细说明一下具体过程?谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式