android - AddressSanitizer(或任何其他工具)是否可以在不需要编译的情况下检测 Android native 代码二进制文件中的内存错误?

标签 android native-code address-sanitizer frida

Google 的 AddressSanitizer 检测 Android native 代码中的内存错误。 It does require , 然而,目标二进制文件(即可执行文件或库)使用它需要的任何标志和设置重新编译:

AddressSanitizer (ASan) is a fast compiler-based tool for detecting memory bugs in native code.

是否有一种工具可以检测 Android 内存错误而不需要对目标二进制文件进行任何重新编译?以下是关于此类工具的一些想法:

  • 该工具应该拦截/ Hook libc.so中的相关内存相关函数(例如,malloc、free、calloc、realloc),类似于Frida拦截任何 native 代码功能的能力。
  • 该工具应该通过注入(inject)进程空间来工作。从那时起,一切都应该“正常工作”。
  • 它还应该拦截硬件故障和软件异常(例如,段错误)以检测内存错误。
  • 有理由假设此工具不如基于编译器的 AddressSanitizer 强大,但这是意料之中的。

最佳答案

关于android - AddressSanitizer(或任何其他工具)是否可以在不需要编译的情况下检测 Android native 代码二进制文件中的内存错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62415496/

相关文章:

安卓 : can native code get broadcast intent from android system?

.net - 如何将 .NET 应用程序编译为 native 代码?

c++ - 这个 C++ 项目可以用 .NET Reflector 之类的工具反编译吗?

android - 在编辑文本区域外部触摸时隐藏 android 中的键盘

java - Parceler 和 SimpleXml 如 Parceler 的自述文件所述

javascript - 如何在 package.json 脚本中运行多个命令?

valgrind - 内存/地址 sanitizer 与 Valgrind

c++ - 泄漏和地址有什么区别?

c++ - 地址清理器不适用于 Windows 上的 bash

android - 如何将变量从 AsyncTask 类返回到 fragment