Как открыть exe файл для редактирования кода программы c

Обновлено: 04.07.2024

Хм.. .Сначала, с вашего позволения, пара вопросов. А что такое пинч? И как, посмотрев исходный код программы, можно определить, кто его прислал?

Что Вы подразумеваете под "исходными кодами"? Если просто набор байт, то в любом шестнадцатеричном редакторе (он же Hex редактор) , например WinHex, HexWorkShop и т. д. Так же есть плагины для far и TotalCommander. Если именно исх. код, то смотрите ниже.

Теперь по Вашему вопросу.
Код можно попробовать восстановить с помощью дизассемблеров, т. е. программ, как раз и предназначенных для перевода из exe в asm. Перевести в код любого из языков высокого уровня (C, paskal, basic и т. д. ) невозможно 100%. Однако, даже с использованием дизассемблера asm код будет сильно избыточен. Для уменьшения избыточности и для повышения четкости кода существуют так называемые "интерактивные дизассемблеры". Условно, их действие можно описать так. Человек не умеющий читать (дизассемблер) идет по дорожке (программе) и доходит до развилки на которой стоит указатель "влево-деревня Кодево 50м, вправо деревня Кодево 15км" и останавливается (ставит указатель на "развилочный код") и спрашивает, куда ему идти. Мы говорим естественно налево. И так до конца, пока не пройдет всю программу.

В свете вашего вопроса, я могу с большой долей уверенности Вам сказать, что Вам этого сейчас не одолеть. Не зная ассемблера, пытаться что то дизассемблировать бессмысленно IMHO.

Дизассемблером, только исходный код будет на ассемблере. И еще смотря чем прога делалась - Басиком или Си .

Наиболее популярным программным обеспечением для даного формата является программа Microsoft Windows 7 (для ОС Windows) и программа Xamarin Mono (для ОС Mac OS) - данные программы гарантированно открывают эти файлы. Ниже вы найдете полный каталог программ, открывающих формат EXE для операционной системы Windows, Mac OS, Linux.

Исполняемый файл EXE является приложением Windows либо DOS систем. Такой тип файла может включать в себя самораспаковывающиеся архивы. Имеют невероятно широкое распространение.

Стоит отметить, что в операционных системах Windows, открыть файл .exe можно посредством двойного клика левой клавиши мыши. В прочих платформах Linux или Mac OS запустить рассматриваемое расширение возможно при помощи предварительно установленных на компьютер эмуляторов, к примеру VMware Workstation.

Формат .exe так же поддаётся редактированию, для этого необходимо воспользоваться утилитой на подобии Resource Hacker. Среди пользователей распространены случаи нарушения ассоциации файлов по типам, когда множество ярлыков в формате EXE могут иметь одинаковый внешний вид. При такой ситуации можно воспользоваться приложением Unassociate File Types, способным корректно восстановить ассоциации.

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

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

Я пытаюсь прочитать машинный код своего консольного Win32 приложения, написанного в MS Visual Studio:

Часть прочитанных строк являются осмысленными, но большая часть - мусор, среди которого, как я понимаю, должен быть и машинный код программы. Как правильно прочитать exe файл, чтобы получить из него машинный код? __________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

Чтение .exe файла в переменную типа
Мне нужно загрузить файл, который указал пользователь с помощью Диалога, в переменную типа.

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

Запуск машинного кода из программы
Подскажите,как запустить машинный код из программы в Delphi.Т.е имеется EXE-файл,который нужно.


Перевод из машинного кода в команду
Здравствуйте. Моя задача- перевести из машинного кода в команду. Мой пример- нужно перевести BB.

Откройте программу обычным блокнотом. Это и будет её машинный код представленный последовательностью печатных ASCII символов. Другое дело, что такое невозможно просто так прочитать и осмыслить. И нужно интерпретировать эту последовательность бит файла другим образом. В начале исполняемых файлов Windows идет структура PE, содержащая всю необходимую информацию и смещения для запуска программы, в Linux свой формат этой структуры - ELF. В любом случае это обширная тема, касающаяся дизассемблеров и кодов машинных команд, и нужно начать с этого. Еще очень желательно хорошо знать язык ассемблера. Я попыталься сделать так, как тут указано. Однако, если щелкнуть правой мышкой на екзешник, то там не появляется пункт open with, а только - run as. И это не дает результат. Попробовал то же самое на йсходник, но там выдает код в том виде как я написал( т.е. По символике с++). Может я что то не понял? paata1963, говорят hex редакторы помогают. Открывать ехе можно из самого редактора кнопкой открыть файл. Или убрать разрешение ехе, тогда по даблклику появится окно выбора программы.

За это, спасибо, розумеется. Но чисто человеческим языком сказать лучше, что я хочу узнать. Вот есть какая та программа и мне надо посмотреть его код, и не только посмотреть но что то изменить в нем. Ну к примеру не нравиться мне мой paint или что то другое. Никак не могу добраться до исполняемого файла. Даже самым написанный екзешник не могу посмотреть. Есть конечно исходник, но если программу перенести на другой компьютер, там же не будет исходника. И если тот человек захочет посмотреть, как он должен поступить без всяких hex редакторов. Лежит же все таки где то в памяти это единство единиц и нолей. Наверное это у меня потому пройсходит, что не до конца довел изучение ассемблера.

Добавлено через 3 минуты
И еще; когда я щелкну " открыть файл: просто запускается программа.

Как декомпилировать EXE-файлы

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

Способы декомпиляции EXE-файлов

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

Способ 1: VB Decompiler

Первым рассмотрим VB Decompiler, который позволяет декомпилировть программы, написанные на Visual Basic 5.0 и 6.0.

    Нажмите «Файл» и выберите пункт «Открыть программу» (Ctrl+O).

Стандартное открытие программы в VB Decompiler

Открытие EXE в VB Decompiler

Запуск декомпиляции в VB Decompiler

Просмотр исходного кода через VB Decompiler

Сохранение декомпилированного проекта в VB Decompiler

Способ 2: ReFox

В плане декомпиляции программ, скомпилированных через Visual FoxPro и FoxBASE+, неплохо себя зарекомендовал ReFox.

    Через встроенный обозреватель файлов найдите нужный EXE-файл. Если его выделить, то справа будет отображаться краткая информация о нём.

Поиск EXE через ReFox

Переход к декомпиляции в ReFox

Запуск декомпиляции в ReFox

Завершение декомпиляции в ReFox

Можно просмотреть результат в указанной папке.

Способ 3: DeDe

А DeDe будет полезна для декомпиляции программ на Delphi.

Добавление файла в DeDe

Добавление EXE в DeDe

Запуск декомпиляции в DeDe

Завершение декомпиляции в DeDe

В отдельные вкладки будет выведена информация о классах, объектах, формах и процедурах.

Способ 4: EMS Source Rescuer

Декомпилятор EMS Source Rescuer позволяет работать с EXE-файлами, скомпилированными при помощи Delphi и C++ Builder.

  1. В блоке «Executable File» нужно указать нужную программу.
  2. В «Project name» пропишите имя проекта и нажмите «Next».

Выбор исходника и имя проекта в EMS Source Rescuer

Предпросмотр и сохранение проекта в EMS Source Rescuer

Мы рассмотрели популярные декомпиляторы для файлов EXE, написанных на разных языках программирования. Если Вам известны другие рабочие варианты, напишите об этом в комментариях.

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

посмотреть его можно только отладчиком или дизассемблером.. .

The Codeby

ООО Кодебай

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


При нажатии на кнопку “Чтение” из файла 1.txt считываются и выводятся все строки в окно элемента управления textBox, а при нажатии на кнопку “Запись” данные из текстового поля сохраняются в файле 2.txt

Для хранения путей в программе используются две текстовых переменных: filePathIn и filePathOut


Прошёл год, как программа была написана и отдана заказчику, но вдруг ему потребовалось изменить имя папки, в которой должны храниться оба файла, c 123 на Text. Задача простая, но прошло уже много времени, и исходник был потерян, что делать в такой ситуации?


Полученный в результате компиляции файл (сборка) содержит внутри себя метаданные, манифест, код на языке IL (MSIL).

Метаданные — описывают типы данных и их члены

Манифест описывают саму сборку

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

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

Для удобства работы создадим отдельную папку, например: ”c:
ewasm” и поместим в неё файл TextEdit.exe


Затем в меню “Пуск” открываем папку: «Visual Studio Tools»


Запускаем командную строку разработчика


Откроется консоль, вводим первую команду: ildasm. Для выполнения команды нажмите клавишу Enter.


Появиться главное окно программы.


Переместим файл сборку TextEdit.exe в окно дизассемблера ILASM, в результате отобразиться её внутреннее содержимое.


Убедимся, что в ней содержатся нужные нам данные (пути к файлам).


Два поля на месте, теперь взглянем на метаданные.


Для доступа к метаданным Вы так же можно использовать сочетание горячих клавиш: Ctrl+M. Затем с помощью кнопки Find, найдём имя одного из файлов.




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

Выберите пункт меню File -> Dump


Появится меню. В данном примере, все пункты меню оставим без изменений и просто нажмём кнопку OK.


Появится диалоговое окно


Выберем ранее созданную папку “newasm”, затем укажем имя и тип файла и нажмём на кнопку “Сохранить”


В результате в папке “newasm” должно появиться несколько новых файлов


Закрываем окно ildasm, а так же удаляем файл Textedit.exe, больше он нам не понадобиться. Теперь нас интересует полученный файл texted.il и для начала откроем его любым текстовым редактором, например блокнотом.

Снова воспользуемся поиском (Ctrl+F)


Так же видим найденные строки, которые содержат пути к файлам.


Изменим текущее имя папки 123 на новое название Text, для обоих файлов


Сохраняем внесённые изменения и закрываем блокнот.

Изменения внесены и теперь нужно преобразовать файл txted.il обратно в исполняемый файл (.exe) Для этого нам понабиться второй инструмент ILASM, ассемблер, который так же входит в состав пакета SDK и не требует отдельной установки.

Возвращаемся в консоль


Вводим вторую команду:

Первый параметр: /exe — указывает компилятору, что на выходе мы хотим получить файл с расширением .exe. Затем указываем файл, который содержит MSIL-код. С помощью второго параметра /output — указываем имя и расширение нового файла.



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

Вложения


The Codeby

ООО Кодебай

admin
Пятница на 10:09
Программа (файл) на каком языке написана?

Иван
Суббота на 10:09
Добрый день. Такая же ситуация. Пытаюсь открыть файл exe в редакторе LD DASM у меня появляется ошибка «отсутствует допустимый заголовок CLR поэтому дизассемблирование невозможно». Файл написан на Delphi.

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

Иван
Понедельник на 12:09
А как-то нормально можно посмотреть код, если есть уже окончательный exe и несколько dll проекта?

admin
Понедельник на 09:09 ПП
Что значит «нормально посмотреть код» ?

Иван
Среда на 03:09 ПП
Ну чтобы взять код себе в другой проект

admin
Четверг на 11:09
Есть вроде какие-то, но не помню названия, потому что не использую их.

Анатолий
Четверг на 12:02 ПП
Можете, помочь как я хочу переписать лаунчер для игры, что бы изменить проверку файлов но не могу никак открыть его. Пробывал через ресторатор 2007 но оно не может прочитать пату файлов точнее отобразить язык.

Если у вас есть исходный код, лучше всего импортировать код в проект Visual Studio. If you have the source code, the best approach is to import the code into a Visual Studio project. Затем запустите отладочную сборку приложения. Then, run a debug build of the app.

Чтобы создать новый проект EXE для существующего приложения To create a new EXE project for an existing app

В Visual Studio выберите файл > откройте > проекта. In Visual Studio, select File > Open > Project.

В Открытие проекта выберите все файлы проекта, если еще не выбран, в раскрывающемся списке рядом с полем имя файла. In the Open Project dialog box, select All Project Files, if not already selected, in the dropdown next to File name.

Перейдите к .exe файл, выберите его и выберите откройте. Navigate to the .exe file, select it, and select Open.

Файл появится в новой, временные решения Visual Studio. The file appears in a new, temporary Visual Studio solution.

Начните отладку приложения, выбрав команду выполнения, например начать отладку, из Отладка меню. Start debugging the app by selecting an execution command, like Start Debugging, from the Debug menu.

Чтобы импортировать приложение в существующее решение Visual Studio To import an app into an existing Visual Studio solution

В Открытие проекта выберите все файлы проекта, если еще не выбран, в раскрывающемся списке рядом с полем имя файла. In the Open Project dialog box, select All Project Files, if not already selected, in the dropdown next to File name.

Перейдите к .exe файл, выберите его и выберите откройте. Navigate to the .exe file, select it, and select Open.

Файл отображается как новый проект в текущее решение. The file appears as a new project under the current solution.

С новым файлом выбран, начните отладку приложения, выбрав команду выполнения, например начать отладку, из Отладка меню. With the new file selected, start debugging the app by selecting an execution command, like Start Debugging, from the Debug menu.

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