2010-12-10 1 views
3

Мой первый вопрос здесь, надеюсь, я не ошибаюсь.Disassembler для Linux, способный разбирать старые файлы DOS .COM/.EXE

Моя проблема в том, что у меня есть некоторая старая программа DOS, которая довольно сильно взломала формат файла до крайности, чтобы сэкономить место. (Да, это демосцены для тех, кто знает.)

Objdump не хочет мне помогать; быстрый Googling не дал реальных результатов для проблемы, и manpage не кажется слишком щедрым в этом отношении.

Есть и другие, такие как лида. Однако по какой-то причине я не мог заставить лиду работать; Я считаю, что есть альтернативы.

У кого-нибудь есть опыт демонтажа исполняемых файлов DOS на Linux? Или я должен просто попробовать какой-то дизассемблер, основанный на DOS, и запустить его на Dosemu?

ответ

5

IDA - лучший дизассемблер, а также версия для Linux. Это лучше, чем простой dissasembler, потому что он интерактивен.

Кроме того, если вы хотите увидеть красивую сборку «вручную», лучшим местом для поиска являются старые вирусы. И не двоичные файлы, а источники, потому что они прокомментированы. Вы можете попробовать Netlux.

3

ndisasm поставляется с NASM, ассемблером netwide. Он довольно универсален, в том числе возможность дизассемблировать необработанные потоки байтов (поскольку вы упомянули COM-файлы), а также несколько форматов объектных файлов. Строго говоря, я думаю, что также можно разобрать необработанные потоки байтов с опцией objdump, но я не помню, как это происходит.

Однако самомодифицирующийся код может сделать это довольно сложным. Рассматривая поток байтов, трудно предсказать, какими будут выполняться окончательные инструкции, если программа изменит сам себя, общий трюк, сохраняющий пространство в эпоху DOS. Вы упомянули о загрузке в DOS, что дает мне несколько интересных идей: возможно, вы могли бы пройти через него с помощью отладчика DOS или запустить DOS под qemu и использовать его параметры отладки (некоторые из которых включают в себя вывод сборочных данных и состояние регистрации во время выполнения).

+0

Ах, ndisasm смог разобрать его без проблем. По иронии судьбы, отчасти причина, по которой я хотел разобрать это, состояла в том, чтобы увидеть, как люди сделали свою сборку «назад в день», в то время как я сам изучаю сборку и использую NASM. – zxcdw 2010-12-10 01:05:11

 Смежные вопросы

  • Нет связанных вопросов^_^