Как узнать, на каком языке написан исполняемый файл

Обновлено: 21.11.2024

Быстро разветвите, отредактируйте онлайн и отправьте запрос на вытягивание для этой страницы. Требуется авторизованная учетная запись GitHub. Это хорошо работает для небольших изменений. Если вы хотите внести более крупные изменения, вы можете рассмотреть возможность использования локального клона.

D – это язык программирования общего назначения со статической типизацией, доступом на системном уровне и синтаксисом, подобным C. Язык программирования D позволяет быстро писать, быстро читать и быстро работать.

Есть краткий пример, иллюстрирующий D?

Отправьте свой код на форум digitalmars.D, указав "[ваш код здесь]" в теме.

После утверждения он будет демонстрироваться здесь в случайном порядке.

Автоматическое управление памятью обеспечивает безопасный, простой и надежный код. D также поддерживает управление ресурсами с заданной областью действия (также известное как идиома RAII) и операторы области действия для детерминированного транзакционного кода, который легко писать и читать.

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

Быстрое чтение

Лучшая парадигма – не навязывать что-либо за счет других. D предлагает классический полиморфизм, семантику значений, функциональный стиль, универсальные шаблоны, генеративное программирование, контрактное программирование и многое другое — все это гармонично интегрировано.

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

От простых скриптов до крупных проектов, D может масштабироваться с учетом потребностей любого приложения: модульное тестирование, сокрытие информации, улучшенная модульность, быстрая компиляция, точные интерфейсы. Подробнее.

Бежать быстро

D естественным образом компилируется в эффективный нативный код.

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

Атрибуты функций @safe , @trusted и @system позволяют программисту наилучшим образом определить компромисс между безопасностью и эффективностью приложения, а компилятор проверяет согласованность. Подробнее.

Авторское право © 1999-2022 D Language Foundation | Страница создана Ddoc в понедельник, 28 марта, 04:08:37 2022

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

ПИД

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

PEiD имеет простой стандартный интерфейс, в котором отображается имя упаковщика EXE, точка входа, смещение файла, информация о компоновщике, раздел EP, первые байты и информация о подсистеме выбранного файла.

PEiD имеет три режима сканирования:

  • Обычный режим: сканирование PE-файлов в точке входа на наличие документированных подписей.
  • Глубокий режим: сканирование раздела, содержащего точку входа, на наличие всей задокументированной подписи.
  • Жесткий режим: выполняется полное сканирование всего PE-файла на наличие задокументированных подписей.

Вы можете выбрать EXE-файл с помощью файлового браузера или методом «перетаскивания». Он также может выполнять рекурсивное сканирование каталогов для нескольких файлов. Он поддерживает интеграцию с оболочкой, ввод командной строки, и вы даже можете закрепить его поверх всех других приложений.

Скачать: PEiD

Exeinfo PE

Exeinfo PE — более продвинутая программа, чем PEiD. Наряду с деталями упаковщика он показывает вам такую ​​информацию, как точка входа, смещение файла, информация о компоновщике, размер файла, раздел EP, первые байты, подсистема и оверлей исполняемого файла. Он также имеет множество других функций.

Вы можете выбрать EXE или DLL с помощью файлового браузера или просто перетащив его в окно программы.

Из параметров программы вы можете включить Exeinfo PE для выполнения быстрого сканирования, игнорирования ошибок EXE, интеграции в оболочку, всегда быть на высоте и сделать интерфейс больше. Кроме того, вы можете включить ведение журнала и изменить скин и язык.

Загрузить: Exeinfo PE

Язык 2000

Language 2000 — это простой инструмент, который показывает самую основную информацию, такую ​​как язык компилятора, имя компилятора, автора компилятора и его URL. Эта информация поможет вам определить, какой компилятор использовался для создания двоичного файла или каким компрессором файл был сжат, но это все.

Надеюсь, я правильно сформулировал вопрос. Мне просто любопытно, есть ли способ определить, какой язык программирования использовался для конкретного приложения .exe. Я новичок в программировании, начинаю изучать VB, и, как и многие другие, мне интересно, лучший ли это язык для изучения. Я думал, что если бы я мог определить, какой язык(и) программирования использовался при создании некоторых из моих любимых исполняемых файлов, тогда я мог бы оценить возможности каждого из них и решить, какой из них подходит мне. Кроме того, как и в веб-дизайне, где иногда бывает полезно просмотреть исходный код страницы, чтобы определить, как достигаются определенные эффекты, я думаю, было бы полезно изучить исходный код других программ. Я пробовал очевидное — просто открывал .exe с помощью текстовой программы, но все, что я вижу, — это мешанина символов. Эта кодировка предназначена для того, чтобы скрыть программирование?

  • 5 участников
  • 7 ответов
  • 3 000 просмотров
  • Продолжительность обсуждения – 1 месяц.
  • Последнее сообщение 14 лет назад Последнее сообщение от Нару

Рекомендуемые ответы

> Я новичок в программировании, начинаю изучать VB, и, как и многие другие, я задаюсь вопросом, является ли этот
> лучшим языком для изучения.
Абсолютно нет. Есть языки получше, такие как Java, Python и т. д.

> тогда я мог бы оценить возможности каждого из них и решить, какой из них…

Боюсь, эти люди ошибаются в одном отношении.
В большинстве случаев есть способ определить язык программирования (или, по крайней мере, компилятор) на основе подписи исполняемого файла. У каждого компилятора, упаковщика и средства модификации исполняемого файла есть уникальный «отпечаток пальца», который он оставляет на файле. Большинство…

Все 7 ответов

> Я новичок в программировании, начинаю изучать VB и, как и многие другие, задаюсь вопросом, является ли
> лучшим языком для изучения.
Абсолютно нет. Есть языки получше, такие как Java, Python и т. д.

> тогда я мог бы судить о возможностях каждого и решить, какой из них подходит мне
Вы не судите о достоинствах языка программирования на основе того, генерирует ли он и исполняемый файл или нет!!

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

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

>Как определить язык программирования файла .exe?
Вы можете разобрать исполняемый файл и воссоздать дизайн программы. Из этого иногда можно вывести исходный язык, на котором она была написана. Однако это требует большого опыта и таланта в обратном проектировании, а также близкого знакомства с языком ассемблера и любым из возможных языков, на которых могла быть написана программа. написано в.

Короткий ответ: вы не можете.

>И как я могу его просмотреть?
Это более правдоподобный вопрос, потому что вы можете разобрать исполняемый файл и прочитать сборку, но если вам нужно спросить, как это делается, вы, вероятно, не сможете сделать это на своем нынешнем уровне.

>Как определить язык программирования файла .exe?
Вы можете разобрать исполняемый файл и воссоздать дизайн программы. Из этого иногда можно вывести исходный язык, на котором она была написана. Однако это требует большого опыта и таланта в обратном проектировании, а также близкого знакомства с языком ассемблера и любым из возможных языков, на которых могла быть написана программа. написано в.

Это не так сложно. Сначала вы можете просто найти имя компилятора. Для Haskell вы можете использовать grep '.lhs'. Если это не удается, то для любого скомпилированного языка gc вы можете просто посмотреть на сборщик мусора. Это, эм, сложнее. Но перед этим: если вы видите строки формата printf, это, вероятно, на C или C++. Например, вы можете узнать, что Firefox использует некоторое количество C++, просматривая его исполняемый файл и ища строку «::», пока не встретите несколько строк сообщений об ошибках, и отметив, что он также имеет несколько строк формата.

Строки сообщений об ошибках — ваши лучшие друзья.

Спасибо всем за участие и пояснения. -ФастФред

Боюсь, эти люди ошибаются в одном отношении.
В большинстве случаев есть способ определить язык программирования (или, по крайней мере, компилятор) на основе подписи исполняемого файла.У каждого компилятора, упаковщика и средства модификации исполняемого файла есть уникальный «отпечаток пальца», который он оставляет на файле. Большинство этих инструментов можно найти в довольно темной «подпольной» среде, где тусуются реверсеры и взломщики (поскольку необходимо знать, какой тип упаковки произошел в файле, прежде чем вы попытаетесь реконструировать его). Один из таких инструментов, который я регулярно использую, называется PEid. Вы можете найти его в Google, но обязательно выполните тщательное сканирование на вирусы (' data-bs-template='

Спасибо, друг. Я поищу и попробую PEid. С тех пор, как я начал эту тему, я начал изучать VB. Я знаю, что многие люди могут сказать, что это не лучший выбор языков программирования, но я думаю, что было бы почти невозможно получить 100% консенсус в отношении того, ЧТО ТАКОЕ лучший язык программирования. Конечно, есть люди, которые разбираются во всех языках и, следовательно, имеют право судить о каждом из них по достоинству, но я уверен, что многие программисты просто неравнодушны к тому языку, с которым они лучше всего знакомы. По крайней мере, это справедливо при обсуждении брендов компьютеров, автомобилей, спортивных команд и т. д. Так почему же выбор лучшего языка программирования должен быть другим? Несмотря на это, для того, чтобы я мог принять собственное решение о том, какой язык лучше для меня, я должен с чего-то начать. Так что я начал с VB, и я довольно хорошо продвигаюсь. Еще раз спасибо всем, кто высказался по этой теме.

Я знаю, что многие люди могут сказать, что это не лучший выбор языков программирования, но я думаю, что почти невозможно получить 100% консенсус в отношении того, ЧТО ТАКОЕ лучший язык программирования. Конечно, есть люди, которые разбираются во всех языках и, следовательно, имеют право судить о каждом из них по достоинству, но я уверен, что многие программисты просто неравнодушны к тому языку, с которым они лучше всего знакомы. По крайней мере, это справедливо при обсуждении брендов компьютеров, автомобилей, спортивных команд и т. д. Так почему же выбор лучшего языка программирования должен быть другим? Несмотря на это, для того, чтобы я мог принять собственное решение о том, какой язык лучше для меня, я должен с чего-то начать. Итак, я начал с VB и неплохо продвигаюсь.

Хе-хе, похоже, вы пытаетесь оправдать свое решение перед самим собой. ;)

Вы правы, конечно. В VB нет ничего плохого, и если вы попытаетесь найти лучший язык для начала, вы никогда ничего не добьетесь. Общий объективный совет — просто выбрать язык и начать изучение. По мере того, как вы будете узнавать больше, вы найдете новые направления для движения, и хорошие программисты усвоят одни и те же уроки, независимо от того, с чего они начинали.

Это руководство научит вас запускать вашу первую программу на C. Вы узнаете, как:

  • Редактировать файлы исходного кода C с помощью Notepad++
  • Доступ к терминалу Cygwin в Windows 10
  • Скомпилируйте исходный код с помощью компилятора GCC, чтобы получить исполняемый файл.

Начнем!

ШАГ 1. Напишите и сохраните программу

Чтобы написать исходный код вашей первой программы на C, вам нужно открыть текстовый редактор Notepad++. Самый быстрый способ сделать это в Windows 10 — нажать клавишу Win, ввести Notepad++ в окне поиска и нажать Enter.

Запустив текстовый редактор, скопируйте следующий фрагмент исходного кода C:

и вставьте его в редактор.

Да, это ваша первая программа на C! Теперь вы можете сохранить файл где-нибудь, выбрав исходный файл C в раскрывающемся меню «Сохранить как тип» и назвав его hello.c. Вы должны внимательно отметить расположение сохраненного файла, это должно быть что-то вроде C:/Users/b1234567/EEE1008/hello.c , где b1234567 — ваш номер студента.

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

Для этого нам нужно перевести программу в форму, понятную и исполняемую компьютерами. На следующем шаге мы воспользуемся компилятором GCC для получения исполняемого файла.

ШАГ 2. Откройте терминал Cygwin

Мы будем использовать компилятор GCC в качестве приложения командной строки, поэтому нам потребуется доступ к командной строке (также известной как терминал).

Вы можете сделать это так же, как в Notepad++: нажмите клавишу Win и введите Cygwin . Первым вариантом, который вы получите, скорее всего, будет терминал Cygwin64 --- это то, что вам нужно.

ШАГ 3. Перейдите к своей программе с помощью терминала Cygwin

Теперь вам нужно найти вашу программу. Помните, вы должны были принять к сведению его местоположение? Предположим, что он находится в C:/Users/b1234567/EEE1008/hello.c. Чтобы скомпилировать и выполнить вашу программу, вам нужно перейти в каталог C:/Users/b1234567/EEE1008/, изменив текущий каталог с помощью команды cd (расшифровывается как change directory).

Вы можете проверить, где вы находитесь, с помощью команды pwd (напечатать рабочий каталог):

Если все в порядке, вы получите это:

Вы можете просмотреть содержимое каталога, чтобы убедиться, что файл исходного кода находится здесь, с помощью команды ls (список файлов):

Результат должен быть примерно таким:

ШАГ 4. Скомпилируйте программу, чтобы получить исполняемый файл

Чтобы скомпилировать программу и получить исполняемый файл, необходимо запустить компилятор GCC, указав имя исходного файла и имя выходного исполняемого файла. Вы можете сделать это с помощью следующей команды:

Команда должна автоматически выйти и создать исполняемый файл hello.exe, содержащий скомпилированную программу, готовую к выполнению.

ШАГ 5. Запустите исполняемый файл

Чтобы запустить исполняемый файл, просто введите его имя, добавив перед ним символы ./, например:

В результате в терминале должны появиться следующие строки:

Поздравляем! Вы только что написали, скомпилировали и выполнили свою первую программу на C! Ничего страшного, если вы понятия не имеете, что происходит, скоро все станет ясно. Следите за обновлениями! В качестве простого упражнения попробуйте изменить программу так, чтобы она печатала ваше имя вместо текста «Ваше имя».

Это руководство, возможно, познакомило вас с некоторыми новыми концепциями. Давайте подробнее рассмотрим, что они означают.

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

Имена этих файлов обычно заканчиваются на .c , например, program.c (или hello.c, как в приведенном выше руководстве). Здесь расширение файла .c является не чем иным, как подсказкой для вас и компьютера, чтобы отличить файлы, содержащие программы C, от обычных текстовых файлов с расширением .txt.

Эти файлы можно просматривать в любом текстовом редакторе. В этом модуле мы будем использовать редактор Notepad++, обеспечивающий подсветку синтаксиса C.

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

Исполняемый файл — это файл, который может быть запущен компьютером.

В отличие от исходного файла, исполняемый файл не может быть прочитан человеком. Он даже не текстовый: если вы откроете его в Notepad++, вы увидите только кажущиеся бессмысленными цифры и символы (попробуйте!). Это называется исполняемым кодом или просто языком, понятным компьютерам. Чтобы запустить программу, написанную на языке программирования C, вам необходимо перевести ее исходный код в исполняемый код. Это делается с помощью компилятора.

Компилятор — это программа, преобразующая исходный файл в исполняемый файл.

Компилятор — это транслятор. Это здесь, чтобы помочь вам общаться с компьютером. В этом модуле мы будем использовать компилятор GCC для перевода программ, написанных на языке программирования C.

Если вы занимались программированием раньше, вы, вероятно, использовали компиляторы с поддержкой интегрированной среды разработки (например, Visual Studio или Eclipse, которые обычно выполняют компиляцию автоматически), но в этом модуле мы будем разрабатывать программы с помощью текстового редактора. и терминал, чтобы лучше понять, как все работает. Мы будем использовать компилятор GCC в качестве программы командной строки.

Cygwin Terminal позволяет просматривать файловую систему компьютера и запускать программы командной строки (например, компилятор GCC).

Современные операционные системы обычно предоставляют графический интерфейс пользователя (GUI), но было время, когда все взаимодействие человека с компьютером осуществлялось через командную строку. Сегодня только продвинутые пользователи (такие как вы!) умеют пользоваться терминалом.

Читайте также: