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

نام تاپیک: بررسی امنیت نرم افزار (Crack me)

  1. #1

    Tick بررسی امنیت نرم افزار (Crack me)

    از دوستان اگه وقت بزارین و امنیت این فایل رو بررسی کنید ممنون میشم.

    هدف بررسی یک شیوه است که به کار گرفته شده.

    توضیح اضافه:
    برای اجرای برنامه به پکیج های C++‎.NET نیاز خواهید داشت:

    YourDrive:\Microsoft Visual Studio 2005\SDK\v2.0\BootStrapper\Packages\vcredist_x86


    http://www.microsoft.com/downloads/d...displaylang=en
    فایل های ضمیمه فایل های ضمیمه

  2. #2
    VIP آواتار raravaice
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    Tehran
    سن
    41
    پست
    1,944

    inline System.Void UnP.pMain()
    {
    System.Int32 i;
    System.Object arrobj;
    System.Reflection.Assembly assembly;
    System.Byte arrbyt;
    System.Int32 i1;
    System.String str = 0;
    arrbyt = 0;
    assembly = 0;
    arrobj = 0;
    str = System::Windows::Forms::Application::ExecutablePat h;
    System.Byte ptrbyt = (*__try_cast<__box System.Byte * >(_Noise::DoFileDecodeDecopress((*__try_cast<__b ox System.SByte * >(CommonUtility::StringToPCharAnsi(str))), (*__try_cast<__box System.Int32 * >(i1)))));
    arrbyt = CommonUtility::PByteToByteArray((*__try_cast<__box System.Byte * >(ptrbyt)), 0, i1);
    free((*__try_cast<__box System.Void * >(ptrbyt)));
    if ((arrbyt->Length > 0))
    {
    assembly = System.Reflection.Assembly::Load(arrbyt);
    arrobj = new System.Object *[assembly->EntryPoint->GetParameters()->Length];
    i = 0;
    while (true)
    {
    if ((i >= arrobj->Length))
    {
    break;
    }
    arrobj[i] = new System.String *[0];
    i++;
    }
    assembly->EntryPoint->Invoke(0, arrobj);
    }
    }



  3. #3
    Nope
    خیر، پاسورد را بدید.

    همیشه Reflector به کار نمیاد

  4. #4
    کسی نبود؟
    من هنوز منتظرم

  5. #5
    حل شد.
    پسورد اینه:
    crackme123456789CRACKME

  6. #6
    تشکر فراوان.
    انتظارش رو داشتم. ولی شیوش رو نمی دونم. کمی توضیح می دید.

  7. #7

    Smile خواهش میکنم...

    توضیح مفصلش نیازمند یک آموزش مفصل است. اما به صورت اجمالی اینجا میارمش.

    نمیدونم این برنامه باچی پک شده بود یعنی نیازی نبود که بفهمم. به هر حال از حافظه بوسیله olly دامپ کردم. سپس با reflector دیس اسمبلر کردم. بعد روتین پسورد را که بنام doit بود یافتم که متن داخل TextBox1 درون آن چک شده بود. خیلی خیلی راحت بود.






    ---------------------------------------------------------------------------------
    با تشکر Mr.reCoder

  8. #8
    تشکر
    دقیقا همان چیزی که انتظارش رو داشتم اتفاق بیافته. ولی در مورد dotNET مطمئن نبودم.

  9. #9
    به نظر من در کل امنیت .NET خیلی پایینه.

  10. #10

    نمیدانم!

    امنیت نرم افزارهای برنامه نویسی به برنامه نویس مربوط میشه!
    اگه ما بگیم Dot Net خیلی امنیت پایینی داره شاید درست باشه. اما برای کرکرهای حرفه ای حتی کرک برنامه های delphi یا borland c builder هم راحت تر است. به این دلیل میگویم delphi یا borland c builder که این کامپایلرها برای خودشان توابع درون ساخته دارند و کمتر از توابع API استفاده میکنند. توابعی همچون DialogBoxParamA یا DialogBoxIndirectParamA یا MessageBoxA یا MessageBoxIndirectA اصلا بوسیله ی این کامپایلر ها در حالت عادی استفاده نمیشود.
    اینکه برنامه های dot net امینت پایینی دارند به دلیل ساختاریست که توضیحات کامپایلی زیادی از توابع و روتین های برنامه در خود برنامه ی exe گنجانده میشود. تا بعدا دیباگ و خطا یابیش (نه کرک کردن و نفوذ به برنامه!!!!) راحت تر باشد. که البته این مورد فقط در vb و C#‎ دات نت صدق میکند. به دلیل استفاده از کتابخانه ی Mscore.dll براحتی قابل شناسایی و نفوذ هستند. اما با بکار گیری برخی راهکارهای کامپایلر و به اصطلاح p-code کردن برنامه انالیز برنامه کمی شخت خواهد شد.

  11. #11
    کاربر جدید آواتار matrix_commandline
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    Iran-Tehran
    پست
    21

    Talking

    در .NET خیلی راحت میشه Reflection رو بست. با حذف کردن meta data از assembly .
    بعد فکر نمیکنم برنامه های درست و حسابی رو بدونه Pack کردن بدن بیرون.
    همه چیز برمیگرده به برنامه نویس که اگه سطح اطلاعات برنامه نویسیش واسه .NET اندازه شما باشه ملومه نتیجه چی میشه.
    آخرین ویرایش به وسیله whitehat : پنج شنبه 25 بهمن 1386 در 17:36 عصر دلیل: مودبانه تر هم میشه نظرات را عنوان نمود - با تشکر

  12. #12
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    48
    پست
    6,379
    اطلاعاتی که بعنوان Metadata در اسمبلی های دات نت گنجانده میشه بخاطر امکان Reflection است. امکان Reflection کمک میکنه شما کد نوشته شده در زبانهای مختلف مبتنی بر دات نت رو برای تولید یک اسمبلی واحد استفاده کنید. همچنین با استفاده از این تکنولوژی می توان نمونه ای از یک Type ناشناس ایجاد کرد و ... در این موارد میشه از Reflection استفاده کرد:
    • When you need to access attributes in your program's metadata.
    • For examining and instantiating types in an assembly.
    • For building new types at runtime. Use classes in System.Reflection.Emit.
    • For performing late binding, accessing methods on types created at run time. See the topic Dynamically Loading and Using Types.

    بهرحال Reflection چیز بدی نیست، اما اگر برنامه نویس نکاتی رو رعایت نکرده باشه میتونه مورد سوء استفاده قرار بگیره.

تاپیک های مشابه

  1. کتاب Crack و تکنیک های نقوذ به نرم افزار منتشر شد
    نوشته شده توسط omidgl در بخش امنیت در نرم افزار و برنامه نویسی
    پاسخ: 0
    آخرین پست: سه شنبه 01 آذر 1384, 06:49 صبح
  2. درخواست Crack
    نوشته شده توسط Nimi_hop در بخش برنامه نویسی در 6 VB
    پاسخ: 0
    آخرین پست: سه شنبه 25 مرداد 1384, 23:23 عصر

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

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