L 发表于 2018-1-18 16:38

申请会员ID: 吃大米的L【申请通过】


1、申请会员ID:吃大米的L
2、个人邮箱:2297643478@qq.com
3、原创技术文章:

反编译安卓游戏[深城] 修改技能伤害

这个游戏是一个末日AI机器人, 探索地下世界的故事,
之所以想修改他的技能伤害, 是因为玩到某一关有个血量巨tm高的boss玩了好久都过不去,而做材料需要时间太长了.
废话不多说, 上游戏


首先,先把apk发送到电脑, 用工具签一下名, 这里用的是吾爱破解的工具包
先把apk拖进去签名, ( 防止重编译后停止运行,因为我以前吃过这样的亏)



呐, 然后把签名过的apk拖进改之理, 反编译
我们这次的目的呢是为了改技能伤害, 我们来搜索一下伤害的英文碰碰运气
游戏里伤害的英文一般是damage

这里我们发现了好多结果, 那么究竟是哪个呢.
眼睛一撇, 呐, 有一个getDamage
那这个方法可能就是获取伤害值, 计算伤害的方法了
点进去看一下 , 嘻嘻

那这里是一个smail文件, 看的不清晰,
我们点击上面的java图标来看一下java源码

咦? 这个类的名字居然没有混淆?
这是一个等级类?
好吧好吧, 意外地发现了好多有价值的东西
那我们既然是奔着技能伤害来的, 那么就重点关注一下getDamege方法
可以看到这个方法是直接返回了另一个类的方法, 而且注意看,参数是this.level
这么说, 伤害应该是由等级作为参数来计算的.
接下来我们直接进入那个方法, 来看一下具体的伤害计算方式吧!

分析一下这个方法, paramInt这个形参, 就是刚才那个方法传过来的等级了, 所以paramInt这个参数就是等级
然后刚进方法, 他使用了一个参数i=paramInt + 1
通过上面我们知道, 既然是根据等级来计算技能伤害的, 那么也就是说, 肯定等级越高伤害越高
这里我们看到了 i 这个参数是由等级+1计算得来的, 而且下面都是通过这个 i 计算, 所以, 我们让这个 i 的值改变
技能伤害当然也就随之改变啦
所以java代码改成这样: int i = paramInt + 500
这样就相当于我们的等级加上500再传入这个 i 了
这伤害还不爆表了?我们直接增加了500级的伤害
好啦理论上是这样, 但是java源代码是不能修改的, 只能作为参考
我们应该去改smail的代码
找到这个类对应的smail文件, 在里面找到这个方法
看一下这个类的路径com.rockbite.deeptown\!\com\underwater\demolisher\logic\a.class

我们找到这个方法, 一眼就看到了一个add加法运算
这行代码的意思就是把p0 + 1 赋值给 v1 , 确定了,就是刚才那句java代码
那他加上了0x1 就是只加了1 , 我们让他加上 500
500转换成十六进制就是 0x1f4
因为我们后面加的数变大了, 所以lit8 已经不能满足需求了, 我们需改改成 lit16
所以这行代码就改为:   add-int/lit16 v1, p0, 0x1f4

ok , 修改完成了,
我们用改之理重新编译apk

发送到手机测试一下吧!

ok成功了, 一路秒到三百多层,
别看数字很小, 后面的n 应该是游戏里最大的单位了
足够秒天秒地秒空气

好啦到这里就结束了,, 感谢观看[(#^.^#)]

闲庭信步丶 发表于 2018-1-18 17:20

等H大出现召唤术Hmily

Hmily 发表于 2018-1-18 17:21

I D:吃大米的L
邮箱:2297643478@qq.com

申请通过,欢迎光临吾爱破解论坛,期待吾爱破解有你更加精彩,ID和密码自己通过邮件密码找回功能修改,请即时登陆并修改密码!
登陆后请在一周内在此帖报道,否则将删除ID信息。

ps:过程有些简单,但写的还算详细,给予通过,期待以后有更多精彩文章,另外登录后可以把文章整理到移动安全区。

吃大米的L 发表于 2018-1-18 18:12

新人报道

q879757088 发表于 2018-1-19 08:41

吃大米的L 发表于 2018-1-18 18:12
新人报道

欢迎欢迎!

lialu2009 发表于 2018-1-19 13:52

页: [1]
查看完整版本: 申请会员ID: 吃大米的L【申请通过】