Я делаю статический анализ и динамический анализ. И я получаю смещение конкретной функции в таком файле. но смещение неверно в IDA (динамическая отладка). Как получить реальный адрес в статическом анализе? и почему статический анализ отличается от динамического анализа?

Apk имеет две версии: arm64-v8a, armeabi-v7a. поэтому я использовал «adb pull» и сравнил с файлами so. У armeabi-v7a был тот же адрес, что и у adb pull. поэтому я получаю смещение в armeabi-v7a

0
kiback 29 Окт 2019 в 11:10

1 ответ

Вы увидите другой адрес, потому что базовый адрес модуля so во время выполнения может быть разным каждый раз, когда операционная система находит место для его размещения. И затем на основе этого (базовое + смещение функции) вы получите адрес функции во время выполнения.

Во время статического анализа вы, возможно, установили (или значение по умолчанию) такое значение, что базовый адрес равен нулю. Если у вас есть возможность перебазировать модуль so в статическом анализаторе, вы можете сделать это, чтобы перебазировать его на свой адрес времени выполнения.

0
stng 29 Окт 2019 в 13:36
Я мог найти базовый адрес, используя frida. И я нашел адрес функции с базовым адресом.
 – 
kiback
1 Ноя 2019 в 03:37