Как изменить exe файл в delphi

Обновлено: 06.07.2024

главная программы resource tuner руководство

При помощи Resource Tuner вы можете открывать исполняемые файлы, такие как .EXE, .DLL, .OCX, скринсейверы (.SCR) и многие другие. Открыв файл, вы получаете доступ к ресурсам файла и можете заменять иконы, курсоры и графику в различных форматах, изменять строчки в меню, диалоговых окнах и других элементах пользовательского интерфейса.

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

Для более серьёзных изменений (которые, впрочем, ни к чему хорошему не приведут без достаточного опыта в программировании приложений для Windows) рекомендуем использовать PE Explorer (редактор структуры PE файлов) или FlexHex (хекс-редактор для бинарных файлов).

Открытие EXE или DLL файла в Resource Tuner

Resource Tuner поддерживает несколько способов открытия файлов. Чтобы открыть файл для просмотра и редактирования, нажмите кнопку Open File на панели инструментов или выберите команду File > Open [CTRL+O] из меню. Выпадающее меню рядом с кнопкой на тулбаре даёт вам быстрый доступ к списку последних открывавшихся файлов. Этот же список можно получить командой File > Recent Files из меню программы. Количество файлов в списке настраивается в диалоге Customize.

Открытие файла в Resource Tuner

Вы также можете открыть файл при помощи Resource Tuner прямо из Проводника Windows, щёлкнув по файлу правой кнопкой и выбрав Open with Resource Tuner из контекстного меню.

Или вы можете просто перетащить и бросить иконку файла из Проводника Windows на иконку Resource Tuner на рабочем столе или на окно запущенного Resource Tuner.

Вы так же можете открыть файл из командной строки.
Например: restuner.exe filename.exe

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

При открытии файла Resource Tuner производит несколько автоматических операций: распаковывает файл, если обнаруживается, что он был запакован при помощи UPX, затем идёт проверка структуры и ресурсов файла на возможные ошибки, и наконец перестройка повреждённых ресурсов в соответствии со спецификацией формата исполняемых файлов.

Ошибки при открытии файла

Если при открытии файла возникает ошибка, то скорее всего по трём причинам: файл защищён, файл 16-битный, или это вообще не исполняемый файл.

1. Ошибка: Файл повреждён, сжат упаковщиком или защищён протектором.

Вероятность того, что файл сжат для уменьшения размера, весьма велика. Упаковщиков и протекторов для исполняемых файлов существует не один десяток, и всё время появляются новые. Resource Tuner поддерживает распаковку только одного, зато самого распостранённого упаковщика - UPX. Остальные упаковщики не поддерживаются, и вам придётся самостоятельно заниматься распаковкой файла, прежде чем вы сможете открыть файл для просмотра или редактирования.

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

2. Ошибка: Файл определён, как 16-битный NE Executable. Этот формат не поддерживается!

Наши программы работают только с 32- и 64-битными PE файлами. Формат NE (сокращение от "New Executable") - это формат 16-битных приложений, оставшийся в наследство от старых версий Windows 3.xx. С появлением Windows 95 этот формат считается устаревшим и не используется, хотя и может исполнятся на современных платформах от Microsoft. Мы не поддерживаем 16-битные файлы и не собираемся их поддерживать.

3. Ошибка: Файл не является EXE или DLL файлом. Вообще!

Resource Tuner определяет файл не по расширению. Если вы переименуете расширение у исполняемого файла, скажем, исправите .EXE на .TXT или вообще удалите расширение, Resource Tuner этим не обманешь: программа при открытии файла анализирует заголовок файла внутри файла, а на расширение вообще не смотрит.

Поэтому, если Resource Tuner вам сообщает, что файл не является исполняемым, то это так оно и есть. Если кто-то зачем-то снабдил текстовый файл в поставке игры расширением .DLL, то от этого файл не перестаёт быть текстовым, и не становится динамической библиотекой. Не дайте расширению файла себя обмануть.

Какие файлы не имеет смысла открывать в редакторе ресурсов

Не смотря на то, что Resource Tuner предназначен для открытия и редактирования любых 32-/64-битных исполняемых файлов, существуют некоторые виды EXE файлов, в которых ресурсы практически отсутствуют.

1. Файлы, созданные при помощи Visual Basic.

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

2. Файлы .EXE размером в гигабайт и более.

Поскольку Resource Tuner - это 32-битная программа, существуют естественные ограничения для размещения образа открываемого файла в виртуальной памяти в пределах первого гигабайта. Файл размером в гигабайт и более туда просто не поместится.

3. Самораспаковывающиеся архивы в виде EXE файлов.

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

4. Инсталляторы других программ.

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

Resource Tuner работает на всех версиях Windows
от 2000 и XP до 8 и 10.

Минимальные системные требования:
Процессор Intel Pentium® или AMD K5 166 MHz
16 MB RAM

28381

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

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

28382

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

28383

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

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

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

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

Дизассемблер ILDASM

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

28384

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

28385

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

28386

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

28387

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

28388

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

28389

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

28390

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

28391

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

28393

28394

28395

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

Выгрузка данных

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

28396

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

28397

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

28398

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

28399

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

28400

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

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

28402

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

28403

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

28404

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

Ассемблер ILASM

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

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

28408

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

28406

28407

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

Вложения

The Codeby

The Codeby

ООО Кодебай

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

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

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

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

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

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

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

Читая форумы по программированию, иногда натыкаешься на вопрос типа: "У меня есть откомпилированная программа на Delphi. Как мне получить её исходный код?". Обычно такой вопрос возникает, когда программист потерял файлы проекта и у него остался только .exe. Как правило полностью восстановить исходный код на языке высокого уровня невозможно. Значит ли это, что другие тоже не смогут восстановить исходный код Вашей программы ? Хм . и да и нет .

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

После компиляции и линковки проекта и получения исполняемого файла все имена, используемые в программе конвертируются в адреса. Потеря имён означет, что декомпилятор создаст уникальное имя для каждой константы, переменной, функции и процедуры. Даже если мы и достигнем какого-то успеха в декомпиляции исполняемого файла, то получим уже другой синтаксис программы. Данная проблема связана с тем, что при компиляции практически идентичные куски кода могут быть скомпилированы в разные последовательности машинных команд (ASM), которые присутствуют в .exe файле.
Естевственно декомпилятор не обладает такой степенью интеллектуальности, чтобы решить - какова же была последовательность инструкций языка высокого уровня в исходном проекте.

2 Reply by PunBB 2015.07.09 10:20

Когда же применяется декомпиляция ? Для этого существует довольно много причин. Вот некторые из них:
- Восстановление исходного кода;
- Перенос приложения на другую платформу;
- Определение наличия вирусов в коде программы или вредоносного кода;
- Исправление ошибок в программе, в случае, если создатель приложения не собирается этого делать

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

На данный момент Borland не предоставляет никаких программных продуктов, способных декомпилировать исполняемые файлы (.exe) либо откомпилированные Delphi-модули (.dcu) в исходный код (.pas).

Если же Вы всё-таки решились попробовать декомпилировать исполняемый файл, то необходимо знать следующие вещи. Исходные коды на Delphi обычно хранятся в файлах двух типов: сам исходник в ASCII кодировке (.pas, .dpr) и файлы ресурсов (.res, .rc, .dfm, .dcr). Dfm файлы хранят в себе свойства объектов, содержащихся в форме. При создании конечного .exe, Delphi копирует в него информацию из .dfm файлов. Каждый раз, когда мы изменяем координаты формы, описания кнопок или связанные с ними события, то Delphi записывает эти изменения в .dfm (за исключением кода процедур. Он сохраняется в файлах pas/dcu ). И наконец, чтобы получить при декомпиляции файл .dfm, нужно знать - какие типы ресурсов хранятся внутри Win32 исполняемого модуля.

3 Reply by PunBB 2015.07.09 11:35

Все программы, скомпилированные в Delphi имеют следующие секции: CODE, DATA, BSS, .idata, tls, .rdata, .rsrc. Самые важные для декомпиляции секции CODE и .rsrc. В статье "Adding functionality to a Delphi program" приведены некоторые интересные факты о исполняемых форматах Delphi, а так же информация о классах и DFM ресурсах. В этой статье есть один интересный момент под заголовком: "Как добавить свой обработчик события в уже откомпилированный файл, например, чтобы изменять тект на кнопке".

Среди многих типов ресурсов, которые сохранены в .exe файле, интерес представляет RT_RCDATA, который хранит информацию, которая были в DFM файле перед трансляцией. Чтобы извлеч DFM данные из .exe файла, мы можем вызываться API функцией EnumResourceNames.

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

4 Reply by PunBB 2015.07.09 11:46

Если Вы заинтересовались декомпилованием, то предлагаю Вам несколько Delphi декомпиляторов:

DeDe
DeDe довольно шустрая программка, позволяющая анализировать экзешники, скомпилированные в Delphi. После декомпиляции DeDe даёт Вам следующее:
- Все dfm файлы. Вы сможете открывать их и редактировать в Delphi
- Все объявленные методы с хорошо комментированным кодом на ассемблере с ссылками на строки, импортированных функций, методов и компонент в юните, блоки Try-Except и Try-Finally.
- Большое количество дополнительной информации.
- Вы можете создать папку Delphi проекта со всеми файлами dfm, pas, dpr. Не забудьте, что pas файлы содержат ассемблерный код.

Revendepro
Revendepro находит почти все структуры (классы, типы, процедуры, и т.д.) в программе, и генерирует их паскальное представление, процедуры естевственно будут представлены на языке ассемблера. К сожалению, полученный ассемблерный код не может быть заново откомпилирован. Так же доступен исходник этого декомпилятора. К сожалению, этот декомпилятор не совсем рабочий - генерирует ошибку при декомпиляции.

MRIP
Позволяет извлекать из Delphi приложения любые ресурсы: курсоры, иконки, dfm файлы, pas файлы и т.д. Но главная его особенность - это способность извлекать файлы, хранящиеся в других файлах. Поддерживается более 100 форматов файлов. MRip работает под DOS.

5 Reply by PunBB 2015.07.10 02:39

Нашел уникальное решение проблемы распаковки файлов exe, но платное. Хотя есть тестовый период.

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

Тюнер ресурсов о единственном инструменте вы, вероятно, доверять изменять ресурсы в PE исполняемого файла. Откройте для себя уникальные свойства этого редактора ресурсов , в том числе, как открыть проблемные исполняемые файлы и редактировать скрытые данные, которые другие редакторы просто не может видеть, широкий спектр поддерживаемых типов ресурсов, для распаковки UPX, и многое другое. Вы узнаете, стандартную программу промышленности для перевода и настройки пользовательского интерфейса.

Тюнер ресурсов с огромным количеством функций, которые делают его важным инструментом для тех, кто настройки еще программы. Удачи персонализации любое приложение на свой неповторимый вкус. С помощью мощных Resource Tuner, вам больше не нужно страдать с уродливыми икон и картин по умолчанию. Использование очень просто, просто запустите программу и выберите EXE или DLL файл, чтобы прочитать данные из.

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

главная программы resource tuner руководство

В ресурсах программ, созданных при помощи таких средств разработки, как Delphi или C++ Builder, вы не найдёте привычных диалогов, меню или акселераторов. Вместо них зато есть такой тип ресурса, как RCData, в котором и хранятся все эти данные в виде DFM (Delphi Form Module).

При разработке приложения на Delphi или C++ Builder создаются скрипты, в которых сохраняется полное описание и иерархия всех задействованных компонентов, их свойств и методов. Далее скрипты компилируются и сохраняются в ресурсах исполняемого файла (в RC Data). При просмотре ресурсов программы, написанной на Delphi, Resource Tuner визуализирует в текстовом режиме все загружаемые формы Дельфи (DFM) и воссоздаёт их в доступном для редактирования виде.

Каждая Delphi Form состоит из набора свойств (заголовок, размер, цвет шрифта и стиль) и событий, например, нажатие клавиши, щелчок мышью или активация компонента с некоторыми дополнительными событиями. Некоторые свойства являются общими для большинства форм, некоторые уникальны и встречаются только у форм определённого типа. Изменение свойства формы меняет её поведение или внешний вид.

Пример замены имидж-листа на форме Дельфи

1. Раскройте папку RCData в Дереве ресурсов, далее последовательно раскрывайте вложенные папки форм, пока не доберётесь до ресурса, обозначенного как Bitmap. В правой панели вы увидите изображения, собранные в имидж-листе.

Открытие ресурса DFM

3. Объекты формы представлены в левой панели редактора в виде иерархического дерева. Все связанные с объектом свойства и события отображаются в правой панели.

Свойства и события объектов Дельфи

4. Выберите свойство объекта или значение в списке в правой панели.

5. Выполните необходимые изменения.

НЕ ИЗМЕНЯЙТЕ НИКАКИХ СВОЙСТВ, ЕСЛИ ИХ СМЫСЛ И ДОПУСТИМЫЕ ЗНАЧЕНИЯ ВАМ НЕИЗВЕСТНЫ. С ВЫСОКОЙ ВЕРОЯТНОСТЬЮ ВЫ СДЕЛАЕТЕ ПРОГРАММУ НЕРАБОТОСПОСОБНОЙ.

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

7. Выберите в меню 'Файл' -> 'Сохранить файл' для сохранения произведённых изменений в файл.

ОГРАНИЧЕНИЯ:

В связи с тем, что разработчик может создать компонент с совершенно произвольными и уникальными свойствами и количество различных вариаций бесконечно, Resource Tuner не в состоянии проконтролировать и идентифицировать все возможные комбинации и не может выполнить проверку допустимых диапазонов вводимых значений. Кроме того, благодаря наличию в теле Дельфи-программы RTTI (run-time type information) обычными являются варианты, когда непосредственные значения заменяются символьным представлением этих значений.

Resource Tuner работает на всех версиях Windows
от 2000 и XP до 8 и 10.

Минимальные системные требования:
Процессор Intel Pentium® или AMD K5 166 MHz
16 MB RAM

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