نمایش نتایج 1 تا 24 از 24

نام تاپیک: افزايش امنيت برنامه با استفاده از TLS CallBACK

  1. #1
    VIP آواتار دنیای دلفی
    تاریخ عضویت
    تیر 1404
    محل زندگی
    یک جایی توی جنوب ایران
    پست
    1,298

    Smile افزايش امنيت برنامه با استفاده از TLS CallBACK

    استفاده از اين تكنيك بسيار مفيد است و كمك زيادي در حفاظت از برنامه مي كند .
    با استفاده از اين تكنيك مي توانيد بخشي از كدهاي بررسي قفل را قبل از رسيدن به EntryPoint چك و ترتيب ديباگر و كركر را دارد من موفق شدم به نوعي با استفاده از DLL اون را پياده سازي كنم .
    از دوستان تقاظا مي شود كه روش صحيح استفاده از اين تكنيك را آموزش دهند .
    من يافته هاي خودم را قرار مي دهم :

    مرحله اول ايجاد DLL :

    library DLL_EntryPoint;

    uses
    SysUtils,
    Windows,
    Forms,
    Classes,
    Dialogs;
    {$R *.res}

    procedure book; stdcall;
    begin
    //Dummy

    end;

    procedure DLLEntryPoint(dwReason: DWORD); stdcall; //register; //stdcall;
    begin
    case dwReason of
    DLL_THREAD_DETACH : ShowMessage('Thread Detach'); //0
    DLL_PROCESS_ATTACH: //1
    begin
    // بررسي قفل

    end;
    DLL_THREAD_ATTACH : ShowMessage('Thread Attach'); //2
    DLL_PROCESS_DETACH: //3
    begin

    // بررسي قفل
    end;
    end;
    end;


    exports
    DLLEntryPoint,book;

    begin
    //DLLEntryPoint is specifically a Win32 and C++‎ implementation
    //DLLProc is a pointer variable from the SYSTEM Unit (automatically included)
    //The SYSTEM Unit is responsible for executing code assinged to DLLEntryPoint
    DLLProc := @DLLEntryPoint; //Assign the address of DLLEntryPoint to DLLProc
    DLLEntryPoint(DLL_PROCESS_ATTACH); //Indicate that the DLL is attaching to the process
    end.
    استفاده در برنامه اصلي :

    unit Unit1;

    interface

    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls;

    type
    TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    end;
    procedure book ;
    stdcall; external 'Dll_EntryPoint.DLL';

    var
    Form1: TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    book;
    end;

    end.


    منتظر كد هاي شما هستم

  2. #2
    VIP آواتار دنیای دلفی
    تاریخ عضویت
    تیر 1404
    محل زندگی
    یک جایی توی جنوب ایران
    پست
    1,298
    يك سري اطلاعات ديگر پيدا كردم دوستان لطفا كمك كنند :

    - Uncategorized anti-debug
    (1) TLS-callback
    This anti-debug was not so well-known a few years ago. It consists to instruct the
    PE loader that the first entry point of the program is referenced in a Thread Local
    Storage entry (10th directory entry number in the PE optional header). By doing so, the program entry-point won’t be executed first.
    The TLS entry can then perform anti-debug checks in a stealthy way.
    Note that in practice, this technique is not widely used.
    Though older debuggers (including OllyDbg) are not TLS-aware, counter-measures are quite easy to
    take, by the means of plugins of custom patcher tools.
    (2) CC scanning
    A common protection feature used by packers is the CC-scanning loop, aimed at detecting software breakpoints set by a debugger. If you want to avoid that kind of troubles, you
    may want to use either hardware breakpoints or a custom type of software breakpoint. CLI (0xFA) is a good candidate to replace the classic INT3 opcode. This instruction does have the
    requirements for the job: it raises a privileged instruction exception if executed by a ring3 program, and occupies only 1 byte of space.
    (3) EntryPoint RVA set to 0
    Some packed files have their entry point RVA set to 0, which means they will start executing ‘MZ…’ which corresponds to ‘dec ebx / pop edx …’.
    This is not an anti-debug trick in itself, but can be annoying if you want to break on the entry-point by using
    a software breakpoint.
    If you create a suspended process, then set an INT3 at RVA 0, you will erase part of the magic
    MZ value (’M'). The magic was checked when the process was created, but it will get
    checked again by ntdll when the process is resumed (in the hope of reaching the entry-point).
    In that case, an INVALID_IMAGE_FORMAT exception will be raised.
    If you create your own tracing or debugging tool, you will want to use hardware breakpoint to
    avoid this problem.

  3. #3

    نقل قول: افزايش امنيت برنامه با استفاده از TLS CallBACK

    در باره چی کمک کنند؟

    در مورد نحوه استفاده صحیح از TLS CallBack هم روش اینه:

    1-تو برنامه خودت یکی با بیشتر رویه مشابه DLLEntryPoint که تو بالا نوشتی مینویسی.
    2-آدرس رویه های مذکور رو به جدول TlsTable هدر فایل اجرایی اضافه میکنی.(یکی از راهاش استفاده از LordPEیه، راه بهتری رو من بلد نیستم)

    با این کار بدون DLL هم همون اتفاق میافته (قبل رسیدن به Entry Point توابع مورد نظر شما اجرا میشند)

  4. #4
    VIP آواتار دنیای دلفی
    تاریخ عضویت
    تیر 1404
    محل زندگی
    یک جایی توی جنوب ایران
    پست
    1,298

    نقل قول: افزايش امنيت برنامه با استفاده از TLS CallBACK

    2-آدرس رویه های مذکور رو به جدول TlsTable هدر فایل اجرایی اضافه میکنی.(یکی از راهاش استفاده از LordPEیه، راه بهتری رو من بلد نیستم)
    در اين مورد بيشتر توضيح دهيد يا يك مثال بگذاريد .

    ممنون مي شوم

  5. #5
    VIP آواتار دنیای دلفی
    تاریخ عضویت
    تیر 1404
    محل زندگی
    یک جایی توی جنوب ایران
    پست
    1,298

    نقل قول: افزايش امنيت برنامه با استفاده از TLS CallBACK

    من LoardPe را دانلود كرده ام ولي چگونه بايد آدرس را به جدول TlsTable اضافه كنم

  6. #6
    کاربر دائمی آواتار ali ahwaz top
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    124

    نقل قول: افزايش امنيت برنامه با استفاده از TLS CallBACK

    باباجون پیچش ندید اینم یه سورس کد روشن و ساده برای TLS-CallBack
    فایل های ضمیمه فایل های ضمیمه

  7. #7

    نقل قول: افزايش امنيت برنامه با استفاده از TLS CallBACK

    نقل قول نوشته شده توسط ali ahwaz top مشاهده تاپیک
    باباجون پیچش ندید اینم یه سورس کد روشن و ساده برای TLS-CallBack
    اگه سورسشو بخوني ميبيني همين چيزايي که نوشتم رو گفته. بعد از اينکه کامپايلش کردي بايد با LordPE آدرس جدول TLS رو به اونجايي که نوشته تغيير بدي.

    من LoardPe را دانلود كرده ام ولي چگونه بايد آدرس را به جدول TlsTable اضافه كنم
    چون خود دلفي يک Callback براي ترد اصلي داره، بهترين راه اينه که آدرس فعلي Callback رو يه جايي يادداشت کني. بعد تو پروسه DLLEntry جديدي که نوشتي بعد کارهاي اوليه، رويه قديمي(آدرسي که يادداشت کردي) رو هم صدا بزني. در نهايت تو جدول Tls بجاي آدرس قديمي، آدرس رويه خودت رو بنويس.

  8. #8
    کاربر تازه وارد آواتار Sir.V65j
    تاریخ عضویت
    شهریور 1385
    محل زندگی
    IRan,X
    پست
    92

    نقل قول: افزايش امنيت برنامه با استفاده از TLS CallBACK

    حالا فکر کنین این آدرسی که تغییر دادین رو بیایم به حالت اصلی برگردونیم چی می شه؟! دیگه اون توابع اجرا نمی شن! ÷س می شه نتیجه گرفت نباید تنها به این روش اعتماد کرد .

  9. #9
    VIP آواتار دنیای دلفی
    تاریخ عضویت
    تیر 1404
    محل زندگی
    یک جایی توی جنوب ایران
    پست
    1,298

    نقل قول: افزايش امنيت برنامه با استفاده از TLS CallBACK

    مجموعه كل روشهاي آنتي ديباگ را همه كركرها نمي دانند شما با هر روش گروه خاصي از كركرها را حذف مي كنيد . و و و و . . .

  10. #10

    نقل قول: افزايش امنيت برنامه با استفاده از TLS CallBACK

    حالا فکر کنین این آدرسی که تغییر دادین رو بیایم به حالت اصلی برگردونیم چی می شه؟! دیگه اون توابع اجرا نمی شن!
    برگردوندن آدرس اولیه، یک پروسه است که باید جلوشو گرفت، اولین راهش هم اینه که آدرس رویه دلفی رو بدون کد کردن و از این بحثها، تو رویه خودت استفاده نکنی. این درسته که نباید به این روش اکتفا کرد، ولی از بین بردن محافظتی که این طوری انجام شده، لزوما کار آسونی نیست.

    در ضمن، خوبه بعضی از عملیات مقدار دهی آغازی یا هر چیزی که ادامه برنامتون بهش وابسته باشه رو بعد از در نظر گرفتن و اعمال روشهایی که کار Disassembly رو سخت میکنه، تو همین Callback بذارید.

  11. #11
    VIP آواتار دنیای دلفی
    تاریخ عضویت
    تیر 1404
    محل زندگی
    یک جایی توی جنوب ایران
    پست
    1,298

    نقل قول: افزايش امنيت برنامه با استفاده از TLS CallBACK

    اگر ممكن است در خصوص استفاده از LordPe يك توضيح گام به گام بگذاريد . سر فرصت

  12. #12
    کاربر دائمی آواتار ICEMAN
    تاریخ عضویت
    تیر 1383
    محل زندگی
    Hyper-V
    پست
    476

    نقل قول: افزايش امنيت برنامه با استفاده از TLS CallBACK

    سلام ..
    http://www.nynaeve.net/?p=180
    اينجا توضيحاتي داده كه دونستنش خالي از لطف نيست

  13. #13

    نقل قول: افزايش امنيت برنامه با استفاده از TLS CallBACK

    با سلام خدمت دوستان عزيز .

    من وقتي داشتم دنبال مطالبي در مورد TLS CALLBACK بدون وابستگي به dll ميگشتم يك فايل داخل ارشيو فايلهام پيدا كردم كه متاسفانه سورسي همراش نبود .

    هر چقدر با LordPE زيرو روش كردم هيچ تغييري توش نديدم .

    ولي به درستي TLS CALLBACK در اون پياده سازي شده !!!!

    روش كارش فكر ميكنيد چي باشه ؟

    راستي دنياي دلفي عزيز شما نتونستي TLS CALLBACK بدون وابستگي به dll رو بفهمي چه جوري بايد پياده سازي كرد ؟

    اگه چيز جديدي فهميدي لطفا راهنمايي كن در اين زمينه .
    فایل های ضمیمه فایل های ضمیمه

  14. #14
    مدیر بخش آواتار Securebit
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران
    پست
    761

    نقل قول: افزايش امنيت برنامه با استفاده از TLS CallBACK

    از قسمت PE Editor فايلتون رو انتخاب بر روي دکمه Directories کليک بعد بر روي دکمه روبروي TlsTable کليک کرده مقدار SizeOfZeroFill رو به 00000000 تغيير دهيد بعد هم Save و تمام ديگر Tls در کار نيست به همين راحتي.

  15. #15

    نقل قول: افزايش امنيت برنامه با استفاده از TLS CallBACK

    ممنون برديا جان . اينجوري كه خيلي ساده ميشه TLS CallBack رو منسوخ كرد !

    راهي هست كه نشه به اين راحتي ها از كار بيكارش كرد ؟

  16. #16
    کاربر دائمی
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    2,397

    نقل قول: افزايش امنيت برنامه با استفاده از TLS CallBACK

    ممنون آقا بردیا.
    یه سوال داشتم , پس چطوری هست که تکنیک مورد استفاده در پروتکتور ExeCryptor رو که اگر اشتباه نکنم همین TLS Callback هست رو با این تکنیک نمیتونن دور بزنن ؟
    هر جا دیدم واسه آنپک کردن اومدن تنظیمات Olly رو عوض کردن , آیا اینکه نمیتونن همین کاری که شما گفتید رو انجام بدن بر میگرده به CRC Check فوق العاده همین پروتکتور ؟

  17. #17
    مدیر بخش آواتار Securebit
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران
    پست
    761

    نقل قول: افزايش امنيت برنامه با استفاده از TLS CallBACK

    البته این روش در مورد ExeCryptor هم مصداق دارد ولی با این تفاوت که بعد از آنپک فایل صورت میگیرد.

  18. #18
    VIP آواتار دنیای دلفی
    تاریخ عضویت
    تیر 1404
    محل زندگی
    یک جایی توی جنوب ایران
    پست
    1,298

    نقل قول: افزايش امنيت برنامه با استفاده از TLS CallBACK

    ديگه زياد TLS فايده نداره روشهاي بهتري هم هست كه بهشون دسترسي پيدا كردم دارم به HotLock با دقت اضافشون مي كنم به خاطر همينه عرضه نسخه بتا به تعويق افتاده .
    منتظر خبرهاي جديد باشد . خبري در راه است

  19. #19

    نقل قول: افزايش امنيت برنامه با استفاده از TLS CallBACK

    مثلا چه روشهايي ؟

  20. #20
    کاربر دائمی
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    2,397

    نقل قول: افزايش امنيت برنامه با استفاده از TLS CallBACK

    بابا ای ول ....
    منتظر هستیم.

  21. #21

    نقل قول: افزايش امنيت برنامه با استفاده از TLS CallBACK

    نقل قول نوشته شده توسط ali ahwaz top مشاهده تاپیک
    باباجون پیچش ندید اینم یه سورس کد روشن و ساده برای TLS-CallBack

    Error: Debuger Not Found

  22. #22
    کاربر دائمی
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    2,397

    نقل قول: افزايش امنيت برنامه با استفاده از TLS CallBACK

    Error: Debuger Not Found
    میشه منظورتون رو کمی توضیح بدین ؟!؟!؟!

  23. #23

    نقل قول: افزايش امنيت برنامه با استفاده از TLS CallBACK

    در این زمینه سورسی برای وی بی ( ترجیحا 6 ) دارید؟

  24. #24
    VIP آواتار دنیای دلفی
    تاریخ عضویت
    تیر 1404
    محل زندگی
    یک جایی توی جنوب ایران
    پست
    1,298

    نقل قول: افزايش امنيت برنامه با استفاده از TLS CallBACK

    درخصوص نوع زبان مهم نيست همون فايل dll را كه توي دلفي نوشته شده به VB بازنويسي كنيد مي شه مال VB

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •