برنامه های کاربردی مبهم ایجاد شده با استفاده از Dotfuscator
خلاصه
از آنجا که برنامه های کاربردی بر اساس چارچوب .NET در آنچه که یک زبان میانی مشترک نامیده می شود ایجاد می شوند، می توان آن ها را به صورت نزدیک به کد منبع اصلی با استفاده از ابزارهای disassembly و مانند آن خواند. این بخش شرح می دهد که چگونه به مبهم Dotfuscator، مبهم کننده است که همراه با ویژوال استودیو، به مبهم کردن کلاس و نام روش را به یک فرمت است که به راحتی قابل خواندن نیست.
ما در حال صحبت کردن در مورد آن در اینجا با استفاده از ویژوال استودیو 2010، اما شما می توانید Dotfuscator در سال های 2005 و 2008 نیز استفاده کنید.
محیط عامل
نسخه های پشتیبانی شده ویژوال استودیو
- 2005
- 2008
- 2010
بررسی نسخه ویژوال استودیو
- 2005
- 2008
- 2010
ماده
درباره Dotfuscator
Dotfuscator یک ابزار مبهم سازی است که خواندن کد منبع را دشوار می کند زمانی که در برنامه های کاربردی نوشته شده با چارچوب دات نت از هم دور می شوند. Dotfuscator همراه با ویژوال استودیو به صورت رایگان و برای هزینه.
نسخه رایگان در دسترس نیست مگر اینکه بسیاری از ویژگی های آن محدود باشد یا ویژوال استودیو آغاز شده باشد، اما هر کسی می تواند تا زمانی که ویژوال استودیو نصب شده است از آن استفاده کند. نسخه پرداخت شده دارای ویژگی های مبهم قدرتمند زیادی است که در نسخه رایگان یافت نمی شوند، اما با قیمتی ارائه می شود که استطاعت آن برای عموم مردم دشوار است.
Dotfuscator دارای ویژگی های مختلف، قیمت ها، و نسخه های بسته به نسخه، بنابراین لطفا به صفحه اصلی زیر برای جزئیات مراجعه کنید.
روش مبهم کردن
قبلاً اشاره کردم که برنامه های کاربردی ایجاد شده با .NET Framework می توانند کد منبع اصلی را از هم بشکنند و به راحتی بخوانند، اما وضعیت واقعی این است که اگر فایل exe را همان طور که در شکل سمت راست نشان داده شده است از هم دور کنید، تقریباً می توانید کد منبع اصلی مانند نام خانوادگی، نام کلاس، نام روش و غیره را تکثیر کنید.
مراحل گیج کننده و مبهم کردن این نام ها را توصیف می کند.
ایجاد یک برنامه کاربردی در ویژوال استودیو و ایجاد فایل exe دقیقاً همان روش عادی برای ایجاد آن است.
پس از ساخت و ایجاد فایل exe، Tools را از منوی Visual Studio انتخاب کنید و سپس سرویس های نرم افزاری Dotfuscator را انتخاب کنید.
هنگامی که برای اولین بار شروع می کنید، گفتگوی "توافقنامه مجوز" همان طور که در شکل سمت راست نشان داده شده نمایش داده می شود، بنابراین محتویات را با دقت بخوانید، "بله، من با توافق مجوز موافقم" را بررسی کنید." و روی دکمه "OK" کلیک کنید.
خدمات نرم افزاری Dotfuscator شروع می شود.
exe (یا فایل dll) به مبهم لازم نیست که از پروژه در حال حاضر باز باشد.
انتخاب مجالس ورودی از درخت در سمت چپ، و کلیک بر روی مجالس ورودی در سمت راست به کلیک بر روی دکمه...
فایل exe را که می خواهید مبهم کنید انتخاب کنید.
فایل exe انتخاب شده به لیست اضافه می شود. اگر می خواهید چندین فایل را مبهم کنید، روی دکمه "..." بعد از خط دوم کلیک کنید تا آنها را اضافه کنید.
هنگامی که شما exe شما می خواهید به obfuscate را انتخاب کرده اند، با کلیک بر روی دکمه پروژه ساخت از نوار ابزار.
اگر تغییراتی در پروژه وجود دارد، گفتگوی تأیید صرفه جویی در پروژه نمایش داده می شود، بنابراین برای ذخیره روی "بله" کلیک کنید.
این پروژه "" نامیده می شود. xml" file. فایل exe مبهم نیز در همان مکان ذخیره خواهد شد، بنابراین ذخیره فایل .xml به هر پوشه.
ساخت شروع خواهد شد و صبر کنید تا آن را کامل است. توجه داشته باشید که هر چه برنامه بزرگتر باشد، ساخت آن بیشتر طول می کشد. اگر به نظر می رسد شکل سمت راست، ساخت به پایان رسید.
زمینه پیام نتایج ساده ای مانند پیشرفت ساخت و اینکه چقدر مبهم بود را نمایش می دهد.
اگر "نتیجه" را از درخت سمت چپ انتخاب کنید، می توانید جزئیات چگونگی تغییر نام کلاس و روش را ببینید.
در زیر نام های کلاس و روش، یک آیکون Dotfuscator و نامی مانند "a" یا "b" وجود دارد که نام مبهم است. با تغییر نام کلاس یا نام روش به یک نام بی معنی مانند این، شما می توانید محتویات کد منبع را دشوار به خواندن حتی اگر آن را disassembled.
فایل های exe مبهم در پوشه فایل های ذخیره .xml ذخیره شده در Save Project به نام "Dotfuscated" ایجاد می شوند و در آن ایجاد می شوند. علاوه بر فایل exe، یک فایل "نقشه .xml" ایجاد شده است، اما این نتیجه مبهم سازی است و نباید از آن استفاده کرد.
exes مبهم را می توان اجرا و استفاده می شود به عنوان است. با این حال، مواردی وجود دارد که به دلیل خطای ناشناخته ای که در شکل سمت راست نشان داده شده است، نمی توان آن را آغاز کرد.
این بار، من یک برنامه کاربردی در WPF نوشتم، اما به دلیل اینکه فایل «انتظار» از اولین پنجره ای که نمایش داده می شود به صورت رشته مشخص شده است، تغییر نام به دلیل مبهم سازی باعث از دست رفتن مرجع خواهد شد که نتیجه آن خطا است.
Windows Form applications reference the From class directly, so they can run without errors even if they are obfuscated. با این حال، اگر یک نام کلاس، یک نوع enum و غیره را با نام مشخص کنید، باید مراقب باشید زیرا احتمال رخ دادن خطای مشابه وجود دارد.
اگر نمی خواهید یک کلاس یا چیزی را مبهم کنید، تغییر نام را از درخت سمت چپ Dotfuscator انتخاب کنید و Exclude را از زبانه میانی انتخاب کنید.
هر نام خانوادگی، نام کلاس و غیره در لیست سمت راست نمایش داده خواهد شد، بنابراین موارد موردی را که نمی خواهید مبهم کنید بررسی کنید.
در اینجا نمی خواهم نام کلاس پنجره را تغییر دهم تا ابتدا نمایش داده شود، بنابراین "MainWindow" را بررسی می کنم.
هنگامی که شما ساخت، شما می توانید ببینید که هیچ نام تغییر تحت نام کلاس در MainWindows وجود دارد. (کلاس App به "a" تبدیل شده است)
هنگامی که فایل exe مبهم را اجرا می کنید، می بینید که پنجره به درستی نمایش داده می شود.
اگر فایل exe مبهم را از هم دور کنید، می بینید که نام کلاس و نام روش به درستی به "a" یا "b" تغییر کرده است.
اما به عنوان یک کنار. کتابخانه های NET Framework مانند نام کلاس ها مشمول تغییر نام نیستند زیرا مجامعی هستند که از قبل بر روی ویندوز و جاهای دیگر نصب شده اند.
این بار پروژه پیش فرض ایجاد شده را همان طور که هست مبهم کردم، بنابراین فکر می کنم تصویری وجود دارد که آنقدر مبهم نیست، اما فکر می کنم اثر مبهم سازی روشن می شود چون با رشد پروژه تعداد کلاس ها و غیره افزایش می یابد.
همچنین، اگر چه ما این روش را در نسخه رایگان این بار گنجانده شده است، نسخه پرداخت شده اجازه می دهد تا برای مبهم سازی پیچیده تر و همچنین جلوگیری از خود disassembly. با این حال، مبهم شدن اثرات نامطلوب مختلف و پتانسیل رخ می دهد، بنابراین هنگامی که مبهم انجام می شود، لازم است آن را در حالی که با توجه به اینکه آیا آن را به درستی از ابتدای طراحی کار خواهد کرد.