导语:在版块基本没有看见关于此类游戏的教程,刚好今日有时间,截几张图做一下讲解。
要求学习者者具备一定安卓开发经验、kotlin、Java等语言的基础使用。。或者你想理解基础的一个逆向思维也可以学习,技术永远是第二,逆向思维才是第一[滑稽]四两拨千斤

找到了关键的方法getfinadamage,伤害获取。这是一个简单直接返回,并无存在相关的判断,继续分析


主要思路为:创建一个变量在这个方法内获取他们的返回结果,在伤害方法内通过获取变量进行判断。结合以上思路打开我们的as,开始写代码



模拟拦截赋值,拦截任意v0Boolean参数,传递给isplayer
sget-object v1, Lcom/qingdi/modtest/startmod;->INSTANCE:Lcom/qingdi/modtest/startmod;
invoke-virtual {v1, v0}, Lcom/qingdi/modtest/startmod;->setIsplayer(Z)V
模拟取值,读取isplayer字段获取当前值
.line 27
sget-object v1, Lcom/qingdi/modtest/startmod;->INSTANCE:Lcom/qingdi/modtest/startmod;
invoke-virtual {v1}, Lcom/qingdi/modtest/startmod;->getIsplayer()Z
move-result v1
模拟判断为false或true
if-eqz v1, :cond_4f
为true的执行逻辑
.line 31
:cond_4f
为false的执行逻辑
return-void
代码浅析结束,那么我们只需要在上面我们的两个方法内插入这些方法即可


结合以上代码把我们打包出来的dex放入apk文件即可实现一次简单的敌我判断

