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

نام تاپیک: امنيت پسورد ديتابيس در فايل اجرايي

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

    Tick امنيت پسورد ديتابيس در فايل اجرايي

    در اين كرك مي سعي شده هم در حالت طرحي (Design Time) هم در حالت اجرا(RunTime) از رمز داخل فايل اجرايي محافظت شود .

    راهنمايي : در هنگامي كه قرار است رشته رمز به بانك تزريق شود كد هاي مربوطه به بخشي از حافظه منتقل شده و در شرايطي امن (شايد) اين تزريق انجام مي شود . مجدد كدها رمز گذاري مي شوند . و . . .

    دوستان لطف كنند رمز بانك اطلاعاتي را پيدا كنند .
    كار سختي است ولي شدني .
    امتياز بين 1 تا 10 فراموش نشود . در صورت حل توضيحات كامل ارائه مي شود .

    نكته پوشه برنامه روي صفحه DeskTop كپي نشود . داخل يكي از درايوها باشد .
    فایل های ضمیمه فایل های ضمیمه

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

    نقل قول: امنيت پسورد ديتابيس در فايل اجرايي

    برديا جان مي دونم دانلود كردي وضعيت را تا اينجا در چه سطحي مي بيني .

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

    نقل قول: امنيت پسورد ديتابيس در فايل اجرايي

    امیدوارم از حرفم ناراحت نشید امنیت کرک می های شما تماما مدیون پروتکتوری هست که از آن استفاده میکنید نه برنامه نویسی خودتون تا الان هر چی کرک می گذاشته اید با Themida پروتکت شده بودند و همگی کرک شدند آنالیز VM وقت گیر هست و از حوصله من خارج مگر در مواردی.

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

    نقل قول: امنيت پسورد ديتابيس در فايل اجرايي

    ممنون كه وقت گذاشتيد .
    مهمترين راه در بالا بردن امنيت استفاده صحيح از پروتكتورهاي خوب است . و مهمترين هدف خسته كردن كركر.

    باز هم ممنون

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

    نقل قول: امنيت پسورد ديتابيس در فايل اجرايي

    ايني كه الان گذاشتم 90 درصد قدرت Themida بود ولي در قفلهايي كه گذاشتم 50 درصد كد نويسي خودم و 50 درصد هم Themida

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

    نقل قول: امنيت پسورد ديتابيس در فايل اجرايي

    سلام
    كلاه سفيد من قوانين را مطالعه كردم و در تمامي موارد توضيحات كافي و مكفي نيز دادم و خواهم داد . همانطور كه ديديد گفته بودم اگر حل شد توضيحات را مي نويسم ولي حالا چون مي گوييد مي نويسم .

    اين روش براي محافظت از رمز بانك اطلاعاتي DBISAM كه درون فايل اجرايي به صورت رشته به بانك تزريق مي شود شامل دو بخش حفاظتي در فايل اجرايي و يك DLL است .
    من با استفاده از يك AESٍEncrypt رمز را كد كردم . براي اين كار از يك كليد استفاده نمودم .
    حالا با استفاده از اين كار يك رشته كد شده دارم و يك كليد . كه بايد در كد نويسي با استفاده از AESDecrypt آن را بوسيله كليد تبديل به رشته اصلي كنم و به بانك تزريق كنم .

    من با استفاده از يك روش ابداعي هم كليد و هم رشته كد شده را نابود كردم و آنها را در زمان طراحي توليد كردم . كليد را در DLL قرار دادم و رشته كد شده را در EXE .
    نحوه نابود كردن رشته كد شده و كليد به اين صورت است .

    در فايل اجرايي براي رشته كد شده :

    const
    dbs: array [0..43] of Byte= (
    $B5,$F1,$74,$49,$B1,$AF,$48,$7F,$31,$14,$36,$A7,$3 B,$51,$BB,$40,
    $81,$D6,$46,$2C,$9D,$87,$BB,$E8,$ED,$CB,$BC,$B6,$1 A,$A4,$05,$CE,
    $2E,$97,$E0,$E5,$4B,$B8,$44,$11,$F0,$A5,$E6,$67
    );
    function dcf(aBegPos, aLength: Integer): string;
    var tmp: string;
    i, endPos: Integer;
    MyKey: word;
    begin
    {$I VM_Start_WithLevel.inc}
    MyKey:= 63444;
    SetLength(Result, aLength);
    tmp:= '';
    endPos:= aBegPos+ aLength -1;
    for i:= aBegPos to endPos do
    tmp:= tmp+ Chr(dbs[i]);
    for i:= 1 to Length(tmp) do
    begin
    Result[i]:= Char(Byte(tmp[i]) xor (MyKey shr 8));
    MyKey:= (Byte(tmp[i])+ MyKey)* 34523+ 34623;
    end;
    {$I VM_End.inc}


    همانطور كه در بالا مي بينيد از سيستم ماشين مجازي TheMida همراه با Level استفاده كرده ام اين كار باعث مي شود كه يك پيچيدگي بسيار زيادي به كدها اعمال شود و روند تريس را بسيار كند و درهم كند .
    من از Level پانزده استفاده كردم اين لول مي تواند تا 255 باشد كه يك پيچيدگي بسيار بالا و بسيار كند است .


    در DLL براي كليد :

    library Special;


    {$R *.res}


    function DBPASS:String; stdcall;
    function dcf(aBegPos, aLength: Integer): string;
    const
    dbs: array [0..19] of Byte= (
    $51,$72,$F2,$09,$24,$82,$51,$65,$C9,$5E,$CD,$23,$0 1,$B7,$3A,$CE,
    $3F,$7C,$23,$43
    );
    var tmp: string;
    i, endPos: Integer;
    MyKey: word;
    begin
    MyKey:= 12345;
    SetLength(Result, aLength);
    tmp:= '';
    endPos:= aBegPos+ aLength -1;
    for i:= aBegPos to endPos do
    tmp:= tmp+ Chr(dbs[i]);
    for i:= 1 to Length(tmp) do
    begin
    Result[i]:= Char(Byte(tmp[i]) xor (MyKey shr 8));
    MyKey:= (Byte(tmp[i])+ MyKey)* 52845+ 22719;
    end;
    end;

    begin
    {$I CodeReplace_Start.inc}
    Result:=dcf(0 ,20);
    {$I CodeReplace_End.inc}
    end;




    exports
    DBPASS;

    begin
    end.


    در dll از روش جايگزيني كد نيز براي ارسال كليد استفاده شده در اين روش كد ها به يك مكان خالي حافظه در هنگام اجرا منتقل شده در حالتي بسيار امن داده پس از توليد ارسال مي شود و دوباره كدها نابود مي شوند . اين روش به اين سبك فقط مخصوص Themida است .

    دوستان از آن استفاده كنيد و لذت ببريد

    حالا در فايل اجرايي درون كليد اين كدها به اينصورت نوشتم :

    {$I CodeReplace_Start.inc}

    DBISAMSession1.AddPassword(AESDecrypt(dcf(0 ,44),DBPASS));
    Table1.Open;
    MessageBox(0,pchar(Table1.fieldbyname('Message').a sstring),'',0);
    Application.Terminate;
    {$I CodeReplace_End.inc}


    در انجا نيز اگر دقت كنيد از كد ريپليس استفاده شده است .

    و در كل اين روش تا 80 درصد مي تواند كدهاي و رشته هاي شما از دست قوي ترين كركرها در امان بگذارد . و نهايتا كار هركسي نيست كه بتواند كدها و رمزهاي شما را پيدا كند .

    يا به زبان ساده تر نفراتي كه مي توانند برنامه شما را كرك كنند كمتر و كمتر خواهد شد.

    امدوارم استفاده لازم را برده باشيد .

    آقاي كلاه سفيد وجداناٌ كي مثل من در بخش امنيت نرم افزار هرچه دارد رو ميكند . چه طوري دلت آمد لينك كرك مي من را پاك كني

    در آخر هم با TheMida پكش كردم كه هركسي تواند حتي بازش كند .


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

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