Есть ли способ обнаружить (или скрыть) компилятор, который использовался для создания исполняемого файла?
6 ответов
PEiD довольно хорошо
PEiD обнаруживает наиболее распространенные упаковщики, криптаторы и компиляторы для файлов PE. В настоящее время он может обнаружить более 600 различных подписей в файлах PE.
PEiD является особенным в некоторых аспектах по сравнению с другими уже существующими идентификаторами!
- Он имеет превосходный графический интерфейс, а интерфейс действительно интуитивно понятен и прост.
- Показатели обнаружения являются одними из лучших, которые дает любой другой идентификатор.
- Специальные режимы сканирования для расширенного обнаружения измененных и неизвестных файлов.
- Интеграция с оболочкой, поддержка командной строки, Always on top и возможности Drag'n'Drop.
- Многократное сканирование файлов и каталогов с рекурсией.
- Просмотрщик задач и контроллер.
- Плагин Интерфейс с плагинами, такими как Generic OEP Finder и Krypto ANALyzer.
- Дополнительные методы сканирования используются для еще лучшего обнаружения.
- Варианты эвристического сканирования.
- Новые PE детали, импорт, экспорт и просмотрщики TLS
- Новый встроенный быстрый дизассемблер.
- Новый встроенный в hex Viewer.
- Внешний интерфейс подписи, который может обновляться пользователем.
Попробуйте служебные строки * nix. Использование strings -a foo.exe
должно дать кучу результатов. Перенаправьте в файл и изучите в своем любимом редакторе. Вы можете увидеть либо строку, которая напрямую связана с конкретным компилятором, например Borland C++ - Borland Corporation, 2002 г., Copyright. Вы могли бы только найти строки, которые подразумевают, что использовался определенный компилятор, например, во включаемом пути или что-то еще.
Строки также доступны для Windows как часть Cygwin, или как часть пакета Microsoft sysinternals.
(Старый, но хорошо ..)
Язык 2000 : http://farrokhi.net/language
Не бесплатно, но IDA Pro имеет очень хорошее обнаружение компилятора. Конечно, это не основная функция, а приятное дополнение.
Если вы можете найти способ проверить первые дюжины байтов файла EXE, в шестнадцатеричном дампе с отображаемыми соответствующими символами ASCII они обычно будут указывать используемый компилятор.
Вы можете использовать "обходчик зависимостей", чтобы проверить, на какую библиотеку времени выполнения он ссылается. MSVCP100 - это Microsoft Visual C++ 2010 x86