Zamlžte svou aplikaci Silverlight pomocí Dotfuscator

Stránky aktualizovány :
Datum vytvoření stránky :

O společnosti Dotfuscator

Dotfuscator je obfuscator, který ztěžuje čtení zdrojového kódu při rozebírání aplikací napsaných pomocí rozhraní .NET Framework. Dotfuscator je k dispozici v bezplatných i placených maloobchodních verzích, které jsou součástí sady Visual Studio.

Bezplatná verze je k dispozici pouze s mnoha omezenými funkcemi a předpokladem, že Visual Studio je spuštěno, ale kdokoli s nainstalovaným Visual Studiem ji může používat. Placená verze má mnoho výkonných funkcí zmatení, které nejsou k dispozici ve volné verzi, ale může být nepříjemné, že je nabízena za cenu, kterou si široká veřejnost může dovolit.

Dotfuscator může mít různé funkce, ceny a edice v závislosti na verzi, proto se prosím podívejte na následující webovou stránku, kde najdete podrobnosti.

Dotfuscator

Analyzovaný kód

Jak bylo uvedeno výše, aplikace vytvořené pomocí rozhraní .NET Framework mohou snadno číst původní zdrojový kód demontáží, ale ve skutečnosti se stane, že když rozeberete soubor sestavení, jak je znázorněno na obrázku, většina původního zdrojového kódu, jako jsou jmenné prostory, názvy tříd a názvy metod, může být reprodukována.

解析されたコード

Postup mlžení

Začněte vytvořením aplikace Silverlight jako obvykle a provedením sestavení pro vydání. Zde vytváříme aplikaci, která umístí pouze dvě tlačítka.

Release ビルド

Do složky Bin\Release složky, kde je projekt umístěn, zadejte . xap" je soubor balíčku, který shrnuje programy a soubory používané v aplikacích Silverlight.

XAP ファイル

Ve skutečnosti je tento soubor komprimován a kompilován jako soubor ZIP, takže přípona je ". zip".

拡張子を .zip に変更

Byl změněn na soubor ZIP.

ZIP ファイル

Když otevřete soubor, obsahuje soubor manifestu a knihovnu DLL. Tato knihovna DLL je zkompilovaná verze programu, který běží jako aplikace.

Mimochodem, soubor DLL je také umístěn ve složce Release, když je sestaven, takže tentokrát tento soubor zamlžujeme.

ZIP ファイルの中身

V nabídce Visual Studio vyberte Nástroje a pak vyberte Preemptive Dotfuscator a analýzy.

Při prvním spuštění se zobrazí dialog "Licenční smlouva", proto si pozorně přečtěte obsah, zaškrtněte "Ano, přijímám licenční smlouvu." a klikněte na tlačítko "OK".

PreEmptive Dotfuscator And Analytics を選択

Preemptive Dotfuscator a Analytics CE se spustí.

PreEmptive Dotfuscator And Analytics CE

Vyberte "Vstupy" ze stromu vlevo a klikněte na tlačítko "Přidat vstup".

入力の追加

Vyberte soubor DLL, který jste vygenerovali během sestavení.

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

Vyberte soubor DLL, který jste přidali, a zrušte zaškrtnutí políčka Režim knihovny > Převod XAML.

Pokud je zaškrtnuto "Režim knihovny", třídy a metody definované veřejně nebudou zamaskovány.

Pokud je zaškrtnuto políčko "Převod XAML", třídy definované v XAML budou zmatené, ale v závislosti na tom, jak je vytvoříte, způsobí chybu při spuštění, takže pokud k ní dojde, zrušte její zaškrtnutí.

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

V podstatě jsou všechny třídy, metody, vlastnosti a názvy proměnných zamaskovány, ale pokud nechcete zamlžit konkrétní jmenný prostor nebo třídu kvůli serializaci, vyberte "Přejmenovat" ze stromu vlevo, vyberte kartu "Vyloučit" a zkontrolujte cílový jmenný prostor nebo třídu.

難読化の除外

V části Předdefinovaná pravidla se ujistěte, že je zaškrtnuto políčko Pole pro Silverlight a WPF UserControls. Zaškrtnutím tohoto nastavení bude pole UserControls zmatené a bude úspěšně spuštěno. Můžete ji zrušit, pokud se zdá, že funguje správně i po zmatení.

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

Po dokončení klikněte na tlačítko "Vytvořit projekt" na panelu nástrojů.

プロジェクトのビルド

Pokud dojde ke změnám v projektu, zobrazí se dialogové okno pro potvrzení uložení projektu, takže klikněte na "Ano" pro uložení.

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

Projekt se nazývá ". xml". Maskované soubory jsou uloženy ve stejném umístění.

プロジェクト保存

Počkejte na dokončení sestavení, jakmile začne. Všimněte si, že čím větší je program, tím déle trvá sestavení. Když to vypadá jako obrázek, sestavení je dokončeno.

Pole zprávy zobrazuje průběh sestavení a stručný výsledek, například jak zmatené bylo.

ビルド完了

Pokud vyberete Výsledky ze stromu vlevo, můžete zobrazit podrobnosti o tom, jak se změnily názvy tříd a metod.

Pod názvy tříd a metod bude ikona Dotfuscator a názvy jako "a" a "b", což bude obfuskovaný název. Změnou názvu třídy nebo názvu metody na nesmyslný název tímto způsobem, i když je rozebrán, může obsah zdrojového kódu ztížit čtení.

難読化結果

Maskovaný soubor je vytvořen ve složce s názvem "Dotfuscated" ve složce souboru .xml uloženého v Uložit projekt. Kromě obfuskovaného souboru byl vytvořen soubor "Map.xml", který je však výsledkem zmatení a nepoužívá se.

難読化したファイル

Pokud rozeberete obfuskovaný soubor, uvidíte, že některé názvy tříd a metod byly změněny na "a" nebo "b".

Tentokrát byl výchozí vytvořený projekt zmaten téměř tak, jak byl, takže si myslím, že existuje obrázek, že není tak zmatený, ale myslím, že efekt zmatení se stává jasnějším, protože počet tříd atd. se zvyšuje s růstem projektu.

Mimochodem, . NET Framework a nepodléhají přejmenování, protože se jedná o sestavení, která jsou již nainstalována například v systému Windows.

難読化したコードの解析

Silverlight nepoužívá knihovny DLL tak, jak jsou, takže jsou zabaleny jako soubory XAP. Jak bylo zmíněno na začátku, soubor XAP je pouze změnou v příponě souboru ZIP, takže vytvoří soubor ZIP shromažďováním souborů obsažených v souboru XAP a obfuskovaných knihovnách DLL.

Vytvoření souboru ZIP lze provést pomocí standardních funkcí operačního systému.

ファイルを ZIP 化

Vytvoří se soubor ZIP.

ZIP ファイル

Přípona se změní na '. XAP" a pokud se název souboru liší, změňte jej na původní název souboru balíčku.

Umístěte soubor XAP do distribučního umístění.

XAP ファイルに変更

Zkontrolujte operaci a zjistěte, zda funguje správně.

Pokud se nespustí, zkontrolujte, dokud nebude fungovat normálně snížením maskovaného kódu. Všimněte si, že Silverlight často uvízne v záležitostech souvisejících s XAML.

動作確認

Ačkoli zde pokyny nejsou uvedeny, pokud chcete podepsat program, sestavte jej ve stavu zpožděného podpisu, zamlžte sestavení a znovu podepište. I když jej během podpisu zamlžujete, kód podpisu připojený v době sestavení a kód podpisu po zmatení se nebudou shodovat, takže jej nebudete moci spustit.

V tomto článku jsem uvedl kroky pro bezplatnou verzi, ale pokud používáte placenou verzi, můžete provést složitější zmatení a zabránit samotné demontáži. Zmatení má však potenciál způsobit různé nepříznivé účinky, takže při zmatení je nutné zvážit, zda bude fungovat správně od začátku návrhu.