Zahmlievajte svoju aplikáciu Silverlight pomocou Dotfuscator

Stránka aktualizovaná :
Dátum vytvorenia strany :

O spoločnosti Dotfuscator

Dotfuscator je obfuscator, ktorý sťažuje čítanie zdrojového kódu pri demontáži aplikácií napísaných pomocou rozhrania .NET Framework. Dotfuscator je k dispozícii v bezplatných aj platených maloobchodných verziách, ktoré sa dodávajú s Visual Studio.

Bezplatná verzia je k dispozícii iba s mnohými obmedzenými funkciami a predpokladom, že Visual Studio je spustené, ale môže ho používať ktokoľvek s nainštalovaným Visual Studio. Platená verzia má mnoho výkonných funkcií zahmlievania, ktoré nie sú k dispozícii v bezplatnej verzii, ale môže byť nepríjemné, že je ponúkaná za cenu, ktorú si široká verejnosť ťažko môže dovoliť.

Dotfuscator môže mať rôzne funkcie, ceny a vydania v závislosti od verzie, preto si podrobnosti pozrite na nasledujúcej webovej stránke.

Dotfuscator

Analyzovaný kód

Ako už bolo spomenuté vyššie, aplikácie vytvorené pomocou rozhrania .NET Framework dokážu ľahko prečítať pôvodný zdrojový kód demontážou, ale v skutočnosti sa stane, že keď rozoberiete montážny súbor, ako je znázornené na obrázku, je možné reprodukovať väčšinu pôvodného zdrojového kódu, ako sú priestory názvov, názvy tried a názvy metód.

解析されたコード

Postup zahmlievania

Začnite vytvorením aplikácie Silverlight ako obvykle a vytvorením zostavy Release. Tu vytvárame aplikáciu, ktorá umiestňuje iba dve tlačidlá.

Release ビルド

Do priečinka Kôš\Uvoľnenie priečinka, v ktorom sa projekt nachádza, zadajte príkaz . xap" je súbor balíka, ktorý sumarizuje programy a súbory používané v aplikáciách Silverlight.

XAP ファイル

V skutočnosti je tento súbor komprimovaný a kompilovaný ako súbor ZIP, takže prípona je ". zips".

拡張子を .zip に変更

Bol zmenený na súbor ZIP.

ZIP ファイル

Keď súbor otvoríte, obsahuje súbor manifestu a súbor DLL. Táto DLL je kompilovaná verzia programu, ktorá beží ako aplikácia.

Mimochodom, súbor DLL je tiež umiestnený v priečinku Release, keď je postavený, takže tentoraz tento súbor zahmlíme.

ZIP ファイルの中身

V ponuke Visual Studio vyberte položku Nástroje a potom vyberte položku Preemptive Dotfuscator And Analytics.

Pri prvom spustení sa zobrazí dialógové okno "Licenčná zmluva", preto si pozorne prečítajte obsah, skontrolujte "Áno, súhlasím s licenčnou zmluvou." a kliknite na tlačidlo "OK".

PreEmptive Dotfuscator And Analytics を選択

Začína sa preventívny dotfuscator a analytika CE.

PreEmptive Dotfuscator And Analytics CE

Vyberte "Vstupy" zo stromu vľavo a kliknite na tlačidlo "Pridať vstup".

入力の追加

Vyberte súbor DLL, ktorý ste vygenerovali počas zostavy.

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

Vyberte pridaný súbor DLL a zrušte začiarknutie políčka Režim knižnice > konverzii XAML.

Ak je začiarknuté políčko "Režim knižnice", triedy a metódy definované na verejnosti nebudú zahmlené.

Ak je začiarknuté políčko "Konverzia XAML", triedy definované v XAML budú zahmlené, ale v závislosti od toho, ako ich vytvoríte, spôsobí to chybu pri spustení, takže ak sa vyskytne, zrušte jej začiarknutie.

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

V zásade sú všetky triedy, metódy, vlastnosti a názvy premenných zahmlené, ale ak nechcete zahmliť konkrétny priestor názvov alebo triedu z dôvodu serializácie, vyberte "Premenovať" zo stromu vľavo, vyberte kartu "Vylúčiť" a skontrolujte cieľový priestor názvov alebo triedu.

難読化の除外

V časti Vstavané pravidlá skontrolujte, či sú začiarknuté políčka pre Silverlight a WPF UserControls. Ak to skontrolujete, pole UserControls sa zahmlí a spustí sa úspešne. Môžete zrušiť jeho začiarknutie, ak sa zdá, že funguje správne, aj po zahmlení.

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

Po dokončení kliknite na tlačidlo "Zostaviť projekt" na paneli s nástrojmi.

プロジェクトのビルド

Ak dôjde k zmenám v projekte, zobrazí sa dialógové okno s potvrdením uloženia projektu, takže kliknutím na tlačidlo Áno uložte.

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

Projekt sa nazýva ". xml" súbor. Zahmlené súbory sa ukladajú na rovnakom mieste.

プロジェクト保存

Počkajte, kým sa zostava dokončí, keď sa začne. Všimnite si, že čím väčší je program, tým dlhšie trvá zostavenie. Keď to vyzerá ako obrázok, zostava je dokončená.

V poli správy sa zobrazuje priebeh zostavy a stručný výsledok, napríklad to, ako bola nejasná.

ビルド完了

Ak vyberiete položku Výsledky zo stromu vľavo, zobrazia sa podrobnosti o tom, ako sa zmenili názvy tried a metód.

Pod názvami tried a metód bude ikona Dotfuscator a názvy ako "a" a "b", čo bude nejasný názov. Zmenou názvu triedy alebo názvu metódy na nezmyselný názov týmto spôsobom, aj keď je rozobratý, môže to sťažiť čítanie obsahu zdrojového kódu.

難読化結果

Zahmlený súbor sa vytvorí v priečinku s názvom "Dotfuscated" v priečinku súboru .xml uloženého v save projecte. Okrem zahmleného súboru bol vytvorený súbor "Map.xml", ktorý je však výsledkom zahmlievania a nepoužíva sa.

難読化したファイル

Ak rozoberiete zahmlený súbor, môžete vidieť, že niektoré názvy tried a metód boli zmenené na "a" alebo "b".

Tentoraz bol predvolený vytvorený projekt zahmlený takmer tak, ako bol, takže si myslím, že existuje obraz, že nie je tak zahmlený, ale myslím si, že účinok zahmlievania sa stáva jasnejším, pretože počet tried atď. sa zvyšuje s rastom projektu.

Odhliadnuc od toho, . Knižnice NET Framework a nepodliehajú premenovaniu, pretože ide napríklad o zostavy, ktoré sú už nainštalované v systéme Windows.

難読化したコードの解析

Silverlight nepoužíva DLL tak, ako sú, takže sú zabalené ako súbory XAP. Ako už bolo spomenuté na začiatku, súbor XAP je len zmenou prípony súboru ZIP, takže vytvára súbor ZIP zhromažďovaním súborov obsiahnutých v súbore XAP a zahmlených DLL.

Vytvorenie súboru ZIP je možné vykonať pomocou štandardných funkcií operačného systému.

ファイルを ZIP 化

Vytvorí sa súbor ZIP.

ZIP ファイル

Rozšírenie sa mení na ". xap" a ak je názov súboru iný, zmeňte ho na pôvodný názov súboru balíka.

Umiestnite súbor XAP do distribučného umiestnenia.

XAP ファイルに変更

Skontrolujte operáciu a zistite, či funguje správne.

Ak sa nespustí, skontrolujte, kým nefunguje normálne, znížením zahmleného kódu. Všimnite si, že Silverlight často uviazne v záležitostiach súvisiacich s XAML.

動作確認

Aj keď tu pokyny nie sú uvedené, ak chcete podpísať program, postavte ho v stave oneskoreného podpisu, zahmlievajte zhromaždenie a potom ho znova podpíšte. Aj keď ho počas podpisu zahmlíte, podpisový kód pripojený v čase vytvorenia a podpisový kód po zahmlievaní sa nebudú zhodovať, takže ho nebudete môcť spustiť.

V tomto článku som uviedol kroky pre bezplatnú verziu, ale ak používate platenú verziu, môžete vykonať zložitejšie zahmlievanie a zabrániť samotnej demontáži. Zahmlievanie má však potenciál spôsobiť rôzne nepriaznivé účinky, takže pri zahmlievaní je potrebné zvážiť, či bude správne fungovať od začiatku návrhu.