Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Соединение exe файлов, алгоритм 
:(
    Опции темы
Apls
  Дата 3.9.2007, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 29.6.2007

Репутация: нет
Всего: нет



Мне требуется приклеить мое приложение к файлу, ну например, 123.exe.
Вот по такому алгоритму я хочу это сделать, если что то неправильно - поправте:

Я так понимаю надо написать отдельно загрузчик, он будет выполнять функцию рассклеивания файлов.
Его я помещу в мой проект.
Далее создаю файл join.exe, в который записываю этот загрузчик, в конец дописываю свою прогу и файл 123.exe.
Далее в конце или в определенном месте файла join.exe записываю размеры всех трех частей.
Удаляю 123.exe и переименовываю join.exe в 123.exe.
При запуске загрузчик считывает размеры частей, разделяет их и запускает по очереди.

Если я правильно мыслю, то каким образом читать и писать в exe файлы?

З.Ы. Видел на форуме похожую тему, но ответа так там и не нашел.
PM MAIL   Вверх
ne0n
Дата 3.9.2007, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 5.8.2005
Где: Н.Новгород

Репутация: 4
Всего: 11



ReadFile/WriteFile, а вот собственно пример joiner'a:


Присоединённый файл ( Кол-во скачиваний: 18 )
Присоединённый файл  Joiner_src.rar 8,26 Kb
PM MAIL ICQ   Вверх
BaD_SeCt0R
Дата 3.9.2007, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Lazy Coder
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 9.10.2006
Где: Анапа

Репутация: 3
Всего: 18



Из аттача:

Код

type
 FRec = record                
  fname1, fname2: string[30];
  fsize1, fsize2: cardinal;   
 end;

var fhSou, fhDest: tHandle;
    fInfo: FRec; 
    b, bw: cardinal;
    buf: char;
    i: integer;

//...

for i:=1 to fInfo.fsize1 do
  begin
   ReadFile(fhSou,buf,sizeof(buf),bw,nil);
   WriteFile(fhDest,buf,sizeof(buf),bw,nil);
  end;


Оптимизация записи [censored 6]... 21 век smile smile К тому ж компилю в Delphi7 - размер 17920. А так, в принципе, суть трабла отображает smile


--------------------
Кто владеет информацией - владеет миром. (С) Френсис Бэкон.
PM MAIL ICQ   Вверх
ne0n
Дата 3.9.2007, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 5.8.2005
Где: Н.Новгород

Репутация: 4
Всего: 11



Цитата(BaD_SeCt0R @  3.9.2007,  21:58 Найти цитируемый пост)
Оптимизация записи [censored 6]... 21 век

я чето не понял к чему эта реплика smile 


Цитата(BaD_SeCt0R @  3.9.2007,  21:58 Найти цитируемый пост)
 размер 17920

хочешь сказать много?! стаб писан почти на чистом WinApi, уберешь ShellApi размер не не намного уменьшиться...это все таки delphi!!!

PM MAIL ICQ   Вверх
BaD_SeCt0R
Дата 3.9.2007, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Lazy Coder
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 9.10.2006
Где: Анапа

Репутация: 3
Всего: 18



Цитата(ne0n @  3.9.2007,  22:28 Найти цитируемый пост)
я чето не понял к чему эта реплика

Код

const fSize = 17920;//15872;    
      DefBufSize = $400;
var fhSou, fhDest: tHandle;
    fInfo: FRec; 
    b, bw: cardinal;
    buf: string;
    i: integer;
    cnt: cardinal;
    fz: int64;

...
Код

 fz:=fInfo.fsize1;
 for i:=1 to fInfo.fsize1 do
  begin
   dec(fz, DefBufSize);
   if fz <0 then
     cnt:=DefBufSize+fz
   else
     cnt:=DefBufSize;
   ReadFile(fhSou,buf[1],DefBufSize,bw,nil);
   WriteFile(fhDest,buf,DefBufSize,bw,nil);
  end;


ne0n,  имхо килобайтным буфером быстрее, чем побайтно smile. Мои извинения, конечно, что не по сабжу.

Цитата(ne0n @  3.9.2007,  22:28 Найти цитируемый пост)
хочешь сказать много?!

Это я к тому, что у тебя объявлено
Код

const fSize = 15872; 

(здесь я это закомментировал)

Кстати, на форуме разве разрешены подобные обсуждения? Может (чего уж там) фак по Win32 вирусам сделаем?

Это сообщение отредактировал(а) BaD_SeCt0R - 3.9.2007, 23:16


--------------------
Кто владеет информацией - владеет миром. (С) Френсис Бэкон.
PM MAIL ICQ   Вверх
ne0n
Дата 4.9.2007, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 5.8.2005
Где: Н.Новгород

Репутация: 4
Всего: 11



Цитата(BaD_SeCt0R @  3.9.2007,  23:11 Найти цитируемый пост)
Это я к тому, что у тебя объявлено

это не мой код smile я бы сделал по другому smile 

Цитата(BaD_SeCt0R @  3.9.2007,  23:11 Найти цитируемый пост)
Кстати, на форуме разве разрешены подобные обсуждения? Может (чего уж там) фак по Win32 вирусам сделаем?


Хм.. joiner никаким боком не относиться к Win32 вирям, к твоему сведению они работают по совершенно другим пинципам, да и вообще к вирусам как таковым!!!
 
PM MAIL ICQ   Вверх
BaD_SeCt0R
Дата 4.9.2007, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Lazy Coder
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 9.10.2006
Где: Анапа

Репутация: 3
Всего: 18



Цитата(ne0n @  4.9.2007,  00:06 Найти цитируемый пост)
Хм.. joiner никаким боком не относиться к Win32 вирям, к твоему сведению они работают по совершенно другим пинципам, да и вообще к вирусам как таковым!!!


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


--------------------
Кто владеет информацией - владеет миром. (С) Френсис Бэкон.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0663 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.