xHook icon indicating copy to clipboard operation
xHook copied to clipboard

如何避免重名函数被hook呢?

Open zhzhyang0313 opened this issue 5 years ago • 6 comments

如果我只想hook调用libc.so的open函数,假如一个so也实现了一个open函数会不会被误hook掉?

zhzhyang0313 avatar Aug 07 '19 03:08 zhzhyang0313

感觉你说的这个问题存在,自己可以在replace里判断模块。

fr0zenrain avatar Aug 07 '19 06:08 fr0zenrain

如果我只想hook调用libc.so的open函数,假如一个so也实现了一个open函数会不会被误hook掉?

如果存在这种情况的话,程序本身运行就有问题了。C/C++ 函数名称冲突在链接的时候会有问题,你可以自己写个demo验证下,或者研究下动态链接器的原理。

caikelun avatar Aug 07 '19 06:08 caikelun

之前说错了,xhook_register 可以通过正则表达式,指定模块名。

fr0zenrain avatar Aug 07 '19 06:08 fr0zenrain

如果我只想hook调用libc.so的open函数,假如一个so也实现了一个open函数会不会被误hook掉?

如果存在这种情况的话,程序本身运行就有问题了。C/C++ 函数名称冲突在链接的时候会有问题,你可以自己写个demo验证下,或者研究下动态链接器的原理。

写demo验证了一下,的确会被误hook,mylibc.so中写了一个read函数,test.so调用mylibc.so的read函数,在APP中hook read函数,mylibc.so和libc.so中的read函数都被hook到了

zhzhyang0313 avatar Aug 12 '19 08:08 zhzhyang0313

之前说错了,xhook_register 可以通过正则表达式,指定模块名。

我要hook所有调用了libc.so中指定函数的so,不能指定名称

zhzhyang0313 avatar Aug 12 '19 08:08 zhzhyang0313

不知道为什么hook mono_image_open_from_data_with_name,old_func总是NULL,而且程序会崩溃,不知道是不是跟参数有关,可是之前用adbi inline hook参数就是这样写的没有问题的

txy0110 avatar Aug 21 '19 09:08 txy0110