Obfuscate برنامه Silverlight خود را با Dotfuscator

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

درباره Dotfuscator

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

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

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

دوتفوسکاتور

کد تجزیه شده

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

解析されたコード

روش مبهم کردن

شروع با ایجاد برنامه Silverlight به طور معمول و انجام ساخت انتشار. در اینجا، ما در حال ایجاد یک برنامه کاربردی است که تنها دو دکمه قرار می دهد.

Release ビルド

در پوشه Bin\Release پوشه ای که پروژه در آن قرار دارد، تایپ کنید. xap" یک فایل بسته است که خلاصه برنامه ها و فایل های مورد استفاده در برنامه های سیلورلایت است.

XAP ファイル

در واقع، این فایل فشرده شده و به عنوان یک فایل ZIP کامپایل شده است، بنابراین پسوند ". zip".

拡張子を .zip に変更

به یک فایل ZIP تغییر یافته است.

ZIP ファイル

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

به هر حال ، فایل DLL نیز در پوشه انتشار قرار داده شده است زمانی که آن را ساخته شده است ، بنابراین این بار ما این فایل را مبهم.

ZIP ファイルの中身

از منوی Visual Studio، Tools را انتخاب کنید و سپس PreEmptive Dotfuscator And Analytics را انتخاب کنید.

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

PreEmptive Dotfuscator And Analytics を選択

PreEmptive Dotfuscator And Analytics CE شروع می شود.

PreEmptive Dotfuscator And Analytics CE

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

入力の追加

انتخاب فایل DLL که شما در طول ساخت تولید شده است.

ビルドで生成した DLL ファイルを選択

فایل DLL را که اضافه کرده بودید انتخاب کنید و حالت کتابخانه را > تغییر دهید.

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

در صورتی که "تبدیل"اتس" بررسی شود، کلاس های تعریف شده در وینترز مبهم خواهند شد، اما بسته به اینکه چگونه آن را ایجاد می کنید، باعث خطای راه اندازی خواهد شد، بنابراین اگر رخ داد، لطفاً آن را علامت گذاری کنید.

「ライブラリ モード」「XAML の変換」のチェックを外す

اساساً تمام کلاس ها، روش ها، خواص و نام های متغیر مبهم هستند، اما اگر نمی خواهید به دلیل سریال سازی، یک فضای نام یا کلاس خاص را مبهم کنید، "تغییر نام" را از درخت سمت چپ انتخاب کنید، زبانه "Exclude" را انتخاب کنید، و فضای نام یا کلاس هدف را بررسی کنید.

難読化の除外

تحت قوانین داخلی، مطمئن شوید که زمینه ها برای Silverlight و WPF UserControls بررسی می شود. چک کردن این کار زمینه UserControls را مبهم خواهد کرد و با موفقیت اجرا خواهد شد. شما می توانید آن را چک کنید اگر به نظر می رسد به درستی کار می کنند حتی پس از مبهم.

Silverlight および WPF UserControls のフィールド

هنگامی که شما به پایان رسید، با کلیک بر روی دکمه "پروژه ساخت" از نوار ابزار.

プロジェクトのビルド

اگر تغییراتی در پروژه وجود داشته باشد، گفتگوی تأیید ذخیره پروژه نمایش داده می شود، بنابراین برای ذخیره روی "بله" کلیک کنید.

プロジェクト保存確認ダイアログ

این پروژه "" نامیده می شود. xml" file. فایل های مبهم در همان مکان ذخیره می شوند.

プロジェクト保存

صبر کنید برای ساخت برای تکمیل آن را به عنوان شروع می شود. توجه داشته باشید که هر چه برنامه بزرگتر باشد، ساخت آن بیشتر طول می کشد. هنگامی که آن را مانند شکل به نظر می رسد، ساخت کامل است.

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

ビルド完了

اگر نتایج را از درخت سمت چپ انتخاب کنید، می توانید جزئیات مربوط به نحوه تغییر نام کلاس و روش را ببینید.

در زیر نام های کلاس و روش، یک آیکون Dotfuscator و نام هایی مانند "a" و "b" وجود خواهد داشت که نام مبهم خواهد بود. با تغییر نام کلاس یا نام روش به یک نام بی معنی در این روش، حتی اگر از هم جدا شود، می تواند خواندن محتویات کد منبع را دشوار کند.

難読化結果

فایل مبهم در پوشه ای به نام "Dotfuscated" در پوشه فایل ذخیره شده .xml ذخیره شده در Save Project ایجاد شده است. علاوه بر فایل مبهم، یک فایل "نقشه.xml" ایجاد شده است، اما این نتیجه مبهم سازی است و استفاده نمی شود.

難読化したファイル

اگر فایل مبهم را از هم دور کنید، می بینید که برخی از نام های کلاس و روش به "a" یا "b" تغییر کرده اند.

این بار پروژه پیش فرض ایجاد شده تقریبا همان طور که بود مبهم شد، بنابراین فکر می کنم تصویری وجود دارد که آنقدر مبهم نیست، اما فکر می کنم اثر مبهم سازی روشن تر می شود چون با رشد پروژه تعداد کلاس ها و غیره افزایش می یابد.

به عنوان يک کنار ، . کتابخانه های NET Framework و مشمول تغییر نام نیستند زیرا مجالس هستند که از قبل بر روی ویندوز نصب شده اند، به عنوان مثال.

難読化したコードの解析

Silverlight از DLLs as-is استفاده نمی کند، بنابراین آنها به عنوان فایل های XAP بسته بندی شده اند. همانطور که در ابتدا گفته شد، یک فایل XAP فقط یک تغییر در پسوند فایل ZIP است، بنابراین با جمع آوری فایل های موجود در فایل XAP و DLLs مبهم، یک فایل ZIP ایجاد می کند.

ایجاد فایل ZIP می تواند با استفاده از ویژگی های استاندارد OS انجام شود.

ファイルを ZIP 化

یک فایل ZIP ایجاد شده است.

ZIP ファイル

پسوند به 'تغییر می کند. xap" و اگر نام فایل متفاوت است، آن را به نام فایل بسته اصلی تغییر دهید.

پرونده XAP را در محل توزیع قرار دهید.

XAP ファイルに変更

لطفا عملیات را بررسی کنید و ببینید که آیا آن را به درستی کار می کند.

اگر شروع نشد، بررسی کنید تا زمانی که به طور معمول با کاهش کد مبهم کار کند. توجه داشته باشید که Silverlight اغلب در مسائل مربوط به طول مدت گیر می شود.

動作確認

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

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