дизассемблер linux
-
11-09-2019 - |
Вопрос
как я могу написать простой дизассемблер для linux с нуля?Есть ли какие-нибудь библиотеки для использования?Мне нужно что-то, что "просто работает".
Решение
вы должны понимать, что Формат файла ELF Первый.Затем вы можете начать обрабатывать различные разделы кода в соответствии с операционными кодами вашей архитектуры.
Другие советы
Вместо того чтобы писать что-то одно, попробуйте Objdump - объект.
Основываясь на вашем комментарии и вашем желании реализовать его с нуля, я полагаю, что это школьный проект.Вы могли бы получить исходный код objdump и посмотреть, какие библиотеки и методы он использует.Тот Самый БФД библиотека могла бы оказаться полезной.
Вы можете использовать libbfd и libopcodes, которые являются библиотеками, распространяемыми как часть binutils.
http://www.gnu.org/software/binutils/
В качестве примера мощи этих библиотек ознакомьтесь с онлайн-дизассемблером (ODA).
http://www.onlinedisassembler.com
ODA поддерживает множество архитектур и предоставляет базовый набор функций.Вы можете ввести двоичные данные в режиме реального времени и наблюдать, как разборка отображается по мере ввода, или вы можете загрузить файл для разборки.Приятной особенностью этого сайта является то, что вы можете поделиться ссылкой на разборку с другими.
Вы можете взглянуть на код ERESI
Программный интерфейс ERESI Reverse Engineering представляет собой многоархитектурную платформу бинарного анализа с адаптированным к конкретной предметной области языком для обратного проектирования и управления программами.