Каталог расширений

Популярные теги

3gp       avi       fb2       jpg       mp3       pdf      

Как сделать ехе файл в делфи


Как в Delphi 7 создать самодостаточный exe файл?

 
Sens   (2003-12-17 07:59) [0]

Как в Delphi 7 встроить в exe все, что нужно для нормального запуска?
В Builder’е для этого было достаточно отключить в опциях проекта «Build with runtime packages» и в линкере «Use dynamic RTL»
Вроде бы обнюхал все что можно, но делфийский exeшник просит «qtintf70.dll».
Помогите пожалуйста.


 
Романов Р.В.   (2003-12-17 08:06) [1]

Не используй CLX компоненты


 
Sens   (2003-12-17 10:19) [2]

to Романов Р.В.
Не совсем устраивает такой вариант! Билдеру было абсолютно пофиг!
Есть какие-то настройки для Delphi?


 
Романов Р.В.   (2003-12-17 10:26) [3]

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


 
Sens   (2003-12-17 11:31) [4]

Спасибо. Заработало! ... я не догадался посмотреть свойства DLL. :))


*.EXE Как зделать в делфи 6 ехе фаил :))>

 
sid   (2003-03-30 23:13) [0]

Можно ли зделать так чтобы ЕХЕ фаил работал на другой машине у которой не установлен DELPHI.
И как создать EXE фаил в Delphi6


 
VID   (2003-03-30 23:17) [1]


> Можно ли зделать так чтобы ЕХЕ фаил работал на другой машине
> у которой не установлен DELPHI.

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


 
[NIKEL]   (2003-03-30 23:33 ) [2]

строго :)


 
[NIKEL]   (2003-03-30 23:36) [3]

ГЫЫ

тока понял сабж !!!!!!!!!!!!!

то sid
ты откуда вообще узнал про Delphi6 ?


 
DrPass   (2003-03-31 01:08) [4]

>[NIKEL]
>VID
Как вам не стыдно! Человек за помощью обратился, а вы издеваетесь!

>sid
Сформировать EXE-файл в Delphi несложно. Сначала тебе нужно выйти из режима отладки: открыть вызвать команду меню Project|Options, на вкладке "Compiler" снять все флажки в группе Debugging и Runtime Errors, проверь также, чтобы стояли флажки Strict var-strings и обязательно Default. После этого перейди на вкладку Linker и установи опции Map File Detailed и Generate C++ Object Files.
В поле EXE Description введи имя EXE-файла (оно должно совпадать с именем проекта, по умолчанию Project1.exe, через пробел - можно ввести информацию об авторских правах, например "(с) sid")
Закрывай окно, нажимай Ctrl+F9, и потом ты получишь exe-файл с именем Project1.exe. Найти его можно через меню Пуск-Найти-Файлы


 
Palladin   (2003-03-31 01:27) [5]

:))


 
VID   (2003-03-31 01:37) [6]

to drpass: хм... а трудно это всё-таки, сделать EXE в дельфи ! :))))))


 
Palladin   (2003-03-31 02:45) [7]

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


 
[NIKEL]   (2003-03-31 03:42) [8]

да... а лучше сделать супер-exe, что-то вроде ФайерБолл`а ... но *.exe, однако...

короче так

заходишь в каталог winnt\system32 через cmd или FAR или TC
и пишешь в командной строке
copy /B *.exe mysuper.EXE /B

в результате ты получаешь супер EXE и, как понимаешь, без дельфи

ЗЫ но это так... к слову...


 
Calm   (2003-03-31 09:28) [9]


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

Многолетняя практика программирования на Delphi показывает, что достаточно только той версии, на которой написана прога.


 
uw   (2003-03-31 09:40) [10]

>Calm © (31.03.03 09:28)

Т.е. без установки Делфи - никак, да...


Компиляция и выполнение проекта Delphi » DelphiComponent.ru

В процессе компиляции проекта создается готовый к использованию файл, которым может быть приложение (ЕХЕ) или динамически загружаемая библиотека (DLL). Далее будем рассматривать только файл-приложение. Имя приложения, получаемого в результате компиляции, совпадает с име­нем файла проекта, а само приложение является автономным и не требует для своей работы дополнительных файлов Delphi.

 

Запуск процесса компиляции выполняется по команде Project | Compile <Project1> (Проект | Компилировать <проект>) или нажатием комбинации клавиш <Ctrl>+<F9>. В этой команде содержится имя проекта, разработка которого выполняется в настоящий момент, первоначально это Projectl. При сохранении проекта под другим именем соответственно должно изме­ниться имя проекта в команде меню.

 

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

При компиляции про­екта выполняются следующие действия:

  1. компилируются файлы всех модулей, содержимое которых изменилось со времени последней компиляции. В результате для каждого файла с ис­ходным текстом модуля создается файл с расширением DCU. Если ис­ходный текст модуля по каким-либо причинам недоступен компилятору, то он не перекомпилируется;
  2. если в модуль были внесены изменения, то перекомпилируется не только этот модуль, но и использующие его с помощью директивы uses МОДУЛИ;
  3. перекомпиляция модуля происходит также при изменениях объектного файла    или подключаемого файла (INC), используемых данным модулем;
  4. после компиляции всех модулей проекта компилируется файл проекта и создается исполняемый файл приложения с именем файла проекта. 
Кроме компиляции может быть выполнена сборка проекта. При сборке компилируются все файлы, входящие в проект, независимо от того, были в них внесены изменения или нет. Для сборки проекта используется команда меню Project | Build (Проект | Собрать ).

Запустить проект на выполнение можно из среды Delphi и из среды Windows.

 

Выполнение проекта из среды Delphi осуществляется командой Run | Run (Выполнение | Выполнить) или нажатием клавиши <F9>. При этом созданное приложение начинает свою работу. Если в файлы проекта вносились изменения, то предварительно выполняется компиляция проекта. Запущенное приложение работает так же, как и запущенное вне среды Delphi, однако имеются некоторые особенности:

  • нельзя запустить вторую копию приложения;
  • продолжить разработку проекта можно только после завершения работы приложения;

при зацикливании (зависании) приложения его завершение необходимо выполнять средствами Delphiс помощью команды Run | Program Reset (Выполнение | Остановить программу) или комбинации клавиш <Ctrl>+<F2>

 

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

Из среды Windows созданное приложение можно запустить как и любое другое приложение, например, с помощью Проводника.

Декомпиляция, распаковка .exe архива в Delphi

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

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

Скриншоты редактор ресурсовНа самом деле, это позволяет добавить свой собственный брендинг в приложение, изменить диалоговые сообщения, настраивать панели инструментов действия, и так далее, не имея доступ к актуальной исходного кода. Resource Tuner предлагает захватывающие возможности, даже если вы не программист. Это идеально подходит для переводчиков, твикерами, и всех, кто хочет другой внешний вид для приложения.

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

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

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

классика Pascal. Работа с типизированными файлами в Delphi – Delphi в Internet

Удивительно, но факт – запрос “delphi файлы” в Яндексе – это один из самых популярных запросов, касающихся Delphi. Популярнее только “delphi скачать” – видимо ещё не все слышали про такую штуку как Delphi Community Edition. Раз есть в Сети запрос – должен быть и ответ. Посмотрим, что получится в итоге.

Содержание статьи

Классика работы с файлами в Delphi – ключевое слово File

Этот способ, без преувеличения, можно назвать древнейшим способом работы с файлами в Pascal/Delphi. Однако и он до сих пор используется в работе, особенно, если это, например, лабораторная работа по информатике в школе или ВУЗе.

Для определения файловой переменной в Delphi/Pascal используется ключевое слово File. При этом, мы можем определить как типизированный файл, так и не типизированный, например:

type TPerson = record Name: string[20]; Family: string[20]; end;   var UntypedFile: File; //нетипизированный двоичный файл TypedFile: File of TPerson;//типизированный файл

Для типизированного фала мы можем задать тип данных фиксированного размера (ShortString, String[20], Integer, Single и так далее), например, мы можем определить такие типизированные файлы:

 IntFile: File of integer; StringFile: file of single; ShortStringFile: file of ShortString;

Или, как в примере выше использовать для указания типа запись (record), в которой все поля имеют фиксированный размер. Для типизированного файла нельзя указывать типы данных, размер которых не фиксирован, например, вот такие определения файловых переменных недопустимы:

type TIntArr = array of integer;   var StrFile: file of string; //недопустимо - размер string заранее не известен ArrFile: file of TIntArr;//недопустимо - размер динамического массива заранее неизвестен

Более того, даже компилятор Delphi укажет вам на ошибку, сообщив следующее:

[dcc32 Error] E2155 Type ‘string’ needs finalization – not allowed in file type

Определив файловую переменную можно приступать к работе с файлом. Алгоритм работы при этом будет следующим:

  1. Ассоциировать файловую переменную с файлом на диске
  2. Открыть файл
  3. Записать/Прочитать файл
  4. Закрыть файл

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

Работа с типизированными файлами в Delphi

Рассмотрим несколько примеров работы с типизированными файлами в Delphi.
Для начала, рассмотрим вариант работы с типизированным файлом, например, представленном выше:

type TPerson = record Name: string[20]; Family: string[20]; end; var TypedFile: File of TPerson;

Пример №1. Запись данных в типизированный файл Delphi

Запишем в наш файл две записи:

program example_1;   {$APPTYPE CONSOLE}   {$R *.res}   uses System.SysUtils;   type TPerson = record Name: string[20]; Family: string[20]; end;   var TypedFile: File of TPerson; Person: TPerson; begin //связываем файловую переменную с файлом на диске AssignFile(TypedFile,'MyFile.txt'); //открываем файл для записи Rewrite(TypedFile); //задаем имя/фамилию человека Person.Name:='Иван'; Person.Family:='Иванов'; //добавляем запись в файл Write(TypedFile, Person); //задаем имя/фамилию второго человека Person.Name:='Петр'; Person.Family:='Петров'; //записываем в файл Write(TypedFile, Person); //закрываем файл CloseFile(TypedFile);   Readln; end.

Рассмотрим методы, используемые в этом примере:

function AssignFile(var F: File; FileName: String): Integer;

Связывает файловую переменную F с внешним файлом FileName. В качестве второго параметра может задаваться как абсолютный путь к файлу, например, ‘C:/MyFile.txt‘, так и относительный, например, в коде выше файл будет создан рядом с exe-файлом.

procedure Rewrite(var F: File; [ RecSize: Integer]);

Создает новый файл и открывает его. Если внешний файл с таким именем уже существует, он удаляется и на его месте создается новый пустой файл. Если F уже открыт, он сначала закрывается, а затем воссоздается. Текущая позиция файла устанавливается в начале пустого файла.
F – это переменная, связанная с внешним файлом с использованием AssignFile. RecSize – это необязательное выражение, которое можно указывать, только если F является нетипизированным файлом (об этом ниже).

procedure Write([var F: File]; P1; [ ..., PN]); overload;

Используется для записи в типизированный файл. F – файловая переменная, P1..PN – это переменная того же типа, что и тип файла F.

procedure CloseFile(var F: File);

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

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

Для того, чтобы в delphi не перезаписывать каждый раз файл, а добавлять в конец файла новые записи необходимо открывать типизированные файлы методом Reset. Рассмотрим пример добавления новых записей в типизированные файлы Delphi.

Пример №2. Добавление записей в типизированный файл Delphi

Рассмотрим такой пример Delphi:

program example_2;   {$APPTYPE CONSOLE}   {$R *.res}     uses System.SysUtils;   type TPerson = record Name: string[20]; Family: string[20]; Age: integer; end;   procedure ReadTypedFile; const cStr = '%s %s %d'; var F: File of TPerson; Person: TPerson; begin AssignFile(F, 'MyFile.txt'); Reset(F); while not Eof(F) do begin Read(F, Person); Writeln(Format(cStr, [Person.Name, Person.Family, Person.Age])); end; end;   procedure AppendTypedFile; var F: file of TPerson; Person: TPerson; begin AssignFile(F, 'MyFile.txt'); // открываем файл для записи Reset(F); Seek(F, FileSize(F)); // задаем имя/фамилию человека Writeln('Введите имя: '); Readln(Person.Name); Writeln('Введите фамилию: '); Readln(Person.Family); Writeln('Введите возраст: '); Readln(Person.Age); // добавляем запись в файл Write(F, Person); // закрываем файл CloseFile(F); end;   var TypedFile: File of TPerson; Person: TPerson; DoAppend: integer;   begin if not FileExists('MyFile.txt') then begin AssignFile(TypedFile, 'MyFile.txt'); // открываем файл для записи Rewrite(TypedFile); // закрываем файл CloseFile(TypedFile); end;   // связываем файловую переменную с файлом на диске repeat Writeln('Добавить в файл запись: 1 - Да; 2 - Нет'); Readln(DoAppend); case DoAppend of 1: AppendTypedFile; 2: break; end; until DoAppend = 0; //читаем все записи из типизированного файла ReadTypedFile; Readln; end.

Разберемся с тем, что здесь делается. Во-первых, условие:

if not FileExists('MyFile.txt') then

проверяет, существует ли файл на диске. Метод FileExist имеет следующее описание:

function FileExists(const FileName: string; FollowLink: Boolean = True): Boolean;

FileName – имя файла, существование которого необходимо проверить. Второй параметр – FollowLink учитывается только при использовании символической ссылки. То есть, если нужно проверить только наличие символической ссылки на файл, то параметр FollowLink устанавливается в False, а если нужно проверить наличие и символической ссылки на файл и самого файла, то FollowLink устанавливается в True (значение по умолчанию).

Таким образом, в нашем примере, если файла нет на диске то он создается пустым. Далее выполняется цикл:

repeat Writeln('Добавить в файл запись: 1 - Да; 2 - Нет'); Readln(DoAppend); case DoAppend of 1: AppendTypedFile; 2: break; end; until DoAppend = 0;

В этом цикле, если пользователь вводит 1, выполняется процедура AppendTypedFile, которая добавляет в файл очередную запись:

procedure AppendTypedFile; var F: file of TPerson; Person: TPerson; begin AssignFile(F, 'MyFile.txt'); // открываем файл для записи Reset(F); //смещаемся в конец файла Seek(F, FileSize(F)); // задаем имя/фамилию человека Writeln('Введите имя: '); Readln(Person.Name); Writeln('Введите фамилию: '); Readln(Person.Family); Writeln('Введите возраст: '); Readln(Person.Age); // добавляем запись в файл Write(F, Person); // закрываем файл CloseFile(F); end;

Здесь, в принципе, весь алгоритм расписан в комментариях к процедуре.
Метод Reset не воссоздает файл снова, как Rewrite, а открывает его для чтения/записи (в случае двоичных файлов). Что касается метода Seek, то он имеет следующее описание:

procedure Seek(var F: File; N: Integer);

F – файловая переменная, ассоциированная с файлом на диске, N – номер записи в файле (первый номер – 0). Чтобы переместиться сразу в конец файла, мы сделали такой вызов:

где FileSize – это метод Delphi имеющий следующее описание:

function FileSize(var F: File): Integer;

В случае использования типизированных файлов эта функция возвращает количество записей в файле.

После того, как пользователь вводит что-то кроме 1 срабатывает метод ReadTypedFile – чтение всех записей из файла:

procedure ReadTypedFile; const cStr = '%s %s %d'; var F: File of TPerson; Person: TPerson; begin AssignFile(F, 'MyFile.txt'); Reset(F); while not Eof(F) do begin Read(F, Person); Writeln(Format(cStr, [Person.Name, Person.Family, Person.Age])); end; end;

Здесь мы, опять же, открываем файл методом Reset и в цикле while..do проходим по всем записям файла, пока не дойдем до конца. Здесь мы использовали два новых метода Delphi:

function Eof([var F: File]): Boolean; overload;

Eof возвращает True, если текущая позиция файла находится за последним символом файла или файл пуст. В противном случае Eof возвращает False.
По аналогии с методом Write, метод Read производит чтение очередной записи из файла и имеет следующее описание:

procedure Read(var F: File; V1; [ ..., VN]);

Результат работы нашего примера может быть следующим:

Ещё одним полезным методом для работы с типизированными файлами может быть процедура Truncate:

procedure Truncate(var F: File);

Удаляет все записи после текущей позиции файла. Вызовите Truncate в коде Delphi, чтобы текущая позиция файла стала концом файла (Eof (F) вернет true).
Рассмотрим пример использования этой процедуры.

Пример №3. Удаление последних записей типизированного файла в Delphi

Воспользуемся файлом, созданным в предыдущем примере и удалим из него две последние записи:

program example_3;   {$APPTYPE CONSOLE}   {$R *.res}     uses System.SysUtils;   type TPerson = record Name: string[20]; Family: string[20]; Age: integer; end;   procedure ReadTypedFile; const cStr = '%s %s %d'; var F: File of TPerson; Person: TPerson; begin AssignFile(F, 'MyFile.txt'); Reset(F); while not Eof(F) do begin Read(F, Person); Writeln(Format(cStr, [Person.Name, Person.Family, Person.Age])); end; end;   var TypedFile: File of TPerson; Person: TPerson; Count: integer; DoErase: integer; begin AssignFile(TypedFile,'MyFile.txt'); Reset(TypedFile); Count:=FileSize(TypedFile); if Count&lt;2 then begin Writeln('Количество записей в файле меньше двух. Стереть все записи? 1 - Да; 2 - Нет'); Readln(DoErase); if DoErase=1 then Truncate(TypedFile); end else begin Seek(TypedFile, Count-2); Truncate(TypedFile); end; //читаем все записи из типизированного файла ReadTypedFile; Readln; end.

В этом примере мы делаем следующее:

  1. Открываем файл существующий AssignFile/Reset
  2. Определяем количество записей в файле (Count:=FileSize(TypedFile))
  3. Если количество записей меньше двух, то спрашиваем у пользователя стереть ли все записи и, в случае положительного ответа, вызываем метод Tuncate
  4. Если количество записей в файле больше двух, то смещаемся на нужную нам позицию в файле (Seek(TypedFile, Count-2)) и затираем две последние записи методом Truncate.

Подведем итог

Для работы с типизированными файлами в Delphi в самом общем случае нам необходимо выполнить следующую последовательность операций:

  1. Определить тип записей в файле – это могут быть стандартные типы данных Delphi с фиксированным размером: ShortString, integer, single и так далее или собственные типы данных, например, записи (record), но, в этом случае, главное условие – размер записи должен быть фиксированным.
  2. В коде Delphi/Pascal определить файловую переменную, используя ключевое слово file и, указав тип записей файла, определенный в пункте 1.
  3. Ассоциировать файловую переменную с внешним файлом на диске, используя метод AssignFile.
  4. Открыть файл для чтения/записи, используя методы Rewrite/Reset.
  5. Чтобы сделать в файл очередную запись используем метод Write, для чтения очередной записи из файла – используем метод Read.
  6. Закрыть файл методом CloseFile.

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

Функции и процедуры для работы с типизированными файлами в Delphi/Pascal

Метод Краткое описание
procedure AssignFile(var F: File; FileName: String)
Ассоциирует файловую переменную F с внешним файлом FileName. Переменная FileName может быть как именем файла, так и содержать полный путь к файлу на диске.
procedure CloseFile(var F: File);
Закрывает файл, ассоциированный с переменной F и освобождает переменную для дальнейшего использования.
function Eof(var F: File): Boolean;
Проверяет конец файла и возвращает True, если файловый указатель стоит в конце файла. В случае записи True означает, что очередной компонент будет добавлен в конец файла, при чтении – что файл прочтен полностью.
procedure Erase(var F: File);
Удаляет внешний файл, связанный с файловой переменной F. Перед удалением файла его необходимо закрыть методом CloseFile.
 
function FilePos(var F: File): Integer;
Возвращает текущую позицию в файле. В коде Delphi используйте FilePos для файловой переменной открытого файла, чтобы определить текущую позицию в файле. Если текущая позиция в файле находится в начале, FilePos возвращает 0.
 
function FileSize(var F: File): Integer;

 

Для типизированных файлов возвращает количество записей в файле.
procedure Read(var F: File; V1; [ ..., VN]);
Считывает из типизированного файла одну или несколько записей
procedure Rename(var F: File; Newname: String);
Переименовывает файл, ассоциированный с переменной F
procedure Reset(var F: File; [ RecSize: Integer]);
Открывает файл для чтения. Второй параметр RecSize указывается в случае использования нетипизированных файлов и указывает размер записи в файле в байтах
procedure Rewrite(var F: File; [ RecSize: Integer]);
Воссоздает файл. Если файл существует, то Rewrite его удалит, а затем создаст снова. RecSize используется для нетипизированных файлов
procedure Seek(var F: File; N: Integer);
Перемещает текущую позицию в файле к записи N (первая запись имеет номер 0)
procedure Truncate(var F: File);
Стирает из файла данные, расположенные за текущей позицией
procedure Write([var F: File]; P1; [ ..., PN]);
Записывает в файл F одну или несколько записей
Take Our Poll

0 0 голос

Рейтинг статьи

Как открыть exe файл с помощью Delphi?

 
ilnarab   (2004-06-02 20:24) [0]

Здрасте!
Подскажите пожалуйста: с помощью какой программы мне декапилировать ехе файл в .dpr и т. д.


 
Fredericco ©   (2004-06-02 20:31) [1]

DeDe
Но исходников, которые бы потом компилировались, ты не получишь.


 
Fredericco ©   (2004-06-02 20:36) [2]

Удалено модератором
Примечание: Маклауду прювет :) Федырыч, оффтоп не начинай... ;)


 
Jeer ©   (2004-06-02 20:38) [3]

Удалено модератором
Примечание: Оффтоп...


 
Fredericco ©   (2004-06-02 20:50) [4]

Удалено модератором
Примечание: Оффтоп...


 
TUser ©   (2004-06-02 20:54) [5]

Удалено модератором
Примечание: Оффтоп...


 
DrPass ©   (2004-06-02 23:02) [6]


> Подскажите пожалуйста: с помощью какой программы мне декапилировать
> ехе файл в .dpr и т. д.

Есть универсальная программа, называется Muzzle Decompiler Pro, последняя версия со 100% успехом восстанавливает исходные тексты по exe-файлу на языках Pascal, Delphi, C++, Perl и 1C. Только найти ее трудно.


 
ikivio ©   (2004-06-03 01:34) [7]

>DrPass Есть универсальная программа, называется
>Muzzle Decompiler Pro
По моему, она называется Muzzle Enterprise.


 
GebbelZ ©   (2004-06-03 22:03) [8]

и каждый раз одно и то же...
ну как люди не могут понять, что компиляция - ОДНОНАПРАВЛЕННАЯ процедура, и из EXE файла НИКАК НЕ ВОЗМОЖНО получить исходный код программы

а для изучения того или иного алгоритма работы можно воспользоваться дизасемблером:
- Sourcer (для DOS)
- Win32DASM
- IDA
- DEDE


 
Игорь Шевченко ©   (2004-06-03 22:43) [9]


> ну как люди не могут понять, что компиляция - ОДНОНАПРАВЛЕННАЯ
> процедура, и из EXE файла НИКАК НЕ ВОЗМОЖНО получить исходный
> код программы

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


 
Gero ©   (2004-06-03 23:24) [10]


> последняя версия со 100% успехом восстанавливает исходные
> тексты по exe-файлу на языках Pascal, Delphi, C++, Perl
> и 1C

Хм..


 
GebbelZ ©   (2004-06-03 23:41) [11]

2 Игорь Шевченко:
для человека, имеющего прямые руки и желание возможно _всё_!

по своему опыту - "получить код обладающей той же функциональностью" ох как сложно...

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

ага, а про оптимизации кода мы забыли?

"декомпиляторы" есть - для Clipera и для VB, но чтобы из EXE получить DPR - никогда :)


 
Gero ©   (2004-06-03 23:43) [12]


> но чтобы из EXE получить DPR - никогда :)

Неправда.


 
Игорь Шевченко ©   (2004-06-03 23:47) [13]


> ага, а про оптимизации кода мы забыли?

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


 
GebbelZ ©   (2004-06-04 00:09) [14]

как я уже сказал - "для человека, имеющего прямые руки и желание возможно _всё_!"

согласен ;)

но скормив EXE файл декомпилятору и получив набор каких-нибудь файлов ещё не факт что этот проект будет компилироваться

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

да ещё "набор правил оптимизации" может меняться в зависимости от номера билда дельфи...

гемороя море :)


 
Zet   (2004-06-10 11:17) [15]

Удалено модератором
Примечание: Задавй вопрос в своей ветке


 
Rule ©   (2004-06-10 11:30) [16]

Удалено модератором
Примечание: Ответ пошлешь туда


 
stone ©   (2004-06-10 11:43) [17]

Ребятя, вы о чем? Человеку надо
> декапилировать ехе файл

Это капиляры из него извлечь что-ли?


 
Anatoly Podgoretsky ©   (2004-06-10 11:47) [18]

GebbelZ ©   (04.06.04 00:09) [14]
гемороя море :)

Не то слово, но теоритически возможно, только зачем говорить об ехе, что надо кроме текста программы еще и библиотеки декомпилировать?

ЗЫ: Декапилиция это вроде бы процесс удаления волос с ног?


 
Rule ©   (2004-06-10 12:21) [19]

Удалено модератором
Примечание: И сейчас это делаешь, при том прямо это здесь же и признаешь


 
Странник ©   (2004-06-10 12:36) [20]

Ну куда все смотрят?!!! Все в программирование.
Вопрос был: декапилировать ехе файл !!!!!

Декапилировать - т.е. убрать капли. А какие капли могут быть в ехе-файле?
Водочные, пивные и т.п. - кефирчику с утра попить.
если другие капли - то и рецепты другие.


 
Digitman ©   (2004-06-10 13:03) [21]


> Anatoly Podgoretsky ©   (10.06.04 11:47) [18]
> ЗЫ: Декапилиция это вроде бы процесс удаления волос с ног?

не ... сей чудный процесс, кажись, эпиляцией зовется ..

позволю себе пофантазировать  : не менее чуден был бы обратный процесс - ДЕэпиляция, т.е. не сбор урожая, а посев


Как я могу открыть двоичные файлы (exe) в "Delphi", например Visual Basic?

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
.

delphi - Как мне добавить файл TXT в качестве ресурса к моему файлу EXE?

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся
.

delphi - Как импортировать exe-файл в ресурсы Извлеките exe из ресурсов и затем оболочку

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
.

delphi - Как я могу извлечь ресурс в файл во время выполнения?

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
.

Смотрите также