24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

По бинарнику можно определить на каком языке написана программа?

 Аноним 20/04/17 Чтв 00:01:20 #1 №976611 
Screenshot from 2017-04-20 00-54-20.png
Т.е. если брать программу после компиляции в исполняемый файл
Аноним 20/04/17 Чтв 00:16:12 #2 №976621 
>>976611 (OP)
Чаще всего да.
Аноним 20/04/17 Чтв 00:18:50 #3 №976625 
>>976621
С помощью чего? Это ведь будет просто набор машинных инструкций. По паттернам, характерным для популярных компиляторов различных языков?
Аноним 20/04/17 Чтв 00:24:46 #4 №976628 
>>976625
>С помощью чего?
С помощью мозга
Аноним 20/04/17 Чтв 00:26:51 #5 №976629 
>>976628
Очень остроумный ответ, молодец.

Можно конкретнее? Ты имеешь ввиду вручную анализировать программу? По паттернам, характерным для популярных компиляторов различных языков?
Аноним 20/04/17 Чтв 00:32:40 #6 №976630 
>>976625
Часто в бинарнике есть заголовки с метаданными. Пооткрывай бинарники блокнотом, или натрави на них strings.
Ну и рантайм либы должны быть как-то слинкованы. Либо динамически, либо статически. В обоих случаях реально определить что это за рантайм.
Аноним 20/04/17 Чтв 00:35:02 #7 №976632 
>>976625
Если на винде то попробуй ещё http://www.angusj.com/resourcehacker/ и http://www.heaventools.com/overview.htm
Аноним 20/04/17 Чтв 00:35:35 #8 №976634 
>>976629
>Можно конкретнее?
Можно.
Аноним 20/04/17 Чтв 03:26:14 #9 №976681 
Проще всего по данным, а не по коду. Хуячишь http://stackoverflow.com/questions/2236676/how-do-i-extract-ascii-data-from-binary-file-with-unknown-format-in-windows вот так вот и смотришь, что там за строки. Можно их загуглить.
У языка высокого уровня обязательно будет узнаваемый рантайм (пожатые и зашифрованные файлы в расчет не берем). Рантайм - это в том числе рантайм ерроры, то есть в строках из метода выше ты их узнаешь.
Останется асм, С, С++, паскали там разные и прочая экзотика.
У C++ будут скорее всего замангленные называния типа _ZNSt6vectorIfSaIfEE19_M_emplace_back_auxIIRKfEEEvDpOT_.
Также можно поковырять соглашение о вызовах, обработку исключений и т. д.
Аноним 20/04/17 Чтв 03:37:31 #10 №976682 
зачем
sageАноним 20/04/17 Чтв 14:06:02 #11 №976850 
>>976611 (OP)
>По бинарнику можно определить на каком языке написана программа?
Да.
Аноним 22/04/17 Суб 18:31:38 #12 №977883 
>>976611 (OP)
по бинарнику определяет чем создано + если чем запаковано
http://pid.gamecopyworld.com/
ещё есть программа
PeID
https://www.aldeid.com/wiki/PEiD
то же самое, но трудно найти свежий
userdb.txt
с базой сигнатур
https://github.com/ynadji/peid/blob/master/userdb.txt
нерегуляпно обновляется
comments powered by Disqus

Отзывы и предложения