Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Как определить что программа была написана на с++?


Автор: TupleCa 12.2.2007, 13:28
тема говорит сама за себя. хотя можно расширить немного вопрос, вообще как определить на чем разрабатывалась прога.?

Автор: Бонифаций 12.2.2007, 13:38
в общем случае - никак. Потому что c++ это просто язык, существует много компиляторов с него, каждый со своими потрохами. Опеделенную информацию может дать просмотр внутренностей файла, если там осталась скажем отладочная информация - можно сориентироваться по именам функций. 

Также по сообщениям об ощибках - можно примерно представить (или поискать в гугле) какая именно runtime имеет такие сообщения.

Автор: Anikmar 12.2.2007, 13:49
Добавлю дегтя. Файл зачастую сжат паковщиками exe-файлов. Соответственно, чтобы добраться до настоящего exe его надо распаковать.

Автор: Daevaorn 12.2.2007, 13:55
TupleCa, http://peid.has.it/
не плохая программа. почти не ошибается.

Автор: skyboy 12.2.2007, 14:20
в ту же степь:
http://mitglied.lycos.de/yoda2k/LordPE/info.htm
и 
http://www.uinc.ru/files/neox/PE_Tools.shtml
но в первом я не нашел расшифровки "идентификатора компилятора" - все секции в НЕХ-коде, что не удобно, а второй уже три года не обновлялся. да и ошибается немного: например, прогу, скомпиленную при помощи Borland Delphi 7, опознал как Boland Delphi 3.0 smile

Автор: Бонифаций 12.2.2007, 14:23
Что то я в изначальном вопросе не вижу слово Windows

Автор: threef 12.2.2007, 14:30
При компиляции программы некоторый язык, возможно, накладывает отпечаток языкового стиля на код. Но больше зависимость , скорее, от определенных сред программирования. Поэтому вряд ли возможно по коду определить язык, на котором написана программа. Если компилятор написан самостоятельно, make взяли в одной среде, библиотеки - в другой, то вряд ли удастся определить даже с помощью хорошей утилиты что кому принадлежит. 

Автор: Chrono017 13.2.2007, 23:58
...на скока я знаю, так сказать некотрые веши пишут сами на чем их делают, так сказать, наример если откомпилить билдере програмку то в коде ехе-ка моно найти строчку "Borland с++"..... другое дела если проги пишутся сурьезными людьми) бывает так что прогу "маскируют", в том числе убирают подобные подписи по которым моно легко опазнать, бывает потом еще сжимают и скрывают то чем сжали)) другое дело что некотрымс этим влом заниматся) 
а вод по поду прог, моно пеидом смареть, им на скоко я помню моно кое че разжимать назад, (вроде UPX)..... а тикие типо авПак помоему caspr-om неплохо разжимаются, (кст бывает проги после разжатия не пашут, тоже защита) 
а вобще зачем тебе именно с++? 
если так для статистики, то большенство нормальных веще на скоко я знаю пишется на с++)))

Автор: W4FhLF 14.2.2007, 14:37
При определённых навыках можно легко определить большинство компиляторов и упаковщиков на глаз(секции, заголовки, импорт, характерный команды на EP), с опытом в реверсинге приходит постепенно smile 
Но я думаю данного опыта у тебя нет или нехватает, поэтому используй готовые решения, в частности неплохими детекторами являются:
RDG Packer Detector
DiE(автор наш соотечественник: http://hellspawn.nm.ru/)
Ну и уже упомянутый PEiD. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)