Как найти язык на которой написана программа

I’ve got an .exe file and I need to know in what language the program has been developed. And also is there a trick to view the code (basing on that .exe file) ? I used the Reflector and now I know it is not .NET

asked Mar 10, 2010 at 21:18

Tony's user avatar

I come across this problem before. I just opened .exe file in notepad. I found compiler name and version. Hope this helps someone..

answered Jun 19, 2014 at 0:16

Jayee's user avatar

JayeeJayee

5425 silver badges15 bronze badges

I’ve got an .exe file and I need to know in what language the program has been developed.

Generally speaking this is impossible. Every language could conceivably compile their version of “Hello, world!” targeting a given platform (or executable format) to the same executable (byte for byte).

And also is there a trick to view the code (basing on that .exe file) ?

No, see above. However you can try a decompiler of your choice.

answered Mar 10, 2010 at 21:20

jason's user avatar

jasonjason

235k35 gold badges421 silver badges525 bronze badges

Compilation of a high-level language into a low-level .EXE is typically a one-way process – it’s almost impossible to reliably extract meaningful information from the executable regarding the original language once the process is complete. You might get lucky and find some identifiable cues left in the binary, or of course find an accompanying file (like a .pdb) which yields clues as to the original language.

However, what the .EXE contains is (typically) assembly language, and this can sometimes be decompiled back into a high-level representation of the program. Note that this is never going to give you an instruction-accurate source file – the result is likely to be very ‘wordy’ and difficult to follow, simply because of what the compiler did in the first place – which was turn a high-level ‘conceptual’ complex language into a stream of low-level instructions, throwing away most of the contextual cues which aren’t needed for the CPU to execute the code.

answered Mar 10, 2010 at 21:31

Eight-Bit Guru's user avatar

Eight-Bit GuruEight-Bit Guru

9,6972 gold badges48 silver badges62 bronze badges

I am going to have to contradict everyone stating anything along the lines of “Compilation of a high-level language into a low-level .EXE is typically a one-way process”. As not all executable’s are compiled to raw assembly.

As this is not always the case. A good example is C#(.net), where the file is compiled to IL rather than raw assembly. In the case of IL you can disassemble to source (even wile the process is running in memory, such as pulling from the Global Assembly Cache)

If the file was compiled straight to raw assembly then there is usually some indication of the original language in the syntax/structure. Though this is more so a byproduct of the compiler then the language it self.

answered Sep 4, 2013 at 16:47

Anon's user avatar

Бывают случаи, когда на вашем пути встречается какой-нибудь годный софт, и тогда возникает вопрос: как узнать, на каком языке написана эта программа? Для чего этого нужно?

Ситуации могут быть разные:

  • хочется сделать подобную программу на таком же языке;

  • вы новичок и хотите стать программистом, а какой язык программирования учить пока не удалось определить;

  • просто понравился синтаксис и минимализм кода, и понимаете, что на другом языке это все выглядело бы куда массивней;

  • просто возник интерес, как определить язык программирования по коду этой программы;

  • и др.

Как известно, языков программирования огромное множество. Есть старые, которым по несколько десятков лет, но есть и новые, которые только вышли. Есть популярные и непопулярные, развивающиеся и мертвые. И если стоит задача написать какую-то программу, а на каком языке это реализовать вы не понимаете, то выбор будет не очень легким.

Как определить язык программирования

Пока единого сервиса, чтобы определить язык программирования по коду, не существует. Реализация этой идеи связана с большим разнообразием ЯП. Многие из них происходят друг от друга,а потому вроде похожи, но в целом — это разные языки и используются для разных целей.

И все же, чтобы узнать, на каком языке написана программа, можно по крайней мере попытаться использовать некоторые хитрости. Это не даст 100%-ой гарантии, что вам удастся определить язык, но, во всяком случае,это существенно снизит круг поиска.

Итак, несколько хитростей о том, как узнать, на каком языке написана программа:

  1. Языков очень много — это факт. Но основных, которые используются, всего несколько десятков. И все же им присущи определенные отличительные черты, поэтому имеет смысл в первую очередь посмотреть синтаксис программы и его конструкцию. Если вы уже имеете определенный опыт в программировании, тогда вам будет легче это сделать. Если опыта нет, тогда нужно будет найти в сети пример кода основных популярных языков и сравнить код на схожесть с вашим исходником. Часто языки отличаются наличием и использованием тех или иных операторов, которые бросаются в глаза. Или в некоторых языках есть специфичность использования скобок, пробелов, табуляции, знаков препинания и т.д. На это нужно обратить внимание и сравнить ваш исходник с найденным примером.
  2. Еще одна хитрость это использовать онлайн-компиляторы кодов. Иногда, чтобы определить язык программирования по коду, достаточно его пропустить через соответствующий компилятор. Так как популярных языков не так много, по многим из них есть онлайн-компиляторы, поэтому можно ваш исходник пропускать поочередно по каждому из них, пока не «сработает». Как только код «сработает», можно будет предположить, что ваш код написан на том коде, чей компилятор вы используете.
  3. Можно воспользоваться небольшой программой PeiD. Нужно будет найти ее в Интернете, скачать актуальную версию и установить к себе на компьютер. Она может помочь вам в вопросе о том, как узнать, на каком языке написана программа, и определить язык программирования по исходному коду. Это не ее прямое предназначение, но она может помочь, определить компилятор, а, соответственно, и язык программирования. Eco friendly Outdoor saunas and wooded hot tubs for sale – Royaltubs.co.uk

Утилита PeiD не всегда дает 100%-ый результат, но во всех случаях ограничивает список возможных языков. Если обобщить все написанное выше, то получается: чтобы определить, на каком языке написана программа, с большой точностью, необходимо иметь хотя бы небольшие познания в программировании. Потому что «докручивать» результат придется самостоятельно анализируя полученные данные. Потому что только по синтаксису и конструкции кода можно определить язык программирования. Соответственно, нужно, как минимум, понимать, что такое синтаксис, оператор, конструкция и другие базовые вещи. Поэтому полным чайникам в программировании будет сложно узнать, на каком языке написана программа, однако, если немного «прокачаться», то все возможно.

Как определить язык программы

Для написания компьютерных программ используют языки программирования. После компиляции кода получают исполнимый файл. Иногда у пользователя возникает необходимость узнать, на каком языке написана программа.

Как определить язык программы

Инструкция

Сложность определения языка программы зависит от того, в каком виде вам попала программа – в виде исходного кода или исполнимого файла. Если вы видите исходный код, определить язык достаточно просто по его синтаксису – то есть по характерным для него конструкциям. Несмотря на то, что языков программирования очень много, широкое распространение получили лишь некоторые из них.

Если это Delphi – используется в популярной среде программирования Delphi и ведет свое начало от Турбо Паскаля – то в коде программы присутствуют такие характерные операторы, как begin и end. Просмотрев один раз исходник на Дельфи, вы уже не спутаете этот язык ни с каким другим. Исходники и другую полезную информацию по Delphi вы найдете здесь: http://www.delphisources.ru/

Для очень распространенного языка C++ характерны свои конструкции. При первом взгляде на исходный код программы вам в глаза сразу бросится расположение фигурных скобок, оно очень показательно. Кроме того, для C++ характерно написание комментариев после двойного слэша: //. Во внешне похожем (для непрограммиста) языке С для комментариев используется конструкция: /* текст комментария */ (в С++ могут использоваться оба варианта, но обычно используется именно двойной слэш). Посмотреть исходники на C++ вы можете здесь: http://www.codenet.ru/progr/cpp/ccpphistory.php

Язык C# (читается «си шарп») появился относительно недавно и активно развивается корпорацией Microsoft. Удобен для быстрого написания пользовательских приложений. Унаследовал многие синтаксические черты от С++. Ознакомьтесь с синтаксисом языка C# вы можете здесь: http://simple-cs.ru/csharp.aspx

Visual Basic (VB). Очень легко узнается по синтаксису. Пример кода на этом языке можно посмотреть здесь: http://www.rusedu.info/index.php?module=News&catid=&topic=22

Ассемблер. Низкоуровневый язык программирования. Программировать на нем достаточно сложно, но полученные программы отличаются небольшим размером и быстротой работы. С синтаксисом ассемблера вы можете ознакомиться здесь: http://www.realcoding.net/article/view/1535

Открыть исходники С, С++, С# и VB вы сможете с помощью среды разработки Microsoft Visual Studio. Для языка Delphi вам понадобится среда разработки Borland Delphi.

Если вам необходимо узнать язык уже откомпилированной программы, ситуация усложняется. Большинство готовых программ упакованы, многие дополнительно закриптованы для противодействия взлому. Узнать, запакована программа или нет, а так же определить ее защиту, вам поможет утилита Protection ID. Скачать ее можно здесь: http://exelab.ru/download.php?action=get&n=MjAw

Упакованную программу надо распаковать, для этого существуют специальные утилиты. Скачать их можно здесь, в разделе «Распаковщики»: http://www.cracklab.ru/download.php

Распаковав программу, вы можете узнать, на каком языке она написана, с помощью утилиты PEID. Скачать ее вы можете здесь: http://cracklab.ru/download.php?action=list&n=MzU=. Запустите утилиту и откройте с ее помощью интересующий вас исполнимый файл. В нижнем окошке программы появится информация о том, на каком языке она написана.

Источники:

  • На каком языках программирования написана Windows 8 и за

Войти на сайт

или

Забыли пароль?
Еще не зарегистрированы?

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

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

Я понимаю что практически все приложения написаны на java. Но даже это не мешает написать приложение на html 5, вот по этому поводу стало интересно, можно как то узнать на каком конкретно языке программирования написано то или иное приложение?


  • Вопрос задан

    более трёх лет назад

  • 10118 просмотров

Пригласить эксперта

Или я ничего не понял, или какой-то бред вы спросили…

В принципе если есть опыт, то код и так узнаваем по синтаксису. Ну это если популярные языки.
Вообще есть утилита
https://ru.m.wikipedia.org/wiki/PEiD
которая определяет компилятор(и соответственно язык) файла.
P.S

Я понимаю что практически все приложения написаны на java. Но даже это не мешает написать приложение на html 5

– ты сам-то понял чего написал?

Или вы все тупые, или я гений. В чем не понятного, человек спросил где нужно найти код от которого будет ясно в каком языке программирования написано приложение.


  • Показать ещё
    Загружается…

20 мая 2023, в 22:41

100 руб./за проект

20 мая 2023, в 22:30

500 руб./за проект

20 мая 2023, в 22:27

9000 руб./за проект

Минуточку внимания

Как определить язык программирования?

Здравствуйте! Меня очень интересует вопрос, как можно определить язык программы, если она уже откомпилирована?

user avatar

Самое простое и быстрое для вас решение — взять PeID и проанализировать им исполняемый файл. Если программа без защит, есть шансы успешного определения.

user avatar

Это, на самом деле, дело не из легких, поверьте! С супер точностью определить ничего не получится, так как языки могут быть разные, поддерживаемые, скажем одной средой программирования( VS, например, в которой поддерживается разработка на свыше 10 языках), а та, в свою очередь, добавляет сходную последовательность asm-секций в машинный код любого приложения, написанного в этой среде. Поэтому, скажем, с точностью( и то не всегда 100%-ой! ) можно определить среду разработки. Делается это, естественно, под дезассемблером. Лучший на мой взгляд( и где я, кстати, чаше всего провожу отладку ) — это OllyDBG. Под ним очень легко и быстро можно разобрать почти любую софтину( за исключением упакованой, обфусцированной и т.д ). Так, VS, например, добавляет в ассемблерный код несколько секций, порядок которых специфичен для данной среды. Последовательность похожа на эту( только пример! ), насколько я помню:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками декомпиляция обратная-разработка или задайте свой вопрос.

Site design / logo © 2022 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2022.6.13.42356

Нажимая «Принять все файлы cookie», вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Как узнать на чём написана программа и на чём она сделана

Для того, чтобы написать компьютерную программу, необходимо использовать определенный язык программирования. И после того, как исходный код скомпилируется, можно получить исполняемый файл.

Сложность определения языка написания программы состоит в том, в каком виде вам попала данное программное приложение, поскольку это может быть, как и исходный код, так и исполняемый файл.

В первом случае, определить язык очень легко, так как достаточно лишь взглянуть на код, чтобы узнать его конструкцию. И не смотря на то, что языков программирования существует на сегодня большое количество, широко известными стали лишь некоторые из них.

Если вы увидели, что исходный код программы содержит такие операторы, как begin и end, тогда это язык программирования под названием Delphi, который ведет свое начало еще от Паскаля. И если вы посмотрите исходник, написанный на языке Делфи, вы больше не спутаете его с другим.

Распознать язык программы, которая написана в С++, также не представляет особого труда, поскольку у него есть свои характерные черты. Если впервые взглянуть на данный программный код, то перед вашим взором откроется большое количество фигурных скобок. Вместе с тем, для языка С++ характерно наличие комментариев, которые указываются после двойного слеша (//), тем более, что каждый комментарий имеет следующую конструкцию: /* текст комментария */.

Такой язык программирования, как C#, появился совсем недавно и активно используется для создания программных приложений компанией Microsoft. Он достаточно удобен, а также имеет некие черты с языком С++.

Распознать Visual Basic достаточно просто, благодаря своеобразному синтаксису. Аналогично распознается и Ассемблер. Данный язык имеет не столь много уровней, как другие языки программирования. Создавать программы с его помощью достаточно сложно, но полученное в результате приложение имеет небольшой размер и функционирует очень быстро.

Для читки исходного кода программы на языках С, С++, С# и VB необходимо использовать среду Microsoft Visual Studio, а для Делфи — Borland Delphi.

Если же вам нужно узнать язык уже откомпилированной программы, тогда придется прибегнуть к утилите Protection ID, поскольку большинство из программных приложений закриптованы от взлома. Для этого вначале распакуйте скачанный архив, а затем распакуйте сам установочный файл при помощи специальной утилиты.

Чтобы узнать, на каком языке программирования написана программа, воспользуйтесь утилитой PEID, скачать которую вы можете в интернете. Установите ее и запустите. Откройте интересующий вас исполнимый файл. И результат не заставит себя ждать, так как в нижнем окошке появится интересующая вас информация о языке программирования.

Как узнать на каком языке написана программа?

BBmike

Ну как же можно пройти мимо незапертой двери с большой надписью СЕКРЕТНО? Тот кто прикрепил эту надпись, сделал все, чтобы приманить любопытных (возможно, подсознательно именно этого и желал).

POS_troi

А какая разница на чём его писали?
После компиляции всегда один результат — файл с набором инструкций для конкретного процессора.

Так что ваш вопрос должен звучать по другому «какой процессор был в союзе и где на него надыбать декомпилятор»

  • Facebook
  • Вконтакте
  • Twitter

Lexperience

NeiroNx

  • Facebook
  • Вконтакте
  • Twitter

73656c6565

  • Facebook
  • Вконтакте
  • Twitter

lxsmkv

Если выяснить в какое время был создан аппарат можно прикинуть какие это могли быть языки. А потом методом тыка. Ну и в журналах и тематичесой литературе копаться в поисках подсказок.

Добавить комментарий