Obfuscate applications created using Dotfuscator

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

shrnutí

Vzhledem k tomu, že aplikace založené na rozhraní .NET Framework jsou vytvářeny v takzvaném společném zprostředkujícím jazyce, lze je číst ve formě blízké původnímu zdrojovému kódu pomocí nástrojů pro demontáž a podobně. Tato část popisuje, jak obfuscator Dotfuscator, obfuscator, který je součástí sady Visual Studio, zatemnit názvy tříd a metod do formátu, který není snadno čitelný.

Mluvíme o tom zde pomocí sady Visual Studio 2010, ale můžete použít Dotfuscator také v letech 2005 a 2008.

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

Provozní prostředí

Podporované verze sady Visual Studio

  • 2005
  • 2008
  • 2010

Zkontrolujte verzi sady Visual Studio

  • 2005
  • 2008
  • 2010

hmota

O dotfuscatoru

Dotfuscator je obfuskační nástroj, který ztěžuje čtení zdrojového kódu při demontáži v aplikacích napsaných pomocí rozhraní .NET Framework. Dotfuscator je dodáván se sadou Visual Studio zdarma a za poplatek.

Bezplatná verze není k dispozici, pokud není mnoho jejích funkcí omezeno nebo není spuštěna sada Visual Studio, ale kdokoli ji může používat, pokud má nainstalovanou sadu Visual Studio. Placená verze má mnoho výkonných matoucích funkcí, které se nenacházejí v bezplatné verzi, ale je nabízena za cenu, která je pro širokou veřejnost obtížně dostupná.

Dotfuscator má různé funkce, ceny a edice v závislosti na verzi, proto se prosím podívejte na následující domovskou stránku pro podrobnosti.

Postup mlžení

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

Zmínil jsem se dříve, že aplikace vytvořené pomocí rozhraní .NET Framework mohou rozebrat a snadno přečíst původní zdrojový kód, ale skutečná situace je taková, že pokud rozeberete soubor exe, jak je znázorněno na obrázku vpravo, můžete téměř reprodukovat původní zdrojový kód, jako je jmenný prostor, název třídy, název metody atd.

Popisuje kroky, jak tyto názvy zmást a zamlžit.

Dotfuscator Software Services

Vytvoření aplikace v aplikaci Visual Studio a vytvoření souboru exe je přesně stejné jako normální způsob jejího vytvoření.

Po sestavení a vytvoření souboru exe vyberte nástroje z nabídky sady Visual Studio a pak vyberte Dotfuscator Software Services.

使用許諾契約書

Při prvním spuštění se zobrazí dialog "Licenční smlouva", jak je znázorněno na obrázku vpravo, proto si pozorně přečtěte obsah, zaškrtněte políčko "Ano, souhlasím s licenční smlouvou." a klikněte na tlačítko "OK".

Dotfuscator Software Services

Spustí se Dotfuscator Software Services.

入力アセンブリの追加

Exe (nebo soubor dll), který má být obfuskován, nemusí pocházet z aktuálně otevřeného projektu.

Ve stromu vlevo vyberte Vstupní sestavy a kliknutím na Vstupní sestavy vpravo klikněte na tlačítko ....

難読化する exe ファイル

Vyberte soubor exe, který chcete zamlžit.

追加したアセンブリ

Vybraný soubor exe je přidán do seznamu. Chcete-li zamlžit více souborů, přidejte je kliknutím na tlačítko "..." za druhým řádkem.

プロジェクトのビルド

Jakmile vyberete exe, který chcete zamlžit, klikněte na tlačítko Sestavit projekt z panelu nástrojů.

プロジェクトの保存

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

プロジェクトの保存場所指定

Projekt se nazývá ". xml". Zmatený soubor exe bude také uložen ve stejném umístění, takže uložte soubor .xml do libovolné složky.

ビルド

Sestavení se spustí a počká, až bude dokončeno. Všimněte si, že čím větší je program, tím déle trvá sestavení. Pokud vypadá jako obrázek vpravo, sestavení je dokončeno.

Pole zprávy zobrazuje jednoduché výsledky, například průběh sestavení a jeho zmatení.

難読化結果

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

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

難読化したアセンブリ

Obfuskated exe soubory jsou vytvořeny ve složce .xml souborů uložených v Save Project, volal "Dotfuscated", a jsou vytvořeny v něm. Kromě souboru exe byl vytvořen soubor "Map .xml", ale to je výsledek zmatení a neměl by být používán.

難読化したアセンブリの実行時エラー

Obfuskované exes lze spustit a používat tak, jak jsou. Existují však případy, kdy jej nelze spustit kvůli neznámé chybě, jak je znázorněno na obrázku vpravo.

Tentokrát jsem napsal aplikaci ve WPF, ale protože soubor XAML prvního okna, které se má zobrazit, je zadán jako řetězec, přejmenování kvůli zmatení způsobí ztrátu odkazu, což má za následek chybu.

Aplikace Windows Form odkazují přímo na třídu From, takže mohou běžet bez chyb, i když jsou zmatené. Pokud však zadáte název třídy, typ výčtu atd. podle názvu, musíte být opatrní, protože existuje možnost, že dojde ke stejné chybě.

難読化の除外

Pokud nechcete zamlžit třídu nebo něco takového, vyberte Přejmenovat ze stromu na levé straně Dotfuscatoru a vyberte Vyloučit z prostřední karty.

Každý jmenný prostor, název třídy atd. se zobrazí v seznamu vpravo, takže zkontrolujte položky, které nechcete zamlžit.

Zde nechci měnit název třídy okna, které má být zobrazeno jako první, takže zaškrtnu "MainWindow".

難読化から除外されたクラス

Když provedete sestavení, můžete vidět, že pod názvem třídy v MainWindows není žádný změněný název. (Třída aplikace byla převedena na "a")

難読化したアセンブリの実行

Při spuštění zmateného souboru exe můžete vidět, že okno se zobrazí správně.

難読化後の逆アセンブル

Pokud rozeberete zmatený soubor exe, můžete vidět, že název třídy a název metody byly změněny na "a" nebo "b" správně.

Ale na okraj. NET Framework, jako jsou názvy tříd, nepodléhají přejmenování, protože se jedná o sestavení, která jsou již nainstalována v systému Windows a jinde.

Tentokrát jsem zamlžil výchozí projekt vytvořený tak, jak je, takže si myslím, že existuje obraz, který není tak zmatený, ale myslím, že efekt zmatení je zřejmý, protože počet tříd atd. se zvyšuje s růstem projektu.

Také, i když jsme tentokrát zahrnuli postup do bezplatné verze, placená verze umožňuje složitější zmatení a také zabraňuje samotné demontáži. Zmatení má však různé nepříznivé účinky a potenciál nastat, takže při provádění mlžení je nutné to udělat při zvažování, zda bude fungovat správně od začátku návrhu.