bytedance / bhook

:fire: ByteHook is an Android PLT hook library which supports armeabi-v7a, arm64-v8a, x86 and x86_64.
https://github.com/bytedance/bhook/tree/main/doc#readme
MIT License
2.05k stars 315 forks source link

关于蹦床逻辑的两个疑问 #23

Closed Mr-JingShi closed 2 years ago

Mr-JingShi commented 2 years ago

https://github.com/bytedance/bhook/blob/19f99d96c5e561b8e3598498024ef1285ee59c83/bytehook/src/main/cpp/bh_trampo.c#L184 大佬,请问下,为什么没有实现block的munmap操作?

https://github.com/bytedance/bhook/blob/19f99d96c5e561b8e3598498024ef1285ee59c83/bytehook/src/main/cpp/bh_trampo.c#L115 为什么没用sys_munmap(create用的是sys_mmap+sys_prctl)?

caikelun commented 2 years ago

create过程发生在trampoline中,用lss是为了尽量避免被别人hook(inlinehook或plthook),可能会发生一些不可预知的问题,或者影响unwind过程。munmap发生在thread销毁过程中,不在trampoline中,所以无所谓了。

Mr-JingShi commented 2 years ago

https://github.com/bytedance/bhook/blob/19f99d96c5e561b8e3598498024ef1285ee59c83/bytehook/src/main/cpp/bh_trampo.c#L184 请问下:为什么没有实现block的munmap操作?