先说教程:

以手机管家7.7.5版本为例,点按mt管理器并查看

点右下角的“查看”

点击其中一个dex,选择dex++编辑器,全部勾选进入

然后选择搜索,搜索“getMinusPredictScore”
类型为字符串

接着,不出意外的话应该只有一个结果,点开

代码大概长这样

接着点开最上面的指南针,长按目前高亮的选项,在弹出的菜单中点“清空代码”

大功告成,然后一路返回保存代码回编译(不勾选自动签名),安装之后即可锁定100分


下面开始讲思路:

咱们手机管家的分数为100分的时候,它下面会有一行提示“手机十分安全,请继续保持”
诶,我们的突破口就是在这里,我们通过搜索它的arsc获得了ID值“7F12075D”

在dex中搜索此ID值,即可得到以下结果

在这么多的结果中,只有里面找到的代码中包含归属于scanner中的类才是我们想要的(这里参考还没被混淆的时候的手机管家,谢谢现在已经面目全非了

t耐克嘴


在最后一个结果中,我们找到了有关这一类的引用
p方法会返回一个int类型的值

看不懂?我们转成Java代码试试吧

在这个p方法中,它引用了ScoreManager的n方法,传入空参并定义了int类型的n变量把n()计算的结果赋值给我们的n变量
接下来有趣了,它最后是返回了100-n作为这个方法传出的int值
那么,我们可以将ScoreManager类中的那个n方法传出的值变为0,前面的判断都无法走过,直接跳转到最后一行,最终返回的结果100-n,即是100-0,也就是依旧是100(分),我们的目的达成
跳转到ScoreManager类中的n方法,我们神奇地到达了前面教程的地方

是不是很熟悉?

假使我们转成Java代码,你就会发现getMinusPredictScore这一段字符串其实是程序员编写的log测试代码
之所以要让你们通过搜索字符串getMinusPredictScore来定位
是因为log是不容易被混淆的,这样可以解决教程因版本迭代而失效的问题

然后我们清空代码,这样就能够实现传出的int值为0啦~

return 0

版权声明:转载自酷安@Qe_xr