Я делаю статический анализ и динамический анализ. И я получаю смещение конкретной функции в таком файле. но смещение неверно в IDA (динамическая отладка). Как получить реальный адрес в статическом анализе? и почему статический анализ отличается от динамического анализа?
Apk имеет две версии: arm64-v8a, armeabi-v7a. поэтому я использовал «adb pull» и сравнил с файлами so. У armeabi-v7a был тот же адрес, что и у adb pull. поэтому я получаю смещение в armeabi-v7a
1 ответ
Вы увидите другой адрес, потому что базовый адрес модуля so во время выполнения может быть разным каждый раз, когда операционная система находит место для его размещения. И затем на основе этого (базовое + смещение функции) вы получите адрес функции во время выполнения.
Во время статического анализа вы, возможно, установили (или значение по умолчанию) такое значение, что базовый адрес равен нулю. Если у вас есть возможность перебазировать модуль so в статическом анализаторе, вы можете сделать это, чтобы перебазировать его на свой адрес времени выполнения.
Похожие вопросы
Новые вопросы
android
Android — это мобильная операционная система Google, используемая для программирования или разработки цифровых устройств (смартфонов, планшетов, автомобилей, телевизоров, одежды, очков, IoT). Для тем, связанных с Android, используйте теги, специфичные для Android, такие как android-intent, android-activity, android-adapter и т. д. Для вопросов, отличных от разработки или программирования, но связанных с Android framework, используйте эту ссылку: https://android .stackexchange.com.