简书链接:重写一个Xposed帮助类过某些检测以及保护自己的xposed插件。
文章字数:725,阅读全文大约需要2分钟
研究背景
1.需要把自己插件的xposed hook点代码进一步隐藏,免得用户攻击我的app分析我写的啥。
2.对抗某些app等通过de.robv.android.xposed.XposedBridge
中的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| ```de.robv.android.xposed.XposedHelpers```的```methodCache```字段和```fieldCache```字段来判断插件是否hook了自己应用的某些类。 3.对于```de.robv.android.xposed.XposedBridge.disableHooks```字段的修改,你可以包裹一层,然后时时刻刻打开hook功能即可,谋求这个东西没法通过这个sdk过,和xposed官方源码有关系。
此工具在```xposed```环境使用,也就是需要依赖···de.robv.android.xposed.XposedBridge··· 本工具类绕过了···de.robv.android.xposed.XposedHelper···的调用 绕过了```de.robv.android.xposed.XposedBridge```的某些代码执行,因此有如下作用。
### 作用一: 众所周知,朋友们习惯用Xposed作者提供的XposedHelper进行hook相关类,这样导致的问题是 防护安全的开发人员可以通过反射XposedBridge 拿到sHookedMethodCallbacks 检查是否hook了自己的应用。
### 作用二: 某些喜欢看别人xposed源码的朋友喜欢习惯性的搜索XposedHelper/XposedBridge/XC_MethodHook 来搜寻你的app里面的代码,这将导致你的hook点代码很容易被暴露,这里套了一层代码,增加难度,配合混淆使用效果更好,即便他知道混淆成了a,搜索a也会出现一大堆a类。 另外打开一个hook点的代码进行阅读,它看起来还是吃力一点了,压根不知道哪些是hook的代码。
### 作用三: 你也可以使用此sdk工具包 hook别人的xposed插件,因为走的逻辑不一样,不会死循环,你可以hook别人的```XposedHelper.findAndHookMethod```等方法, 不过我这和初衷矛盾了,这个东西是个好东西,怎么用看你自己。嘿嘿嘿! 对于这种用户,我给的方法是自己再封装一层,寻找class通过c层寻找,hook代码也可以在c层做,增加难度。
### 用法:
|
api files("libs/xposed_alias_killer.jar")
hook某个方法和官方一样的用法,只是包名改了而已,你可以快速的替换,全局搜索
```import de.robv.android.xposed```替换为```import cn.qssq66.xposed```
替换完毕后打包你可以混淆此类哦!
作者:qssq666
邮箱:[email protected] [email protected]
下载地址
链接:https://pan.baidu.com/s/1bFv0ouAAeuI57ckUdNIalQ
提取码:01e0