meitu/MTHawkeye

动态库问题

mademao opened this issue · 1 comments

前提:第三方库是以动态库的方式集成到项目中

当调用MTHawkeyeDyldImagesUtils的mtha_addr_is_in_sys_libraries方法时,如果传入方法地址是该动态库中地址,那么会判断为系统库。

自测发现原因为sys_images_begin值有误,在上述情况下,image从低地址到高地址可能为 主APP-libobjc-trampolines-动态库 这种布局,在libobjc-trampolines地址之上均认为是系统库。

不知该机制是否是刻意如此设计?若是,可以解释下如此设计的原因吗?

前提:第三方库是以动态库的方式集成到项目中

当调用MTHawkeyeDyldImagesUtils的mtha_addr_is_in_sys_libraries方法时,如果传入方法地址是该动态库中地址,那么会判断为系统库。

自测发现原因为sys_images_begin值有误,在上述情况下,image从低地址到高地址可能为 主APP-libobjc-trampolines-动态库 这种布局,在libobjc-trampolines地址之上均认为是系统库。

不知该机制是否是刻意如此设计?若是,可以解释下如此设计的原因吗?

之前为了快速判断,加上项目里可以过滤,就先忽略了这种情况。如果有必要的话,可以考虑增加一个开关特性,更精准的判断。
欢迎提交 mr 哈