یکشنبه , بهمن ۲۸ ۱۳۹۷
خانه / آموزش برنامه نویسی / امن کردن نرم افزارهای دات نت

امن کردن نرم افزارهای دات نت

امن کردن نرم افزارهای دات نت

 

یکی از مسائلی که بسیاری از برنامه نویسان .Net به دنبال آن می باشند امن کردن نرم افزارهای دات نت می باشد. در این مقاله از وب سایت Aspcore.ir قصد دارم در این رابطه و در حد تجربیات شخصی خودم توضیحاتی را برای دانشجویان گرامی عرض کنم.

 

امن کردن نرم افزارهای دات نت به چه صورتی می باشد؟ این سوال و سوالاتی از قبیل امن کردن سورس نرم افزار، جلوگیری از کرک نرم افزار و … مطمئنا سوالاتی می باشد که در ذهن بسیاری از شما برنامه نویسان نقش بسته است. اما آیا واقعا امن کردن سورس و امن کردن نرم افزارهای دات نت امکان پذیر است؟

 

آیا می توان سورس نرم افزار دات نت را به نحوی امن کرد که کرک نشود؟

 

بهتر است در همین جا آب پاکی را روی دست شما بریزم و بگویم به هیچ عنوان شما قادر نخواهید بود سورس یک نرم افزار دات نت را از کرک شدن حفظ کنید. در اینترنت نرم افزارهای زیادی وجود دارد که برای بحث امن کردن نرم افزارهای دات نت مورد استفاده قرار می گیرد.

از جمله مهم ترین و شناخته شده ترین آنها .Net Reactor و Obfusscator و … را نام برد. اما نکته اینجاست که این نرم افزارها غیررایگان می باشند و همه نسخه های موجود در اینترنت کرک شده هستند!!! بنابراین در اینجا یاد ضرب المثل گل اگر طبیب بودی درد خود دوا نمودی می افتیم. در واقع اگر این نرم افزارها قادر به حفظ سورس نرم افزار ما بودند خودشان کرک نمی شدند.

 

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

امن کردن نرم افزارهای دات نت

دقت نمایید که نرم افزارهایی مثل dnSpy به راحتی می تواند سورس نرم افزارهای دات نت شما را که با پک کننده های عمومی موجود در اینترنت رمز شده اند را بازگشایی کنند.

 

چرا نرم افزارهای نوشته شده با دات نت امنیت پایینی دارند؟

 

پاسخ این سوال واضح است. روش اجرای نرم افزارهای دات نتی به صورت Dump می باشد. یعنی فایل exe پس از اجرا وارد Ram سیستم می شود و در آنجا به اجزای تشکیل دهنده خود که dll ها و کلاسها و … می باشد تفکیک می شود یا اصطلاحا دامپ می شود.

بنابراین با استفاده از نرم افزارهایی به راحتی می توان این فایلها را که همان سورس ها و اجزای اصلی تشکیل دهنده نرم افزار ما می باشند استخراج کرد و به آنها دسترسی داشت. (دقت نمایید که نرم افزارهای زیادی برای این کار وجود دارد که فعلا از ذکر نام آنها خودداری می کنم.)

 

بنابراین اگر نرم افزار شما با دات نت (سی شارپ، VB و …) نوشته شده است قید امنیت کامل را به صورت کامل بزنید!!!

 

اما راه حل چیست؟

خب راه حل چیست؟ اگر شما نرم افزاری داشته باشید که واقعا سورس آن برای شما مهم می باشد و دوست ندارید کرک شود باید چه کاری انجام داد؟

 

راه حل اول استفاده از زبان های برنامه نویسی native مثل Delphi و C و C++ می باشند. این زبان های برنامه نویسی جهت اجرا شدن به روش دامپ اجرا نمی شود و امنیت بهتری را برای نرم افزار شما به ارمغان می آورند.

پس راه حل اول استفاده از زبانهای native می باشد.

اما استفاده از این زبان های برنامه نویسی به تنهایی حافظ امنیت کامل نرم افزار شما نیستند. شما اگر واقعا قصد دارید نرم افزار امنی را داشته باشید باید قدری هم هزینه کنید و با تهیه پک کننده های اختصاصی مانند VM که حدود ۵۰۰ دلار قیمت دارد نرم افزار خود را امن کنید.

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

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

  • ذکر این نکته نیز ضروری می باشد که شما در صورت استفاده از پک کننده های اختصاصی مانند VM هم امنیت ۱۰۰ درصدی را نخواهید داشت.

 

البته پیشنهاد بنده این می باشد که حین کد نویسی همیشه سعی کنید رمز و رموز هایی را درون کدها قرار دهید که فقط خود شما بدانید چیست. شاید این کار بهترین گزینه برای امن کردن سورس شما باشد!!!

 

امن کردن نرم افزارهای دات نت

درباره سعید بحرانی فرد

در مورد خودم چیزی نمیگم. بهتره بنده رو از طریق کارهام بشناسید. در مجموع علاقمند به تغییر در جهان اطراف خودم هستم. موفق باشید!!!

6 نظر ثبت شده است.

  1. با سلام
    دوست عزیز
    به نظر من راههای امن کردن برای نرم افزارهایی که با دات نت نوشنته میشه زیاده
    اینروزها که نرم افزارهای دسک تاپی عمرش گذشته و فکر نمکنم شرکتی ایتروها پروژه ای رو به صورت دسک تاپ استارت بزنن

    • سعید بحرانی فرد

      با سلام
      البته پروژه های دسک تاپ زیاده
      مثلا نرم افزارهای پخش فیلم برای جلوگیری از کپی شدن غیر مجاز که بسیاری از آموزشگاهها و سایتها همین الان پیگیرش هستن و نیاز به امنیت بالایی هم داره.

  2. عالی مثل همیشه

  3. سید سجاد هادیان امریی

    خیلی مسخرست واقعا

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *