博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Xposed 插件开发(三)—— 我的 hooker 是哪里导致出错了?
阅读量:6229 次
发布时间:2019-06-21

本文共 1985 字,大约阅读时间需要 6 分钟。

  hot3.png

    本篇文章,我们来说说 hooker 报错了,我想找到异常的详细信息!

    Xpose 这个工具还是很强大的。可以在任何的地方进行植入自己的代码。对于异常的堆栈信息获取,我这里直接给出代码。 

    在 XC_MethodHook 的回调方法  afterHookedMethod 回调中,打印堆栈信息。

 

   代码详细如下:

public static void exceptionHooker(final XC_LoadPackage.LoadPackageParam lpparam) {        XposedHelpers.findAndHookMethod("java.lang.Throwable", lpparam.classLoader, "getStackTrace", new XC_MethodHook() {            @Override            protected void afterHookedMethod(MethodHookParam param) throws Throwable {                StackTraceElement[] result = (StackTraceElement[]) param.getResult();                boolean xposedDetected = false;                for (StackTraceElement localStackTraceElement : result) {                    if (localStackTraceElement.getClassName().equals("de.robv.android.xposed.XposedBridge")) {                        //found xposed                        XposedBridge.log("Now, let's skip the Alipay hook checker, HOHO`` Anti Hook Starting.., skip method name: " + localStackTraceElement.getMethodName());                        xposedDetected = true;                        break;                    }                }                if (xposedDetected) {                    //Replaces the returning value                    List
newResult = new ArrayList<>(); for (StackTraceElement localStackTraceElement : result) { if (localStackTraceElement.getClassName().equals("de.robv.android.xposed.XposedBridge")) { //found xposed and skip... continue; } newResult.add(localStackTraceElement); } StackTraceElement[] retval = newResult.toArray(new StackTraceElement[newResult.size()]); XposedBridge.log("Anti Hook returning..."); param.setResult(retval); } } }); }

 

    读者如果有什么疑问的话,随时可以联系我进行技术交流。

 

 

转载于:https://my.oschina.net/Rayn/blog/2052177

你可能感兴趣的文章
高效运维最佳实践:如何做好On-call和事故响应?
查看>>
矩阵:如何使用矩阵操作进行 PageRank 计算?
查看>>
C# 8的新提案:new关键字类型推断
查看>>
方面和服务,差别大吗?
查看>>
Rust 和Erlang的对比
查看>>
C# 8中的默认接口方法
查看>>
微信小程序wx:for和wx:for-item的正确用法
查看>>
iOS开源项目周报1222
查看>>
个推开发者服务进阶之路
查看>>
与Jeff Sutherland谈敏捷领导力
查看>>
Facebook开源分布式日志存储系统LogDevice
查看>>
JPA 2.2带来一些备受期待的变更
查看>>
Homebrew 1.9发布,将支持Linux与Windows 10
查看>>
Loader 使用文档
查看>>
Mozilla开发全新的公开网络API WebXR 来实现增强现实
查看>>
记一次获得3倍性能的Go程序优化实践
查看>>
“迁移策略+新容器运行时”应对有状态应用的冷热迁移挑战
查看>>
中国法院裁定:禁售部分型号苹果手机
查看>>
中台之上(一):重视业务架构,不要让“业务的归业务、技术的归技术”
查看>>
如何定义研发KPI:以团队速度为标准
查看>>