重写一个Xposed帮助类过某些检测以及保护自己的xposed插
研究背景
1.需要把自己插件的xposed hook点代码进一步隐藏,免得用户攻击我的app分析我写的啥。
2.对抗某些app等通过de.robv.android.xposed.XposedBridge
中的
psHookedMethodCallbacks = new HashMap();
以及
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
邮箱:qssq666@foxmail.com qssq521@gmail.com
下载地址
链接:https://pan.baidu.com/s/1bFv0ouAAeuI57ckUdNIalQ
提取码:01e0