美文网首页
Thread治理 -- ART Hook

Thread治理 -- ART Hook

作者: Young_Allen | 来源:发表于2022-01-16 09:28 被阅读0次

    上一篇文章讲到使用AOP技术,从字节码上修改Thread,但未通过Java创建的线程无法监控到,那如何能监控到Native创建的线程呢?

    首先看下Thread源码的创建过程:
    Android上创建一条线程的流程如下:

    使用ASM修改JAVA 字节码的方式虽然可以解决应用层创建线程的问题,但是so内创建线程的无法定义。如果在pthread创建线程时,可以把当前的调用栈信息(包括线程id、方法名、函数名、行号?)保存到内存或文件,在需要分析时再根据线程id匹配相应的文件实现跟踪,将会对优化线程相关问题分析的效率有极大帮助。

    Native Hook方式有PLT和inline方式,不过inline hook的方式兼容性不好,且不稳定。
    PLT方式成熟方案有xhookbhook都可以满足需求。

    通过Art Native Hook的方式在创建线程时代理到自定义的方法内:

    相关文章

      网友评论

          本文标题:Thread治理 -- ART Hook

          本文链接:https://www.haomeiwen.com/subject/fykgzltx.html