Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Статья. Как склеить два приложения

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Для начинающих] >> Статья. Как склеить два приложения
Имя
Сообщение << Старые топики   Новые топики >>
Статья. Как склеить два приложения - 2008-06-17 16:29:16.193333   
FLIER

Сообщений: 628
Оценки: 0
Присоединился: 2007-08-29 01:31:15.400000
Всем привет…
сегодня я расскажу как можно самому склеить 2 программки в одну с последующим запуском обоих….
Что нам понадобиться…:

- Delphi 7
- Две программки для теста
- Прямые руки

итак приступаем….

создаём файл "FJoiner.rc" открываем его с помошью блокнота и пишем следующее:

first EXEFILE first.exe second EXEFILE second.exe этим файлом мы указываем что именно будет добавленно в ресурсы.
дальше создаём "build RES.bat" и вписываем в него строку:
brcc32 FJoiner.rc (здесь и далее я учитываю то,что Delphi 7 у вас уже установлен)

теперь самое главное…
в этой-же папке что и предыдущие два файла создаём третий…назовём его например "FLIERJOINER.dpr"
открываем его с помощью Delphi и вписываем следующий код:
program FLIERJOINER; uses Windows,Classes,shellapi; {$R FJoiner.res} function TempPath: String; var Buffer: array[0..1023] of Char; begin SetString(Result, Buffer, GetTempPath(Sizeof(Buffer)-1,Buffer)); end; procedure ExtractRes(ResType, ResName, ResNewName : String); var Res : TResourceStream; begin Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType)); Res.SavetoFile(ResNewName); Res.Free; end; procedure extract; begin ExtractRes('EXEFILE', 'first',TempPath+ '1.EXE'); ExtractRes('EXEFILE', 'second', TempPath+'2.EXE'); end; begin extract; ShellExecute(0,nil,PCHar(TempPath+ '1.EXE'),nil,nil,SW_HIDE); ShellExecute(0,nil,PCHar(TempPath+ '2.EXE'),nil,nil,SW_HIDE); end.
перемещаем в нашу папку два файлика с именами "first.exe" и "second.exe" это те программки которые будем клеить…
теперь не закрывая Delphi запускаем файл "build RES.bat", в папке должен появиться файл "FJoiner.RES" если он не появился,значит что-то вы сделали не так…
далее переходим в окно Delphi и жмём "Ctrl + F9" полученая программка имеет в себе два наши "first.exe" и "second.exe" она извлечёт их в папку "Temp" и запустит…

для тех кто ленится делать это самостоятельно выбрасываю сорцы: http://depositfiles.com/files/6038151
Post #: 1
RE: Статья. Как склеить два приложения - 2008-06-17 16:45:41.950000   
Zorgus

Сообщений: 1342
Оценки: 0
Присоединился: 2007-11-25 11:45:46.433333
А таким способом можно склеивать пинча???
Post #: 2
RE: Статья. Как склеить два приложения - 2008-06-17 16:46:25.730000   
FLIER

Сообщений: 628
Оценки: 0
Присоединился: 2007-08-29 01:31:15.400000
ну конечно можно…
Post #: 3
RE: Статья. Как склеить два приложения - 2008-06-17 22:42:22.336666   
RanDoMix

Сообщений: 1568
Оценки: 0
Присоединился: 2007-10-20 20:09:28.990000
Кстати. А что если переместить все секции из одного файла в другой+сменить точку входа на функцию, которая запускает 2 потока (тоесть будут одновременно запущены 2 так называемых файла) и после функции замутить джамп на прежнюю точку входа. Такую тему возможно реализовать ?
И если да, то каким образом?
Post #: 4
RE: Статья. Как склеить два приложения - 2008-06-18 01:39:28.593333   
Zorgus

Сообщений: 1342
Оценки: 0
Присоединился: 2007-11-25 11:45:46.433333
+1!!))) полезная штука!! спасибо!!
ЗЫ. По больше бы таких статеек;)
Post #: 5
RE: Статья. Как склеить два приложения - 2008-06-18 02:43:00.883333   
[ TRaY ]

Сообщений: 919
Оценки: 0
Присоединился: 2008-03-22 18:47:37.556666
Зачод, че еще сказать)
Post #: 6
RE: Статья. Как склеить два приложения - 2008-06-18 09:37:21.023333   
Flint_ta

Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
quote:

А что если переместить все секции из одного файла в другой+сменить точку входа на функцию, которая запускает 2 потока (тоесть будут одновременно запущены 2 так называемых файла)


Я думаю что так не получится, т.к. при загрузке процесса должна идти инициализация всех dll указанных в таблице импорта, а при вызове CreateThread этого же не произойдет, и все вызовы API функций будут идти в никуда, это одна из проблем, потом при создании процесса загрузчик ведь читает целую кипу параметров из PE заголовка, настраивает все и т.д., а CreateThread тупо создает поток в контексте процесса и начинает выполнятся с адреса переданного ей к качестве параметра. В общем мое мнение нет :)
Post #: 7
RE: Статья. Как склеить два приложения - 2008-06-18 11:39:21.846666   
RanDoMix

Сообщений: 1568
Оценки: 0
Присоединился: 2007-10-20 20:09:28.990000
Тоесть в ручную ничего не получится…

тогда скину сорцы топикстартера. Заценю его хип хоп.
Post #: 8
RE: Статья. Как склеить два приложения - 2008-06-18 13:01:55.070000   
Master_Riv

Сообщений: 55
Оценки: 0
Присоединился: 2008-05-28 19:36:45.483333
Я бумаю "Склейшиков" сичас и так достаточно, и функций больше…
Post #: 9
RE: Статья. Как склеить два приложения - 2008-06-18 15:56:19.043333   
FLIER

Сообщений: 628
Оценки: 0
Присоединился: 2007-08-29 01:31:15.400000

quote:

ORIGINAL: Master_Riv

Я бумаю "Склейшиков" сичас и так достаточно, и функций больше…


Я тоже бумаю их сичас достаточно,но когда сам делаеш оно по лучше будет, а функции тебе помоему добавлять никто не запрещал..
Post #: 10
RE: Статья. Как склеить два приложения - 2008-06-19 21:56:50.540000   
Sh1td0wn

Сообщений: 156
Оценки: 0
Присоединился: 2008-05-16 16:48:32.490000
хмм… а на Си мона?
(у мну VC++ 2005 express)
Post #: 11
RE: Статья. Как склеить два приложения - 2008-06-20 13:14:04.913333   
FLIER

Сообщений: 628
Оценки: 0
Присоединился: 2007-08-29 01:31:15.400000
Попроси кого-то перевести код…
Post #: 12
RE: Статья. Как склеить два приложения - 2009-02-09 11:41:09.283333   
ASI

Сообщений: 263
Оценки: 0
Присоединился: 2008-01-31 15:21:46.570000
Проверил код, работает нормаль, автору ++. Спасибо за это.

Попробую как нибудь на С++ перевести, но не гарантирую, я только 3 месяца тому назад освоил С++

Автор один вопрос:
А по каким материалам ты учился? Если ещё такие материалы, которые как ты на примерах всё объясняют….

И да кстати на будущие дружеский совет:
"Пожалуйста код программы комментируй, для того что бы не просто копий пастели а ещё вникали".

СПАСИБО ЗА СТАТЕЙКУ
Post #: 13
RE: Статья. Как склеить два приложения - 2009-06-24 12:21:17.210000   
Romeo Ordos

Сообщений: 229
Оценки: 0
Присоединился: 2006-10-13 14:50:17.960000
Подниму тему из мёртвых)
Возможно ли запустить первую программу не распаковывая ёё, с параметрами и с возможностью запуска из неё второй?
Post #: 14
RE: Статья. Как склеить два приложения - 2009-06-24 14:21:07.443333   
Sunzer

Сообщений: 253
Оценки: 31190
Присоединился: 2007-06-15 19:23:32.436666
quote:

ORIGINAL: Romeo Ordos

Подниму тему из мёртвых)
Возможно ли запустить первую программу не распаковывая ёё, с параметрами и с возможностью запуска из неё второй?


В смысле?
Post #: 15
RE: Статья. Как склеить два приложения - 2009-06-24 14:52:21.980000   
Romeo Ordos

Сообщений: 229
Оценки: 0
Присоединился: 2006-10-13 14:50:17.960000
В общем есть исходники одной прогаммы на делфи и один экзешник. Нужно скомпилить программу так, чтобы экзешник попал внутрь. И можно было запускать его из тела программы, не распаковывая. Вторая прога консольная, и к ней при каждом запуске нужно добавлять разные параметры.

Прошу прощения за каламбур, проще обяснить не могу.
Post #: 16
RE: Статья. Как склеить два приложения - 2009-06-24 19:52:30.193333   
VaZoNeZ

Сообщений: -6758
Оценки: 0
Присоединился: 2008-10-31 14:38:43.796666
хм… запуск из памяти?
Post #: 17
RE: Статья. Как склеить два приложения - 2009-06-24 20:03:47.830000   
Romeo Ordos

Сообщений: 229
Оценки: 0
Присоединился: 2006-10-13 14:50:17.960000
Да, возможно.
Post #: 18
RE: Статья. Как склеить два приложения - 2009-06-24 20:10:39.900000   
volod1a

Сообщений: 38
Оценки: 0
Присоединился: 2009-06-19 01:23:18.813333
Склейщиков щас много это правда.Но с чем этот клей идет…..А тут будеш уверен что сюрпризов небудет))Спасибо.
Post #: 19
Страниц:  [1]
Все форумы >> [Для начинающих] >> Статья. Как склеить два приложения







Связаться:
Вопросы по сайту / xakep@glc.ru

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