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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 20.06.2008, 19:17
DroNNN DroNNN вне форума
Прохожий
 
Регистрация: 06.04.2008
Сообщения: 23
Репутация: 10
По умолчанию Склеить два файла так чтобы запускались оба

Кто нибудь может объяснить как можно на Delphi сделать программу которая склеивает два файла чтоб при запуске запускались оба? (С помощью Blockread и Blockwrite не получается т.к. запускается только один файл.Может что-то стоит добавить или исправить или удалить, вот исходник:
Код:
  AssignFile(f,'C:\1.exe');{Первый файл}
  AssignFile(f2,'C:\finally.exe'); {Исходный, склеинный первый и второй}
  Reset(f,1);
  Rewrite(f2,1);
    while not eof(f) do
    begin
    BlockRead(f,buf,sizeof(buf),done);
    BlockWrite(f2,buf,done);
    Application.ProcessMessages;
    end;
  CloseFile(f);
AssignFile(f,'C:\2.exe');{Второй файл}
Reset(f,1);
done:=FileSize(f);
BlockWrite(f2,done,4);
    while not eof(f) do
    begin
    BlockRead(f,buf,sizeof(buf),done);
    BlockWrite(f2,buf,done);
    Application.ProcessMessages;
    end;
CloseFile(f);
CloseFile(f2);
Admin: Пользуемся тегами!
DroNNN: Ясно!

Последний раз редактировалось DroNNN, 20.06.2008 в 20:09.
Ответить с цитированием
  #2  
Старый 21.06.2008, 11:38
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

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

Можно представить такое следующим образом. На Delphi делается небольшая программа (консольное приложение), которая будет запускать сначала одно приложение, затем другое. Выглядеть это будет так, как будто программы запустились одновременно. На последнем этапе (если так надо) "склеить" все три приложения, первым из которых будет этот "запускатель" на Delphi. Но простая "склейка" здесь не пройдет - "запускателю" надо знать какое смещение (начало приложения) в едином файле имеет первая программа и какое вторая.
__________________
Не забывайте делать резервные копии

Последний раз редактировалось san-46, 21.06.2008 в 11:44.
Ответить с цитированием
  #3  
Старый 23.06.2008, 09:54
Аватар для Thrasher
Thrasher Thrasher вне форума
Illuminati
 
Регистрация: 06.03.2008
Адрес: Крым, г. Симферополь
Сообщения: 348
Репутация: 8808
По умолчанию

Используй джойнеры (Joiners). Только есть одна проблема джойнеров не выносят антивирусы, ибо очень часто джойнеры используют для протаскивания троянов. Можно написать свой джойнер. Если файлы можно подсоединять во время компиляции, то можно прятать в ресурсы.
__________________
Хорошо написанная программа не требует документации
ICQ 9-184-668.
Ответить с цитированием
  #4  
Старый 23.06.2008, 17:52
VaZoNeZ VaZoNeZ вне форума
Прохожий
 
Регистрация: 29.04.2008
Сообщения: 2
Репутация: 10
По умолчанию Могу помочь!

Есть написаный мною джоинер, можно, что вложеные файлы запускались или в реестр в авторан писались.........
Могу выложить..........
Ответить с цитированием
  #5  
Старый 31.12.2008, 00:58
SOM SOM вне форума
Прохожий
 
Регистрация: 01.05.2007
Сообщения: 21
Репутация: 10
По умолчанию

Код:
VaZoNeZ
- Да если можно выложи вири не ругаються на него?
__________________
Есть желание, но нет учителя, есть мотивация, но нет концентрации, есть голова, но нет девушки программистки
Ответить с цитированием
  #6  
Старый 16.01.2009, 23:02
Romikgy Romikgy вне форума
Прохожий
 
Регистрация: 16.01.2009
Сообщения: 2
Репутация: 10
По умолчанию

имхо можно организовать через ресурсы данное
Ответить с цитированием
  #7  
Старый 16.01.2009, 23:15
Аватар для Vayrus
Vayrus Vayrus вне форума
Исполняемый Ретровирус
 
Регистрация: 09.08.2008
Адрес: Umbrella Corporation
Сообщения: 743
Репутация: 1293
Лампочка

VaZoNeZ, интересно глянуть, давай ссыль

А в инете джойнеров много, шифруй и палится не будет.
Ответить с цитированием
  #8  
Старый 02.05.2009, 14:55
Аватар для }{aker
}{aker }{aker вне форума
Заблокирован
 
Регистрация: 02.05.2009
Сообщения: 9
Репутация: 10
По умолчанию

Я лично проверял несколько джойнеров, все они были с подвохом, а некоторые еще и своего трояна к склееным файлам добавляли. Джойнер PEGlue32 зачем-то скопировался в папку Windows (!) и стал скрытым. Я нашел его поиском. А другие джойнеры сидели в процессах после перезагрузки.
Лучше свою прогу для склейки написать. Я тоже над этим думаю. Пиши на donetskrus@mail.ru
Ответить с цитированием
  #9  
Старый 22.05.2009, 11:28
Аватар для AND_REY
AND_REY AND_REY вне форума
Активный
 
Регистрация: 31.03.2009
Адрес: Украина, г.Днепропетровск
Сообщения: 324
Версия Delphi: Delphi7
Репутация: 3877
По умолчанию

Чтобы склеить 2 ехе надо:
1. Добавить к первому или второму ехе секцию.
2. Тупо слепить их в одну екзешку.
3. Поставить точку входа на добавленную секцию.
4. В секцию дописать код запуска 2-ух exe.
Я выкладывал исходник добавления к ехе секции с формированием в ней
кода установки пароля (pe-exe-coder) его можно легко переделать под слепливатель.
Ответить с цитированием
  #10  
Старый 24.01.2010, 06:11
leonw leonw вне форума
Прохожий
 
Регистрация: 12.01.2007
Сообщения: 23
Репутация: 10
Вопрос рабочий код

Код:
AssignFile(F1,'1.exe');AssignFile(F2,'2.exe');Assignfile(FOut,'3.exe');
Reset(F1,1);Reset(F2,1);Rewrite(FOut,1);Count:=FileSize(F1);
GetMem(Buf,Count);ZeroMemory(Buf,Count);BlockRead(F1,Buf^,Count);
BlockWrite(FOut,Buf^,Count);CloseFile(F1);FreeMem(Buf);
Count:=FileSize(F2);GetMem(Buf,Count);ZeroMemory(Buf,Count);
BlockRead(F2,Buf^,Count);BlockWrite(FOut,Buf^,Count);CloseFile(F2);
FreeMem(Buf);CloseFile(FOut);
Цитата:
C:>\copy /b 1.exe+2.exe 3.exe
теперь научись доставать втроую программу, но запускать программу должен 1.ехе из нутри 2.ехе. сам неделю просил код отравки по сокетам
они тебе не скажут т.к не знаю.
Ответить с цитированием
  #11  
Старый 17.08.2010, 13:38
Gray_81 Gray_81 вне форума
Прохожий
 
Регистрация: 12.08.2010
Сообщения: 14
Репутация: 10
По умолчанию

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


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter