Closed beyondckw closed 2 years ago
是不是执行hook之前那些线程已经创建了?可以hook之前先dump一下 /proc/self/task
,然后分析下。
不是的,大部分都是hook之后才创建的,你们有用bhook来hook线程吗?
不是的,大部分都是hook之后才创建的,你们有用bhook来hook线程吗?
我们hook很多地方,也包括线程的创建。你贴下完整一些的代码?包括proxy函数。
类似这样,帮忙看下
void start_hook(){ bytehook_hook_all(nullptr, "pthread_create",reinterpret_cast<void *>(pthread_create_hook),nullptr, nullptr); }
int pthread_create_hook(pthread_t *thread_id, const pthread_attr_t* attr,void* (*start_routine) (void *), void* arg) {
INDEX ++;
int rc = pthread_create(thread_id, attr,reinterpret_cast<void *(*)(void *)>(method_proxy), nullptr);
if(rc){
LOG_E("error to create thread");
}
return rc;
}
void method_proxy(){
LOG_E("success to create thread");
}
@beyondckw 最近正好用bhook练手hook了线程创建,可以参考下 android-thread-inspector
@beyondckw proxy函数写法不对,先看下文档吧:https://github.com/bytedance/bhook/blob/main/doc/quickstart.zh-CN.md#%E7%BC%96%E5%86%99-proxy-%E5%87%BD%E6%95%B0%E4%BB%A3%E7%90%86%E5%87%BD%E6%95%B0
好的,谢谢哈
@beyondckw 最近正好用bhook练手hook了线程创建,可以参考下 android-thread-inspector
谢谢~
在应用启动的时候开始hook,还是有大部分的线程没有被hook到,是什么原因呢? bytehook_hook_all(nullptr, "pthread_create", reinterpret_cast<void*>(pthread_create_hook), nullptr,nullptr);