在我hook支付宝目前的最新版10.1.58版本时,发现支付宝有反Xposed检测机制,如果安装了Xposed则无法登录,提示“你的操作频率过快,请稍后再试”
连登录都不让登录,这也太狠了趴。不过没事,我们可以把它的检测给hook掉。
1.手机连接电脑,打开Android Device Monitor ,可以看到手机正在运行的进程,选中支付宝的进程,点击Start Method Profiling进行调试(如果不能动态调试请安装mprop,安装方法自行百度)
2.点击支付宝的下一步按钮,然后点击Stop Method Profiling,停止调试,查看调用了哪些方法。
我们很容易的就找到了如下的方法,看名字就知道这是检测Xposed的
3.用jadx反编译支付宝,查看源码。如果安装了Xposed,这个方法就会返回一个String数组,存储了Xposed的一些信息,我们只要让它返回null就可以跳过支付的检测了,接下来就可以做我们想干的事情啦
4.代码如下
XposedHelpers.findAndHookMethod(XposedHelpers.findClass("com.alipay.apmobilesecuritysdk.scanattack.common.ScanAttack", mClassLoader), "getScanAttackInfo", Context.class, int.class, int.class, boolean.class, int.class, int.class, String.class, new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
super.afterHookedMethod(param);
param.setResult(null);
}
});