Вопрос

как я могу написать простой дизассемблер для linux с нуля?Есть ли какие-нибудь библиотеки для использования?Мне нужно что-то, что "просто работает".

Это было полезно?

Решение

вы должны понимать, что Формат файла ELF Первый.Затем вы можете начать обрабатывать различные разделы кода в соответствии с операционными кодами вашей архитектуры.

Другие советы

Вместо того чтобы писать что-то одно, попробуйте Objdump - объект.

Основываясь на вашем комментарии и вашем желании реализовать его с нуля, я полагаю, что это школьный проект.Вы могли бы получить исходный код objdump и посмотреть, какие библиотеки и методы он использует.Тот Самый БФД библиотека могла бы оказаться полезной.

Вы можете использовать libbfd и libopcodes, которые являются библиотеками, распространяемыми как часть binutils.

http://www.gnu.org/software/binutils/

В качестве примера мощи этих библиотек ознакомьтесь с онлайн-дизассемблером (ODA).

http://www.onlinedisassembler.com

ODA поддерживает множество архитектур и предоставляет базовый набор функций.Вы можете ввести двоичные данные в режиме реального времени и наблюдать, как разборка отображается по мере ввода, или вы можете загрузить файл для разборки.Приятной особенностью этого сайта является то, что вы можете поделиться ссылкой на разборку с другими.

Вы можете взглянуть на код ERESI

Программный интерфейс ERESI Reverse Engineering представляет собой многоархитектурную платформу бинарного анализа с адаптированным к конкретной предметной области языком для обратного проектирования и управления программами.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top