样本说明
来自看雪论坛对ollvm的算法进行逆向分析和还原
- libnative-lib.so 原版混淆的二进制文件
- libnative-lib-anti.so 去混淆后的二进制文件
一个通用多功能的 Xposed
隐藏器,采用 Native
与 Java
结合来做到双向屏蔽检测,提供高度自由化为每个应用配置不同属性。它不仅仅局限于屏蔽 Xposed
检测,还提供更多更加高级的功能,如 maps
文件自定义屏蔽各种检测、完整的文件重定向功能、访问权限控制、JNI
方法监控、动态符号查找屏蔽 dlsym
等等,还可以提供给其它模块在进程内动态添加或修改配置。开源地址 https://github.com/sanfengAndroid/FakeXposed
我们知道linux系统中存在 LD_PRELOAD
环境变量更改库的链接顺序,影响库的导入函数重定位,而Android使用linux是内核也包含 LD_PRELOAD
环境变量,具体使用路径在 linker_main.cpp 中(本文分析源码如未特别提及则都基于最新主分支)。在执行linker
初始化时访问了该环境变量,后续优先加载将其作为全局库从而影响之后该进程加载的所有库的符号链接,因此后续我们将围绕该环境变量展开