Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.01.2010, 14:20
Аватар для Danik007
Danik007 Danik007 вне форума
Новичок
 
Регистрация: 05.01.2010
Сообщения: 58
Репутация: 10
Печаль Прикладная программа создающая .EXE файл

Всем доброе время суток!
Хочу написать программу которая фактически создает другую программу
Если вкратце, то программа №1 имеет интерфейс и поля для ввода информации пользователем, информация из этих полей должна заносится в определенные места кода программы №2 (можно и консольной). После чего программу №2 нужно сохранить как рабочий .EXE файл.

Полазив по просторам сети понял что надо использовать либо компилятор, либо интерпретатор в программе №1, но я не имею ни малейшего понятия как это сделать .

Помогите пожалуйста!!!

Последний раз редактировалось Danik007, 05.01.2010 в 14:36.
Ответить с цитированием
  #2  
Старый 05.01.2010, 22:07
Аватар для AND_REY
AND_REY AND_REY вне форума
Активный
 
Регистрация: 31.03.2009
Адрес: Украина, г.Днепропетровск
Сообщения: 324
Версия Delphi: Delphi7
Репутация: 3877
По умолчанию

Тоже сталкивался с такой проблемой. Вот набрал простой пример для разбора EXE.rar
Даный пример создаёт полностью готовую программу (ехе), при создании можна изменять два параметра. Этот исходник можно упростить добавив в создающийся ехе таблицу импорта с функциями (какие надо).
Если хочеш изменять параметры в готовых ехе то это проще.
Анализируеш ехе, находишь нужные адреса и меняеш их значения.
Все смещения и адреса взяты отсюда pe.rar
Ответить с цитированием
  #3  
Старый 05.01.2010, 22:56
Аватар для Danik007
Danik007 Danik007 вне форума
Новичок
 
Регистрация: 05.01.2010
Сообщения: 58
Репутация: 10
По умолчанию

Посмотрел вашу программу, большое спасибо, но многое не понял.
Можно написать без PE?
Просто есть код программы №2, в этом коде правятся параметры, а потом все это компилится, но без участия Delphi, только по средствам моей программы №1.
Ответить с цитированием
  #4  
Старый 05.01.2010, 23:12
Аватар для AND_REY
AND_REY AND_REY вне форума
Активный
 
Регистрация: 31.03.2009
Адрес: Украина, г.Днепропетровск
Сообщения: 324
Версия Delphi: Delphi7
Репутация: 3877
По умолчанию

Можно откомпилировать прогу №2 найти смещения параметров которіе изменяются и записать туда другие значения.
Для этого надо дизасемблировать прогу N2.
Что за параметры надо менять и что из себя представляет прога №2 ?
(Похоже на написание кряка )

Последний раз редактировалось AND_REY, 05.01.2010 в 23:18.
Ответить с цитированием
  #5  
Старый 06.01.2010, 13:25
Аватар для Danik007
Danik007 Danik007 вне форума
Новичок
 
Регистрация: 05.01.2010
Сообщения: 58
Репутация: 10
Лампочка

Цитата:
Сообщение от AND_REY
Можно откомпилировать прогу №2 найти смещения параметров которіе изменяются и записать туда другие значения.
Для этого надо дизасемблировать прогу N2.
Что за параметры надо менять и что из себя представляет прога №2 ?
(Похоже на написание кряка )

Параметры такие: Путь к .exe файлу, дата (в формате ДД.ММ.ГГГГ) и еще одно числовое значение.
А можно ли сделать так:
1) Прикрепить к программе №1 компилятор Delphi (желательно помести в саму прогу, для портативности)
2) программу №2 оставить в ввиде файла .pas (тоже желательно поместить в программу №1)
3) Выше перечисленные параметры (путь, дата, число) задать как переменные заносящиеся в .pas файл (программы №2)
4) А в заключении, направить этот файл в компилятор.

Как видите ни какого отношения к креку, это не имеет. Жду ваших ответов, очень надеюсь что это все реализуемо
Ответить с цитированием
  #6  
Старый 06.01.2010, 17:03
Аватар для AND_REY
AND_REY AND_REY вне форума
Активный
 
Регистрация: 31.03.2009
Адрес: Украина, г.Днепропетровск
Сообщения: 324
Версия Delphi: Delphi7
Репутация: 3877
По умолчанию

Можна сделать всё.
Вы полностью описали алгоритм.
Могу только уточнить, на основе примера www.slil.ru/28444421

1. Присоединяем к первой проге (в виде Res ресурса) компилятор
DCC32.ехе и минимум модулей для его работы SysInit.pas и System.pas
2. Первая прога при запуске изменяет нужные параметры в Progect1.pas
извлекает из себя компилятор и модули в каталог где находится
Progect1.pas создаёт Bat - файл и запускает его.
Bat - файл запускает компилятор и передаёт ему путь к Progect1.pas
Т.о создаёться ехешка.
3. Удаляем все файлы кроме созданной ехе и pas - исходника второй проги.

В примере стоит только запустить Progect1.bat и выполняются пункты
2 и 3.
Ответить с цитированием
  #7  
Старый 06.01.2010, 20:43
Аватар для Danik007
Danik007 Danik007 вне форума
Новичок
 
Регистрация: 05.01.2010
Сообщения: 58
Репутация: 10
По умолчанию

Огроманое спасибо за пример!
Цитата:
Присоединяем к первой проге (в виде Res ресурса) компилятор
DCC32.ехе и минимум модулей для его работы SysInit.pas и System.pas
А как прикрепить .exe в виде Res? Вы могли бы рассказать подробнее это? Еще раз спасибо!
Ответить с цитированием
  #8  
Старый 06.01.2010, 22:12
Аватар для AND_REY
AND_REY AND_REY вне форума
Активный
 
Регистрация: 31.03.2009
Адрес: Украина, г.Днепропетровск
Сообщения: 324
Версия Delphi: Delphi7
Репутация: 3877
По умолчанию

Пример с ресурсом (компилятор и два модуля) www.slil.ru/28445732
Для создания ресурса надо
1. Создать текстовый файл (Data.txt) в нём набрать
DCC32 FILE C:\DCC32.EXE
(DCC32 - имя ресурса, FILE - тип любой файл, C:\DCC32.EXE - путь с файлом)
2. Открыть текстовый файл с помощю ...Borland\Delphi7\Bin\brcc32.exe
это ресурсный компилятор Borland.
После компиляции рядом с текстовым файлом появится ресурс.
Далее см. пример.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:11.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter