先上github地址109K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6A6M7h3W2&6K9g2)9J5c8Y4S2Z5L8$3!0C8
大概原理是:
先读取/proc/self/maps文件内容
正则匹配找到so文件路径和加载基址,
解析elf格式找到要hook的函数的地址替换成自己指定的函数地址
地址替换通过PLT表,详细原理eccK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6*7K9s2g2S2L8X3I4S2L8W2)9J5k6i4A6Z5K9h3S2#2i4K6u0W2j5$3!0E0i4K6u0r3M7q4)9J5c8U0x3$3y4o6t1$3x3U0l9$3。
抹机软件通过hook一些底层函数达到抹机的目的,其中经常用到的函数如下:
实例代码如下:
大概原理明白了以后运用起来比较简单,实际场景一般跟xposed等hook框架配合,拦截需要抹机的APP进程后读取该APP的/proc/self/maps文件、然后进行native层的hook。
或抽出so文件,然后嵌入到自己写APP里,配合xhook进行要抹机的so文件,绕过native层的设备指纹检测或者其他操作。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
Rec0x 有没有源码呀[em_2] xhook如何导入项目中使用