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

Delphi&интеграция программ

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

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Delphi&интеграция программ
Имя
Сообщение << Старые топики   Новые топики >>
Delphi&интеграция программ - 2006-03-09 01:55:14   
Tages

Сообщений: 30
Оценки: 0
Присоединился: 2006-03-09 01:02:16
Всем привет [sm=nonodyad.gif]. Перехожу сразу к делу.
Проблема следующая: надо интегрировать (вшить) X .exe файл в файл Y.exe, да так, чтобы при запуске Y.exe, запускался и X .exe. Кто знает, то дайте хоть алгоритм, а кто не [sm=5.gif]''жадный''[sm=5.gif]то наброски на Delphi (хотя и от С++ не откажусь).
Заранее благодарю [sm=17.gif]
Post #: 1
Delphi&интеграция программ - 2006-03-09 02:02:27   
-ddd-

Сообщений: 4918
Оценки: 42
Присоединился: 2005-05-23 17:20:41
а не легче их склеить спецЫальнЫми программами?
Post #: 2
Delphi&интеграция программ - 2006-03-09 02:13:54   
Tages

Сообщений: 30
Оценки: 0
Присоединился: 2006-03-09 01:02:16
quote:

—————-<BR>Цитата: Дата:09.03.2006 2:02:27, Автор:-ddd- ::
а не легче их склеить спецЫальнЫми программами?
—————-


Нет. Прикол именно в том, что запускаешь прогу, а она уже создаёт файл X.exe, берёт файл Y.exe (адресок можно и из автозагрузки), дописывает X.exe в Y.exe. При следующем запуске видны, запускается и X.exe и Y.exe. Вот так [sm=12.gif].
Идея может и старая, но хорошая[sm=16.gif]
Post #: 3
Delphi&интеграция программ - 2006-03-10 15:07:30   
alexbozhko

Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
Надо влепить второй exe -файл в ресурс
Ну а потом, при запуске программы его вытащить и запустить

Сейчас вспомню как это делается.
Post #: 4
Delphi&интеграция программ - 2006-03-10 15:13:05   
alexbozhko

Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
Лови
Здесь используются res -файл
Вот вытяжка из другого форума
Разбирайся

я в качестве рессурса разместил exe-файл в своей программе (c помощью {$R test.res})

test.res (TEST EXEFILE D:\TEST.EXE)

как мне теперь запустить этот файл по нажатию кнопки?
если можно то проилюстрируйте на коде.


——————————————————————————–
OlegM © (25.02.03 13:49)
VAR
s:STRING;
BEGIN
procedure TForm1.Button1Click(Sender: TоЬjесt);
ExtractRes('EXEFILE', 'EXE', 'TEST.EXE');
S:=ExtractFilePath(Application.ExeName);
S:=S+'HEXPERT.exe';
WinExec(pCHAR(S), SW_SHOW)
end;


——————————————————————————–
OlegM © (25.02.03 13:50)
Блин, в 7 строке вместо HEXPERT.EXE напиши TEST.exe


——————————————————————————–
MikeFW (25.02.03 14:35)
что-то я несовсем разобрался в вашем коде,
вот тут я привожу полный код программы, которая не работает:
подскажите, пожалуйста, где я ошибся

unit Unit1;

interface

uses
windоws, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Pass: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TоЬjесt);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
S: String;

implementation
{$R *.dfm}
{$R test.res}

procedure ExtractRes(ResType, ResName, ResNewName: String);
var
Res: TResourceStream;
begin
Res := TResourceStream.Create(Hinstance, ResName, Pchar(ResType));
//Res.SaveToFile(ResNewName);
//Res.Free;
end;

procedure TForm1.Button1Click(Sender: TоЬjесt);
begin
if Pass.Text = '123' then begin
ExtractRes('EXEFILE', 'WINSER', 'WINSER.EXE');
S := ExtractFilePath(Application.ExeName);
S := S + 'WINSER.EXE';
WinExec(Pchar(S), SW_SHOW);
Form1.Close;
end
else
ShowMessage('Пароль указан неверно');
end;

end.



——————————————————————————–
OlegM © (25.02.03 14:40)
А где ошибку выдает?


——————————————————————————–
MikeFW (25.02.03 14:51)
ошибку не выдает,
просто файл не запускается


——————————————————————————–
OlegM © (25.02.03 14:54)
А сам файлик то выдергивает из ресурса, посмотри если да то почему не работает Winexec хрен знает.
P.S. у меня робит


——————————————————————————–
MikeFW (25.02.03 15:01)
вот смотри,
я убираю комментарии

procedure ExtractRes(ResType, ResName, ResNewName: String);
var
Res: TResourceStream;
begin
Res := TResourceStream.Create(Hinstance, ResName, Pchar(ResType));
Res.SaveToFile(ResNewName);
Res.Free;
end;

и файл ныдергивается из ресурса и копируется в каталог

но мне надо его не копировать, а просто запускать
может ты напишешь весь код своей проги,
а то честно я не совсем тот кусок понял (думаю в этом и ошибка кроется)


что же я не понял:

// какая функция это?
VAR
s:STRING;
BEGIN
// почему здесь идет Button1Click?
procedure TForm1.Button1Click(Sender: TоЬjесt);
// как выглядит у тебя данная функция?
ExtractRes('EXEFILE', 'EXE', 'TEST.EXE');
S:=ExtractFilePath(Application.ExeName);
S:=S+'HEXPERT.exe';
WinExec(pCHAR(S), SW_SHOW)
end;









——————————————————————————–
MikeFW (25.02.03 15:51)
procedure ExtractRes(ResType, ResName, ResNewName: String);
var
Res: TResourceStream;
begin
Res := TResourceStream.Create(Hinstance, ResName, Pchar(ResType));
Res.SaveToFile(ResNewName);
Res.Free;
end;

а может есть такая процедура, которая запускает файл, как просиходит копирование в Res.SaveToFile(ResNewName);
?




——————————————————————————–
MikeFW (25.02.03 17:03)
> OlegM ©

твой код работает только при программе в каталоге, но мне какраз нужно чтобы она запускалась из ресурса


——————————————————————————–
OlegM © (26.02.03 06:20)
Как запустить из ресурса я незнаю, как то пытался зделать тточно такое-же но неполучилось, пришел к тому что надо после запуска удалять файл, я там правда Flash использовал и короче после выдергивания ролика из ресурса, запускал и затем сразу удалял его
Пытался просмотреть будет ли видно файл ролика в Explorere ничего не увидел. Но не знаю прокатит ли это с EXE

procedure TForm1.FormCreate(Sender: TоЬjесt);
var
S:String;
begin
ExtractRes('ShockwaveFlashоЬjесts_TLB', 'FLASHM', 'FLASH.swf');
S:=ExtractFilePath(Application.ExeName);
S:=S+'Flash.swf';
ShockWaveFlash1.Movie:=S;
ShockWaveFlash1.Play;
DeleteFile(S);
end;


Post #: 5
Delphi&интеграция программ - 2006-03-11 00:00:04   
Tages

Сообщений: 30
Оценки: 0
Присоединился: 2006-03-09 01:02:16
Надо влепить второй exe -файл в ресурс
Ну а потом, при запуске программы его вытащить и запустить

Сейчас вспомню как это делается.
——————————————————————————-
Нет, нет, нет. Я хочу написать прогу, которая будит брать путь к exe файлу (NeroFilterCheck или там ACDSee) после добавлять в него свой код[sm=sm128.gif] (да так добавлять, чтобы обе работали [sm=em121.gif]). Что я этим добьюсь?[sm=12.gif]
Доступ к автозагрузке моей проги на чужом компе. Даже если это комп ‘продвинутого’
чела, то он долго будит искать. А перво-наперво он в автозапуск и полезет (и не найдет там ничего, кроме своих же программ). Просто уж очень наглый чел. Решил что если с реестром работать умеет и папки добавлять, то я ему деньги дам…[sm=9.gif][sm=10.gif]
Да чуть не забыл, прога уже создаёт 2 копии программы, которая должна выполнятся. Третья следит за тем, чтобы они всегда были на компе, и при необходимости (при удалении NeroFilterCheck или ACDSee), создает новый зараженный файл, беря путь из того же автозапуска(ну и наоборот)[sm=16.gif]. Все работает как раз через res. То есть запускаешь один exe, а получаешь 3+ один зараженный.
Также подойдет способ запуска проги не через автозапуск ( по-моему так работает SoftIce) или чтобы зараженная прога при запуске запускала и мою прогу.
Post #: 6
Delphi&интеграция программ - 2006-06-20 14:04:20   
Tages

Сообщений: 30
Оценки: 0
Присоединился: 2006-03-09 01:02:16
Ну вот Я опять здесь [sm=11.gif]. Короче самый верный способ, так это запускать "агента" через "службу". А как этого "агента" добавлять, это уже другое дело. Можно через тот-же реестр[sm=10.gif]
Думайте, как можно это более "красивее" сбахать. [sm=12.gif]
Post #: 7
Delphi&интеграция программ - 2006-06-21 09:19:52   
bruder

Сообщений: 29
Оценки: 0
Присоединился: 2006-06-06 16:34:36
Нах тут ресурсы? А вот без Stream тут не обойтись => uses Classes => FileSize > 300 kb. [sm=6.gif]
Post #: 8
Delphi&интеграция программ - 2006-06-21 09:21:38   
bruder

Сообщений: 29
Оценки: 0
Присоединился: 2006-06-06 16:34:36
Но если на размер тебе нас_рать…
Post #: 9
Delphi&интеграция программ - 2006-06-29 13:56:22   
Tages

Сообщений: 30
Оценки: 0
Присоединился: 2006-03-09 01:02:16
У Мя получается 155.50 kb[sm=3.gif]. Правда с Aspack'ом [sm=11.gif] [sm=12.gif]
Post #: 10
Delphi&интеграция программ - 2006-06-29 16:27:29   
bruder

Сообщений: 29
Оценки: 0
Присоединился: 2006-06-06 16:34:36
Эт не дело… хотя для "знакомления" покатит :)
Post #: 11
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Delphi&интеграция программ







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

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