Декомпилировать файл (IDA_Pro)

Оглавление

Обзор

скачать

Установить

использовать

Выход (достаточно по умолчанию)


Обзор

  Языком разработки приложений Android является Java, но поскольку код уровня Java легко декомпилируется , а программы на C/C++ сложнее декомпилировать, основные части многих приложений Android теперь разрабатываются с использованием NDK. Использование разработки NDK позволяет компилировать программы c/c++ и, наконец, генерировать их файлы. Файл so является двоичным файлом. Мы не можем напрямую проанализировать файл so, поэтому нам нужно использовать инструмент декомпиляции IDA Pro. IDA Pro может дизассемблировать файлы So для преобразования двоичного кода в язык ассемблера. Используя волшебную функцию F5 IDA Pro, он также может декомпилировать язык ассемблера в программы на C/C++.

скачать

Ссылка:  Baidu Netdisk-Ссылка не существует  Пароль: tvsn

Альтернативная ссылка: сетевой диск Baidu, введите  пароль кода извлечения: kljo

Просто скачайте IDA_Pro_v7.0_Portable.zip.

Установить

Просто распакуйте его напрямую.

Примечание. Путь распаковки зеленой версии не должен содержать китайских символов, или длина пути не может превышать 72 символа. (ошибка в самом модуле Python)

использовать

Дважды щелкните ida64.exe, чтобы открыть программу IDA Pro.

Насколько я понимаю, если файл so, который вы хотите декомпилировать, находится в каталоге Arm64-v8a, вы можете открыть только файл ida64.exe; если файл so, который вы хотите декомпилировать, находится в каталоге Armeabi, вы можете открыть только ida .Exe. Но вот результаты моих тестов:

ida64.exe : открытие файла so в каталоге Arm64-v8a является нормальным явлением (можно найти имя вызываемого метода), но открытие файла so в каталоге Armeabi является ненормальным (невозможно найти имя вызываемого метода). );

ida.exe : открывать файл so в каталоге Arm64-v8a и файл so в каталоге Armeabi — это ненормально (невозможно найти имя вызываемого метода);

Итак, моя текущая операция — дважды щелкнуть мышью, чтобы открыть ida64.exe, а затем декомпилировать файл so в каталоге Arm64-v8a!

Перетащите файл so в пустую область выше, выберите параметр «ELF64 для ARM64 (общий объект) [elf64.ldw]», а затем нажмите кнопку «ОК».

Обратите внимание: поскольку я дважды щелкнул мышью, чтобы открыть ida64.exe, файл so, который необходимо открыть, находится в каталоге Arm64-v8a, а не в каталоге Armeabi. (В качестве примера возьмем проект HelloWorld)

Подождав некоторое время, мы можем увидеть ассемблерный код, полученный в результате дизассемблирования файла so.

Найдите функцию, которую хотите просмотреть (обычно найдите первую функцию, вызванную в проекте, например метод stringFromJNI в проекте HelloWorld ) .

Нажмите F5 на клавиатуре, чтобы преобразовать ассемблерный код в код C.

Исходный код выглядит следующим образом:

Выход (достаточно по умолчанию)

рекомендация

отblog.csdn.net/s_nshine/article/details/132983436
рекомендация