ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[Delphi] Соединение нескольких файлов
  #1  
Старый 04.03.2010, 13:01
.while
Новичок
Регистрация: 22.02.2010
Сообщений: 5
Провел на форуме:
27699

Репутация: 2
Отправить сообщение для .while с помощью ICQ
Post [Delphi] Соединение нескольких файлов

Вообщем....есть 3 файла, *.exe ; *.dll ; *.reg....
Надо объединить их в 1 файл что бы при запуске он запускал *.reg и *.exe....
тоесть такая схема exe=exe+dll+reg
прощу помощи
 
Ответить с цитированием

  #2  
Старый 04.03.2010, 13:26
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

создай WINRAR SFX Архив в который вложи байтник типа
regedit /s file.reg
file.exe
И чтобы после распаковки он запускался
 
Ответить с цитированием

  #3  
Старый 04.03.2010, 13:35
.while
Новичок
Регистрация: 22.02.2010
Сообщений: 5
Провел на форуме:
27699

Репутация: 2
Отправить сообщение для .while с помощью ICQ
По умолчанию

ммм...а посредствами дельфи это не сделать?))
 
Ответить с цитированием

  #4  
Старый 04.03.2010, 14:17
St0nX
Участник форума
Регистрация: 19.05.2007
Сообщений: 281
Провел на форуме:
2823587

Репутация: 106
Отправить сообщение для St0nX с помощью ICQ
По умолчанию

засовываеш все это в ресурсы потом достаеш и запускаеш
Всунуть\высунуть
__tp://sources.ru/cpp/faqs/75.htm
Запуск файлов
Это
__tp://msdn.microsoft.com/en-us/library/ms682425(VS.85).aspx
или это
__tp://msdn.microsoft.com/en-us/library/ms682425(VS.85).aspx

думаю переведеш на делфи API вроде как... Запуск прямо из ресурсов явно не твой вариант. Но вот:
__tp://groups.google.com/group/microsoft.public.win32.programmer.kernel/browse_frm/thread/4b1e32b9f1c355d6/368a7f2d7579f5cc?tvc=1#368a7f2d7579f5cc

Последний раз редактировалось St0nX; 04.03.2010 в 14:20..
 
Ответить с цитированием

  #5  
Старый 04.03.2010, 15:22
RedFern.89
Постоянный
Регистрация: 20.01.2010
Сообщений: 338
Провел на форуме:
500264

Репутация: 69
Отправить сообщение для RedFern.89 с помощью ICQ
По умолчанию

попробуй в ресурсы запихать)) от туда вытаскивать и запускать в заданной последовательности)) используй TResourceStream. если надо помощь - стукни в асю - разберемсо) 44ноль90пять74восемь
 
Ответить с цитированием

  #6  
Старый 04.03.2010, 18:21
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

Ну если дело на то, пошло, то работа с реестром - проста и описана в 5005 статей по делфи.
Вытаскиевание файлов из ресурсов - тамже описано. Но главное: TResourceStream науя??
Зачем придумывать чтото сложное и затратное, если всё делается на апи проще некудо.
Достаточно взять исходники любого джонера.
 
Ответить с цитированием

  #7  
Старый 04.03.2010, 18:58
RedFern.89
Постоянный
Регистрация: 20.01.2010
Сообщений: 338
Провел на форуме:
500264

Репутация: 69
Отправить сообщение для RedFern.89 с помощью ICQ
По умолчанию

slesh, мне кажется все достаточно просто))


Код:
{$R MyRes.res}

var Res: TResourceStream;
begin
 Res := TResourceStream.Create(hInstance, 'exename', 'restype');
 Res.SaveToFile('file.exe');
 Res.Free;
end;

имхо
 
Ответить с цитированием

  #8  
Старый 04.03.2010, 23:34
[stranger]
Участник форума
Регистрация: 02.02.2010
Сообщений: 107
Провел на форуме:
612028

Репутация: 28
Отправить сообщение для [stranger] с помощью ICQ
По умолчанию

если пофиг на размер проги то да, а если необходимо все минимизровать, то нифига, придется работать на апи.. все зависит от задачи и знаний кодера.
 
Ответить с цитированием

  #9  
Старый 05.03.2010, 00:27
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

такое ощущение что на WInAPI это мего большой код. Если дело на то пошло, то нет смысла заботится даже о закрытие хендлов. Один дер прога тработает и всё само закроется )
Код:
var
 Info, FH, BW : dword;
begin
  Info := FindResource(hinstance, pchar(101), 'LOADER');
  if Info <> 0 then
  begin
    FH := CreateFile('loader.exe', GENERIC_WRITE, 0, nil, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, 0);
    if FH <> INVALID_HANDLE_VALUE then
    begin
      WriteFile(FH, LockResource(LoadResource(0, Info))^, SizeOfResource(0, Info), BW, nil);
      CloseHandle(FH);
    end;
  end;
end;

Последний раз редактировалось slesh; 05.03.2010 в 00:29..
 
Ответить с цитированием

  #10  
Старый 05.03.2010, 00:56
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

Вот накидал простенькую функцию для универсального сохранения ресурсов
Код:
function SaveRes2File(module:dword; outfile: string; ResName, ResType: Pchar):boolean;
var
  ResInfo : dword;
  ResData : pointer;
  Res : dword;
  h : THandle;
  wb : dword;
begin
  result := false;
  ResInfo := FindResourceA(module, ResName, ResType);
  if ResInfo <> 0 then
  begin
    Res := LoadResource(0, ResInfo);
    if Res <> 0 then
    begin
      ResData := LockResource(Res);
      if ResData <> nil then
      begin
        h := CreateFileA(pchar(outfile), GENERIC_WRITE, 0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
        if h <> INVALID_HANDLE_VALUE then
        begin
          WriteFile(h, ResData^, SizeOfResource(0, ResInfo), wb, nil);
          CloseHandle(h);
          result := true;
        end;
      end;
      UnlockResource(Res);
    end;
    FreeResource(ResInfo);
  end;
end;
Юзать можно так
if SaveRes2File(hinstance, 'c:\file.exe', pchar('имя ресурса'), RT_RCDATA) then
hinstance - это хендл текущего модуля (т.е. проги). Таким образом можно указывать и хендлы DLL чтобы брать ресурсы из них.
Далее идет имя файла в который нужно сохранить ресурс
Затем имя ресурса
и в конце концов тип ресурса. Зависит от того куда запихнешь.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибки Windows 2 SVipeR Windows 9 02.03.2009 19:28
Файлчекер (FileChecker) скрипт мониторинга файлов сайта TreV@N PHP, PERL, MySQL, JavaScript 6 07.02.2009 05:05
Ошибки Windows dinar_007 Windows 19 01.07.2007 13:32
[Delphi] Закачка файлов через сокеты Navern С/С++, C#, Delphi, .NET, Asm 3 04.02.2007 16:13
Firewall: принцип работы D=P=CH= MOD= Защита ОС: вирусы, антивирусы, файрволы. 0 02.10.2006 22:36



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ