Определить компилятор, используемый для EXE-файла

18

Есть ли способ обнаружить (или скрыть) компилятор, который использовался для создания исполняемого файла?

Ремус Риго
источник

Ответы:

12

PEiD довольно хорошо

PEiD обнаруживает наиболее распространенные упаковщики, криптаторы и компиляторы для файлов PE. В настоящее время он может обнаружить более 600 различных подписей в файлах PE.

PEiD является особенным в некоторых аспектах по сравнению с другими уже существующими идентификаторами!

  1. Он имеет превосходный графический интерфейс, а интерфейс действительно интуитивно понятен и прост.
  2. Показатели обнаружения являются одними из лучших, которые дает любой другой идентификатор.
  3. Специальные режимы сканирования для расширенного обнаружения измененных и неизвестных файлов.
  4. Интеграция с оболочкой, поддержка командной строки, Always on top и возможности Drag'n'Drop.
  5. Многократное сканирование файлов и каталогов с рекурсией.
  6. Просмотрщик задач и контроллер.
  7. Плагин Интерфейс с плагинами, такими как Generic OEP Finder и Krypto ANALyzer.
  8. Дополнительные методы сканирования используются для еще лучшего обнаружения.
  9. Варианты эвристического сканирования.
  10. Новые PE детали, импорт, экспорт и просмотрщики TLS
  11. Новый встроенный быстрый дизассемблер.
  12. Новый встроенный в hex Viewer.
  13. Внешний интерфейс подписи, который может обновляться пользователем.
Сатьяджит Бхат
источник
4
«PEiD обнаруживает наиболее распространенные [...] компиляторы для файлов PE». это то, что говорит readme - фактически это не говорит, как достигнуть этого
mbx
@ Сатья Обратите внимание, включенная ссылка теперь мертва.
DuckMaestro
@DuckMaestro обновлено с альтернативной ссылкой
Sathyajith Bhat
Если он не может обнаружить компилятор, будет показано что- то вроде « Ничего не найдено» [Overlay] * - что может сбить с толку, если вы впервые используете этот инструмент.
mbx
«Сайт впереди содержит вредоносные программы» - Google Chrome. Вот лучшая ссылка.
Бен N
8

Попробуйте служебные строки * nix . Использование strings -a foo.exe должно дать кучу результатов. Перенаправьте в файл и изучите в своем любимом редакторе. Вы можете увидеть строку, которая напрямую связана с конкретным компилятором, например Borland C ++ - Borland Corporation, 2002 г., Copyright . Вы могли бы только найти строки, которые подразумевают, что использовался определенный компилятор, такой как в пути включения или что-то еще.

Строки также доступны для Windows как часть Cygwin или как часть пакета Microsoft sysinternals .

DaveParillo
источник
Он не показывает мне имя компилятора, только проект некоторых имен dll
Эдуардо Ксавьер
1

Не бесплатно, но IDA Pro имеет очень хорошее обнаружение компилятора. Конечно, это не основная функция, а приятное дополнение.

Henno
источник
0

Если вы можете найти способ проверить первые дюжину байтов файла EXE, в шестнадцатеричном дампе с отображаемыми соответствующими символами ASCII они обычно будут указывать используемый компилятор.

pavium
источник
1
Мне было интересно, если кто-то или какое-то программное обеспечение может найти, был ли exe-сборка с определенной версией компилятора (Visual Studio 2010 Professional или Enterprise или Express)
Remus Rigo
Обычно это не так. Первая часть PE-файла - это заглушка DOS, обычно это программа, которая печатает что-то вроде «Эта программа не может быть запущена в режиме DOS».
lesderid
-1

Вы можете использовать «обходчик зависимостей», чтобы проверить, на какую библиотеку времени выполнения он ссылается. MSVCP100 - это Microsoft Visual C ++ 2010 x86

user509763
источник