AddressSanitizer
от Google обнаруживает ошибки памяти в собственном коде Android. Однако требуется, чтобы целевой двоичный файл (т. е. исполняемый файл или библиотека ) перекомпилировать с любыми необходимыми флагами и настройками:
AddressSanitizer (ASan) — это быстрый инструмент на основе компилятора для обнаружения ошибок памяти в машинном коде.
Существует ли инструмент, который может обнаруживать ошибки памяти Android без необходимости какой-либо перекомпиляции целевого двоичного файла? Вот некоторые мысли о том, как будет выглядеть такой инструмент:
- Инструмент должен перехватывать/перехватывать соответствующие функции, связанные с памятью, в
libc.so
(например, malloc, free, calloc, realloc), подобно Frida. способность перехватывать любую функцию собственного кода. - Инструмент должен работать, вводя его в пространство процесса. С этого момента все должно «просто работать».
- Он также должен перехватывать как аппаратные сбои, так и программные исключения (например, сбои сегментации) для обнаружения ошибки памяти.
- Было бы разумно предположить, что этот инструмент не будет таким мощным, как AddressSanitizer на основе компилятора, но этого следовало ожидать.