برنامه های کاربردی مبهم ایجاد شده با استفاده از Dotfuscator

صفحه به روز شده :
تاریخ ایجاد صفحه :

خلاصه

از آنجا که برنامه های کاربردی بر اساس چارچوب .NET در آنچه که یک زبان میانی مشترک نامیده می شود ایجاد می شوند، می توان آن ها را به صورت نزدیک به کد منبع اصلی با استفاده از ابزارهای disassembly و مانند آن خواند. این بخش شرح می دهد که چگونه به مبهم Dotfuscator، مبهم کننده است که همراه با ویژوال استودیو، به مبهم کردن کلاس و نام روش را به یک فرمت است که به راحتی قابل خواندن نیست.

ما در حال صحبت کردن در مورد آن در اینجا با استفاده از ویژوال استودیو 2010، اما شما می توانید Dotfuscator در سال های 2005 و 2008 نیز استفاده کنید.

Dotfuscator を使用して作成したアプリケーションを難読化する

محیط عامل

نسخه های پشتیبانی شده ویژوال استودیو

  • 2005
  • 2008
  • 2010

بررسی نسخه ویژوال استودیو

  • 2005
  • 2008
  • 2010

ماده

درباره Dotfuscator

Dotfuscator یک ابزار مبهم سازی است که خواندن کد منبع را دشوار می کند زمانی که در برنامه های کاربردی نوشته شده با چارچوب دات نت از هم دور می شوند. Dotfuscator همراه با ویژوال استودیو به صورت رایگان و برای هزینه.

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

Dotfuscator دارای ویژگی های مختلف، قیمت ها، و نسخه های بسته به نسخه، بنابراین لطفا به صفحه اصلی زیر برای جزئیات مراجعه کنید.

روش مبهم کردن

難読化していないアプリケーションの逆アセンブル結果

قبلاً اشاره کردم که برنامه های کاربردی ایجاد شده با .NET Framework می توانند کد منبع اصلی را از هم بشکنند و به راحتی بخوانند، اما وضعیت واقعی این است که اگر فایل exe را همان طور که در شکل سمت راست نشان داده شده است از هم دور کنید، تقریباً می توانید کد منبع اصلی مانند نام خانوادگی، نام کلاس، نام روش و غیره را تکثیر کنید.

مراحل گیج کننده و مبهم کردن این نام ها را توصیف می کند.

Dotfuscator Software Services

ایجاد یک برنامه کاربردی در ویژوال استودیو و ایجاد فایل exe دقیقاً همان روش عادی برای ایجاد آن است.

پس از ساخت و ایجاد فایل exe، Tools را از منوی Visual Studio انتخاب کنید و سپس سرویس های نرم افزاری Dotfuscator را انتخاب کنید.

使用許諾契約書

هنگامی که برای اولین بار شروع می کنید، گفتگوی "توافقنامه مجوز" همان طور که در شکل سمت راست نشان داده شده نمایش داده می شود، بنابراین محتویات را با دقت بخوانید، "بله، من با توافق مجوز موافقم" را بررسی کنید." و روی دکمه "OK" کلیک کنید.

Dotfuscator Software Services

خدمات نرم افزاری Dotfuscator شروع می شود.

入力アセンブリの追加

exe (یا فایل dll) به مبهم لازم نیست که از پروژه در حال حاضر باز باشد.

انتخاب مجالس ورودی از درخت در سمت چپ، و کلیک بر روی مجالس ورودی در سمت راست به کلیک بر روی دکمه...

難読化する exe ファイル

فایل 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. با این حال، مبهم شدن اثرات نامطلوب مختلف و پتانسیل رخ می دهد، بنابراین هنگامی که مبهم انجام می شود، لازم است آن را در حالی که با توجه به اینکه آیا آن را به درستی از ابتدای طراحی کار خواهد کرد.