DetectFrida:Android 平台上的 Frida 检测工具
DetectFrida 是一个开源项目,旨在为 Android 应用提供一种检测 Frida 动态调试工具的方法。该项目主要使用 C、CMake 和 Java 编程语言。
项目核心功能
该项目包含以下核心功能:
- 命名管道检测:通过检测 Frida 使用的命名管道来判断是否被动态调试。
- 特定线程检测:通过检测 Frida 特定的线程来识别调试行为。
- 内存与磁盘文本段比较:比较内存中的文本段与磁盘上的文本段,以识别 libc 和原生库是否被修改。
此外,项目还提供了以下三种加固原生代码的机制:
- 替换 libc 调用为系统调用:增强安全性,减少被篡改的风险。
- 字符串内存操作自定义实现:避免使用通用函数,降低被检测到的概率。
- 应用 O-LLVM 原生混淆:通过混淆技术提高代码的安全性。
项目最近更新的功能
项目最近的更新包括以下内容:
- 函数对齐调整:优化了函数对齐,以避免在目标 API 29 上的应用崩溃。
- 可读性检查:在扫描可执行段之前,增加了可读性检查,以避免应用崩溃。
- 注释部分清理:清理了原生库中的注释部分,以防止 APKId 检测到混淆。
- 目标 API 更新:将目标 API 更新到 30。
- Obfuscator-LLVM 更新:更新了 Obfuscator-LLVM 到 OLLVM-TLL 版本。
- 修复误报:修复了在 Android 10 和 Android 11 上的误报问题,确保了 memdisk 比较方法能够正确检测。
- Frida 无关的 memdisk 比较:改进了 memdisk 比较方法,使其不依赖于 Frida 特定的签名,避免了 Frida 签名变化导致的绕过检测的问题。
DetectFrida 通过这些更新,进一步增强了其检测和防护能力,为 Android 应用提供了更加安全的运行环境。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



