先上github地址https://github.com/iqiyi/xhook
大概原理是:
先读取/proc/self/maps文件内容
正则匹配找到so文件路径和加载基址,
解析elf格式找到要hook的函数的地址替换成自己指定的函数地址
地址替换通过PLT表,详细原理https://zhuanlan.zhihu.com/p/36426206。
抹机软件通过hook一些底层函数达到抹机的目的,其中经常用到的函数如下:
实例代码如下:
大概原理明白了以后运用起来比较简单,实际场景一般跟xposed等hook框架配合,拦截需要抹机的APP进程后读取该APP的/proc/self/maps文件、然后进行native层的hook。
或抽出so文件,然后嵌入到自己写APP里,配合xhook进行要抹机的so文件,绕过native层的设备指纹检测或者其他操作。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
Rec0x 有没有源码呀[em_2] xhook如何导入项目中使用