Obfuscate applications created using Dotfuscator
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.
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.
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".
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 ....
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.