Как декомпилировать exe или dll для сборки - PullRequest
10 голосов
/ 30 декабря 2010

Я действительно заинтересован в языке ассемблера и хочу узнать о том, как exe-файлы работают, как работают dll и т. Д., И у меня есть идея написать приложение для декомпиляции exe-кода в ассемблер, поскольку я не очень программист на ассемблере и при отсутствии знаний о внутренней работе exe я не смог этого сделать. Так как я могу прочитать exe в hex, я думаю, что это не невозможно, но я не знаю, как написать свою собственную программу. Будем благодарны за любые ресурсы или любую помощь.

Ответы [ 4 ]

17 голосов
/ 30 декабря 2010

Я думаю, вы ищете дизассемблер, а не декомпилятор.IDA pro, кажется, популярен, и вы можете бесплатно загрузить старую версию по адресу http://www.hex -rays.com / idapro / idadownfreeware.htm

6 голосов
/ 30 декабря 2010

Для вас уже написано много распространителей (см. Выше), но я не думаю, что чтение дизассемблированного кода поможет вам стать лучшим автором сборок. Основная причина этого заключается в том, что компиляторы выполняют ОЧЕНЬ МНОГО оптимизации перед тем, как генерировать сборки. Часто это делает очень сложный код для чтения, но очень эффективный код для анализа.

4 голосов
/ 30 декабря 2010

Взгляните на эту декомпиляцию Wiki , я подозреваю, что она ответит на большинство ваших вопросов.

3 голосов
/ 30 декабря 2010

Если вам интересно, как выглядит скомпилированная программа на уровне ассемблера, гораздо более значимым подходом будет компиляция и просмотр созданной сборки.Например, для gcc / g ++ это просто требует gcc -c -S filename.c и оставит файл сборки с открытым текстом для просмотра.

...