Перейти к содержимому

Как узнать на чем написана программа по exe файлу

  • автор:

Как узнать на чем написана программа по exe файлу


SZap ( 2002-12-15 13:18 ) [0]

Задачка у меня такая.
Есть некий DOS файл с расширением .exe, необходимо узнать на каком языке это написано, чтобы потом найти програмку декомпилятор и посмотреть исходники.
Кто знает такие програмки которые определяют по exe на чем он написан.


vopros ( 2002-12-15 13:19 ) [1]

в текстовом редакторе посмотри в конце файла.


SZap ( 2002-12-15 13:21 ) [2]

vopros
и что я там должен увидеть.


han_malign ( 2002-12-15 13:29 ) [3]

Чип & файл — новости компьютерного мира. Выпуск
18.
фрагмент:
Восстановление исходного текста программы на языке высокого уровня — давняя
и недостижимая мечта человечества. Но кое-чего все же можно добиться.
Во-первых, с помощью IDA определяются названия многих функций, но только
библиотечных. Во-вторых, для программ, созданных некоторыми
компиляторами, есть утилиты, позволяющие восстановить либо исходный текст,
либо другую информацию, которая пригодится при взломе. Например,
восстанавливаются формы, компоненты и их свойства и адреса обработчиков
событий. Это существенно экономит время, требуемое на взлом. Например, Refox
для языка FoxPro, VBDE и Visual Basic 3 Decompiler для языка Visual Basic, EXE2DPR
и DeDe для Delphi. DeDe также работает с программами откомпилированными в
C++ Builder.


Alx2 ( 2002-12-15 13:32 ) [4]

>SZap (15.12.02 13:18)
Для DOSовских программ поищи intruder.exe


SZap ( 2002-12-15 13:35 ) [5]

han_malign
спасибо конечно, но как мне всетаки определить на каком языке был написан данный exe.


vopros ( 2002-12-15 13:35 ) [6]

Всякий хлам среди которых есть названия функций.


Anatoly Podgoretsky ( 2002-12-15 13:38 ) [7]

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


han_malign ( 2002-12-15 13:48 ) [8]

для 32-битных Delphi и CBuilder в ресурсе лежат специальная инфа, для ДОС-программ скорее всего ни фига нет(однозначно можно определить только программы защищенного режима, по раширителю, для Borland Pascal — rtm, для Watcom C — dos4gw, для MS — фиг знает), тут поможет только метод научного тыка(качаешь очередной dasm и пробуешь что получится).


AL2002 ( 2002-12-16 10:33 ) [9]

Ехешник сжат?


Karbo ( 2002-12-16 10:58 ) [10]

Напиши сам минимальные программы на Turbo Pascal, С++ и Basic, ( BEGIN END. будет достаточно),посмотри полученные exe-шники каким-нибудь Norton Disk Edit и найди по 12 отличий. Наверняка найдешь какую-нибудь ботву типа «Borland#$%»


Anatoly Podgoretsky ( 2002-12-16 11:04 ) [11]

А теперь к этому добавь Uses . и между BEGIN END вызовы

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

riky

в большинстве случаев это знание мало полезно. ну узнаете что c++ например скомпилировано, вы думаете через среду разработки с++ файл можно будет назад в исходники декомпилировать?

это поможет только в редких случаях типа C# если не ошибаюсь. во всех остальных случаях в лучшем случае удастся только дизассемблировать, то есть получите вы не исходники а ассемблерный код.

Ответ написан более трёх лет назад
Комментировать
Нравится 3 Комментировать

drygdryg

Python-разработчик

Используйте утилиты Detect it easy, ExeInfoPE либо PEiD, определяющие компилятор по сигнатурам, а также обладающие другим полезным функционалом (определение упаковщика, компоновщика и пр.)

Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать

NeiroNx

Программист
На хакерский форум обратитесь, там вам помогут.
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Владимир Мартьянов @vilgeforce
Раздолбай и программист
Загрузите на VT, может покажет.
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать

drem1lin

чуть программист, чуть чуть админ.

Ваш вопрос звучит не очень корректно.. Суть какая, все приложения имеют одно расширение exe, те которые написаны на C# можно определить с помощью MSIL. Для С++ все будет выглядеть одинаково для всех компиляторов и отличить их можно по косвенным признакам (секциям, выравниваниям).
Но иногда собранные файлы, для того что бы они занимали меньше места упаковывают и для этого используются программы упаковщики и определить упаковщик как раз более реальная задача и это можно сделать, если вам все таки нужно это

Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать

CityCat4

Внимание! Изменился адрес почты!

Вы всерьез думаете, что компиляция и декомпиляция — два взаимно-обратных процесса? Для С/С++ это точно не так. Вот Вы узнали, что комплировалось через Visual Studio — чем это знание Вам поможет? Декомпиляция с восстановлением исходника возможна в тех очень редких случаях, когда в программе полно информации отладчика, обычно же ее убирают. Если бы все было так просто, не было бы проблемы Open Source vs Close Source 🙂

Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать

Ресурс Explorer какой-нибудь поюзай, если прога не шифрованная. Там есть в ресурсах дефолтные иконки наверняка и какие-то ресурсы, названия классов, которые дадут подсказку. Иногда такие проги позволяют какие-то минимальные правки делать, типа название окна поменять. Вообще иногда можно по составу модулей и GUI угадать 🙂 Но честно говоря декомпиляция мало что даст. Черт ногу сломишь в исходниках, да и очень много кода получается. Чуть ли не гигабайты текста.

Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

windows

  • Windows
  • +1 ещё

Как восстановить восстановить или пересоздать корректный файл SAM в Windows 11?

  • 1 подписчик
  • час назад
  • 10 просмотров

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

Здравствуйте. Опытные программисты, подскажите пожалуйста, есть ли возможность взглянув на файлы приложения определить, в какой программе, на каком языке и т.п. было создано приложение (данное приложение что то типа браузера)?

PS. Если не в том разделе спрашиваю, прошу прощения. Но в этом то и ситуация, если бы знала, каким образом была создана данная программа и к какому разделу ее отнести, то и не спрашивала. Спасибо, очень надеюсь на ответы)

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

На каком языке написана программа Slic3r?
И не могли бы подсказать программу для 3д печати с открытым кодом ?

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

На каком языке програмирования такие писать? (программа для форума )
Здравствуйте, такой вопрос на каком языке программирования писать програмирования писать такой.

Регистрация: 12.08.2015
Сообщений: 8
Скрин приложения
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1

ЦитатаСообщение от fibi Посмотреть сообщение

в какой программе, на каком языке и т.п
Регистрация: 12.08.2015
Сообщений: 8

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

3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1

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

Например, -=[ ProtectionID v0.6.6.7 DECEMBER]=-(c) 2003-2015 CDKiLLER & TippeX Build 24/12/14-22:48:13 иногда указывает даже группу, выложившую релиз игры итп.

Выкладывайте файлик — посмотрим.
Регистрация: 12.08.2015
Сообщений: 8
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1

1195022 2015-01-22 19:38:26 F3A1C17B avcodec-54.dll MinGW 217614 2015-01-22 19:38:12 6F0916DD avformat-54.dll MinGW 138766 2015-01-22 19:38:12 27857453 avutil-51.dll MinGW 2106216 2015-01-22 19:38:26 00A3503D d3dcompiler_43.dll MSVC 2010 1998168 2015-01-22 19:38:26 55A55986 d3dx9_43.dll MSVC 2010 1149440 2015-01-22 19:38:12 A3B7BFC2 ffmpegsumo.dll MSVC 2010, SP1 9956864 2015-01-22 19:38:26 FC7AA805 icudt.dll MSVC 2008 32726528 2015-01-22 19:38:26 D65727AA libcef.dll MSVC 2010, SP1 130048 2015-01-22 19:38:26 1734B078 libEGL.dll MSVC 2010, SP1 736256 2015-01-22 19:38:26 D529008C libGLESv2.dll MSVC 2010, SP1 627200 2015-08-12 23:47:12 CBB53322 Nords.exe Borland Delphi 7.0

Регистрация: 12.08.2015
Сообщений: 8

Спасибо) Мне тоже различные программы из того списка, что вы мне дали, выдавали Borland Delphi разных версий. Просто, почему я думаю, что это все таки не Borland Delphi, потому что я делала подобное приложение в Devel Studio, так вот все эти программы показали, что мое приложение так же сделано Borland Delphi.

3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1

Ну, Delphi можно спутать только с Builder’ом, и то — неопытному человеку 🙂

from CC report

## ss Section Offset VA Event ASCII T Method -------- -- ---------- -------- --------- -------- ----- - -------- 00000001 00000000 4D5A5000 MZP. Executable!: EXE MZ Header Signature 00000002 00000040 BA10000E1FB409CD21B8014CCD @ Linker: Borland Delphi 3..XE2 DOS stub ; 192 bytes 00000003 00000100 50450000 PE.. Executable!: Image NT (PE) Signature 00000004 0000026F .id A 'А.idata' < 0007 >00000005 00000297 .tl A 'А.tls' < 0005 >00000006 000002E7 .re A 'P.reloc' < 0007 >00000007 0000030F .rs A 'P.rsrc' < 0006 >00000008 01 [CODE ] 0000050C .0040110C System A 'System' < 0006 >00000009 01 [CODE ] 0000053A .0040113A System A 'System' < 0006 >0000000A 01 [CODE ] 00002584 .00403184 SOFTWARE\Borland\Delphi\RT A @ Compiler: Borland Delphi 3..7 [RA: SOFTWARE\Borland\Delphi\RTL] < 0000 Compiler_Borland_Delphi_3_7_00403184 >0000000B 01 [CODE ] 000025B0 .004031B0 DBE39BD92D @ Compiler: Borland C++ Builder/Delphi 3..XE2: Set FPU ControlValue 0000000C 01 [CODE ] 000047BD .004053BD kernel32 A 'е]Гkernel32.dll' < 000F >0000000D 01 [CODE ] 000047D0 .004053D0 GetLongPathName A 'GetLongPathNameA' < 0010 >0000000E 01 [CODE ] 00004A14 .00405614 Software\Borland\Locales. A @ Compiler: Borland Delphi 6..7 [RA: Software\Borland\Locales] < 0000 Compiler_Borland_Delphi_7_00405614 >0000000F 01 [CODE ] 00004A30 .00405630 Software\Borland\Delphi\Lo A @ Compiler: Borland Delphi 3..7 [RA: Software\Borland\Delphi\Locales] < 0000 Compiler_Borland_Delphi_3_7_00405630 >00000010 01 [CODE ] 0000533C .00405F3C 538BD833C0A3 @ Compiler: Borland Delphi / C++ Builder

Как посмотреть исходный код программы?

Я хочу подправить исходный код, ничего серьезного, только вывод нескольких строк. Программа написана скорее всего на С++. Мне использовать отладчик? Или как-то открыть в IDE? Просто я не хочу запускать программу, хочу просто поковыряться в коде. И может посоветуете какой нибудь? P.S. Сам файл — .exe

Отслеживать
Anton Sorokin
задан 5 июл 2017 в 10:40
Anton Sorokin Anton Sorokin
6,998 6 6 золотых знаков 37 37 серебряных знаков 65 65 бронзовых знаков

Если подправить exe 32-битный и знаю ассемблер/ понимаю запись строк и других данных в двоичном коде — скачайте hiew.exe (можно как править надписи, так и код)

5 июл 2017 в 10:46
@nick_n_a А с notepad++ можно exeшники открывать? Или к .exe применять 2 комментарий?
5 июл 2017 в 10:52
А я думал у вас исходный код в наличии.
5 июл 2017 в 10:52
@nick_n_a Нет, есть только .exe файл и все.
5 июл 2017 в 11:10

3 ответа 3

Сортировка: Сброс на вариант по умолчанию

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

Но есть способы полностью или частично раскрыть код.

  • IDA Pro — самый лучший из безплатных взломщиков, некоторые макросы возможно позволяют преобразовать код назад. Но не всегда. Особо хорошо раскрываются borland-продукты.
  • Hiew.Exe бесплатная утилита, очень маленькая, позволяет править код на языке ассемблера. Можно править текстовые и целые константы. Можно ею даже сделать «перевод» программы на другой язык, затереть имя фирмы и т.п.
  • Если есть PDB-файл, или подшита debug-info к файлу то код можно получить в среде разработки (если debug-info полная) редко можно использовать. Исходный код получить нельзя, но можно получить «номера строк и имена исходников», а так же имена/значения всех констант, локальных переменных, избежать «раздроблености функций» а так же получить классы с начинкой класса (почти все структуры кроме текста программы) что значительно упростит понимание работы программы. Для некоторых библиотек (dll) pdb-файлы можно скачать отдельно. Врядли уважающая себя фирма допустит утечку pdb своего стоящего продукта.
  • Debug info, существует DebugInfo-информация встроеная в exe. Если есть такая информация, и соответствующая утилита (Например на Borland Delphi собран, и он есть в наличии), то можно сделать аналогичное предыдущему пункту. Но врядли уважающая себя фирма допустит такую «глупую» ошибку (аналогично pdb).
  • Если файл написан на с# его можно почти полностью просмотреть в кодах с помощью disSharp (такие программы «подключают» в таблице импорта лишь mscorlib и всё). DisSharp плохо дизассемблирует некоторые части программы, но возможно его платная версия или платная версия подобных утилит раскрывает код лучше.
  • Если файл написан на FoхPro, clipper и других подобный байт-кодовых языках — он раскрывается спец-утилитами (Refox например).
  • Утилита exescope.exe ResourceHacker.exe и её-подобные утилиты позволяют смотреть шапку, подключенные библиотеки (по ним можно понять на чём писана программа) и редактировать ресурсы программы (ресурс-формы в.т.ч. delphi, иконки, картинки, таблицы ресурсо-строк).
  • Если извесно чем создан код — думаю есть специальные утилиты способные его раскрыть (они платные и малодоступные).

Опять-же, это при условии что нету паковщика кода (тогда нужно сначала применить депаковщик), шифровальщика/самомодифицирующегося кода. Если не разбит обфускатором так что не распутать. Чем больше код — тем сложнее разобраться.

P.S. Лично моё мнение — раскрывается-взламывается всё, но на это нужно потратить много-много времени. Возможно год и более (зависит от опыта и инструментов, в свободном доступе хороших инструментов нету).

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *