Java线程Hook
使用SandHook监控Thread#start()函数的调用
/ganyao939543405/article/details/86661040
问题:
如果是线程池,则得到调用start方法的堆栈没有意义。
需要hook Runnable的run方法
Native线程Hook
使用XHook监控pthread_create
方法的调用
导出堆栈信息
hook到线程启动动作之后,需要导出堆栈信息,分析堆栈信息能够知道启动线程的动作来自于哪个业务模块。
问题
因为java的线程最后也是走到native的pthread_create
方法,所以hook到pthread_create
方法后,还需要区分,如果是java线程,则pass掉,只处理native代码调用到pthread_create
的那部分。