Как декомпилировать exe или dll в сборку
меня действительно интересует язык ассемблера, и я хочу узнать, как работают exe-файлы, как работают DLL и т. д... и у меня есть идея написать приложение для декомпиляции exe в сборочный код, так как я не очень хороший программист сборки, и с отсутствием знаний о внутренней работе exe я не мог этого сделать. Поскольку я могу читать exe в hex, я думаю, что это не невозможно, но я не знаю, как написать свою собственную программу. Любые ресурсы или любая помощь будет оценили.
4 ответов
Я думаю, вы ищете дизассемблер, а не декомпилятор. IDA pro кажется популярным, и вы можете скачать более старую версию бесплатно наhttp://www.hex-rays.com/idapro/idadownfreeware.htm
для вас уже написано много лицемеров (см. выше), но я не думаю, что чтение разобранного кода поможет вам стать лучшим писателем сборки. Основная причина этого заключается в том, что компиляторы выполняют большую оптимизацию перед созданием сборок. Часто это делает код очень сложным для чтения,но высокоэффективным для анализа.
взгляните на это Декомпиляция Wiki, Я подозреваю, что это ответит на большинство ваших вопросов.
Если вас интересует, как выглядит скомпилированная программа на уровне ассемблера, гораздо более значимым подходом будет компиляция и просмотр сгенерированной сборки. Например, с gcc / g++ это просто требует gcc -c -S filename.c
и оставит файл сборки с открытым текстом для просмотра.