iqiyi / xHook

🔥 A PLT hook library for Android native ELF.
Other
4.07k stars 759 forks source link

无法hook opengl es的相关接口 #63

Open terieqin opened 4 years ago

terieqin commented 4 years ago

我在华为,小米,vivo等手机上测试以下代码:

void (*old_glDrawElements)(unsigned int mode, int count, unsigned int type, const void *indices);
void new_glDrawElements(unsigned int mode, int count, unsigned int type, const void *indices){count++;old_glDrawElements(mode, count, type, indices);}

void start_hook(){
    r = xhook_register(".*$", "glDrawElements", (void *)(&new_glDrawElements), (void **) 
   (&old_glDrawElements));
}

实际上,除了glDrawElements,我还尝试hook了很多其他的opengl es的接口,但是得到的调用次数都是 0 。但是我可以成功hook到eglSwapBuffers,这是EGL的一个接口。

这是权限的问题,还是什么其他问题呀?

terieqin commented 4 years ago

我发现xhook的都是*/lib/的库,然而我查看 maps的时候,里面加载进来的都是/lib64/的库,为什么xhook不看64的呢?

Cc1over commented 4 years ago

你说的这种情况有没有具体机型和Android系统版本?

ylz-at commented 3 years ago

确实啊,有没有更新?

lowest16 commented 3 years ago

我也遇到了上述问题 有什么解决方案么

ylz-at commented 3 years ago

发现hook到的EGL/GLES函数基本都在libandroid_runtime.solibhwui.so中,并不会直接hook到应用程序的EGL/GLES函数或者libGLES.so/libEGL.so里的内容。