Pyfunc имеет хороший ответ, если вы хотите знать заголовок и внутреннюю работу исполняемых файлов PE (и упоминание ELF). Он также совершенно прав насчет рекомендации по сборке.
Что касается вашего запроса на дизассемблер, я рекомендую OllyDBG для отладки на лету, IDA Pro для анализа кода и PEExplorer для PE (исполняемые файлы Windows ) анализ заголовков. Однако SoftICE предпочитают многие на стадии отладки.
Хотя это работает для любого скомпилированного исполняемого файла или библиотеки, языки, работающие в виртуальном режиме (кросс-платформенный битовый код или интерпретируемый общий язык), такие как Java или .NET Framework, обрабатываются по-разному. Например, исполняемый файл .NET будет легко анализироваться с помощью программного обеспечения, такого как Reflector , поскольку оно позволит вернуться к высокоуровневому языку программирования вместо отладочной сборки.
Хорошее знание того, с чем вы имеете дело (язык, на котором написано программное обеспечение, операции ввода-вывода и т. Д.), Позволит вам лучше различать программные тонкости. Вы можете использовать PEiD , чтобы помочь вам в этом анализе.
Имейте в виду, что разборка и обратный инжиниринг могут быть незаконными в зависимости от того, в какой стране вы находитесь и в какой части программного обеспечения вы их применяете. Если вы не уверены, вы всегда должны использовать такого рода программное обеспечение в своих собственных проектах или программах, которые вы сами скомпилировали (для начала неплохо было бы использовать OpenSource).