Zahmlievajte aplikácie vytvorené pomocou Dotfuscator
súhrn
Pretože aplikácie založené na rámci .NET sú vytvorené v takzvanom bežnom medzijazdovom jazyku, môžu sa čítať vo forme blízkej pôvodnému zdrojovému kódu pomocou nástrojov na demontáž a podobne. Táto časť popisuje, ako zahmliť Dotfuscator, zahmlievač, ktorý je dodávaný s Visual Studio, zahmliť názvy tried a metód do formátu, ktorý nie je ľahko čitateľný.
Hovoríme o tom tu pomocou Visual Studio 2010, ale Dotfuscator môžete použiť aj v rokoch 2005 a 2008.
Prevádzkové prostredie
Podporované verzie visual studio
- 2005
- 2008
- 2010
Kontrola verzie visual studio
- 2005
- 2008
- 2010
látka
O ubytovaní Dotfuscator
Dotfuscator je zahmlievací nástroj, ktorý sťažuje čítanie zdrojového kódu pri demontáži v aplikáciách napísaných pomocou .NET Framework. Dotfuscator je dodávaný s Visual Studio zadarmo a za poplatok.
Bezplatná verzia nie je k dispozícii, pokiaľ nie sú mnohé z jej funkcií obmedzené alebo vizuálne štúdio nie je spustené, ale ktokoľvek ju môže používať, pokiaľ má nainštalované Visual Studio. Platená verzia má mnoho výkonných zahmlievacích funkcií, ktoré sa nenachádzajú v bezplatnej verzii, ale je ponúkaná za cenu, ktorú si široká verejnosť ťažko môže dovoliť.
Dotfuscator má rôzne funkcie, ceny a vydania v závislosti od verzie, preto nájdete podrobnosti na nasledujúcej domovskej stránke.
Postup zahmlievania
Už som spomenul, že aplikácie vytvorené pomocou .NET Framework môžu rozobrať a ľahko prečítať pôvodný zdrojový kód, ale skutočná situácia je taká, že ak rozoberiete súbor exe, ako je znázornené na obrázku vpravo, môžete takmer reprodukovať pôvodný zdrojový kód, ako je menný priestor, názov triedy, názov metódy atď.
Popisuje kroky, aby sa tieto názvy stali mätúcimi a zahmlenými.
Vytvorenie aplikácie vo Visual Studio a vytvorenie exe súboru je presne to isté ako normálny spôsob jej vytvorenia.
Po vytvorení a vytvorení exe súboru vyberte položku Nástroje z ponuky Visual Studio a potom vyberte položku Dotfuscator Software Services.
Keď prvýkrát spustíte, zobrazí sa dialógové okno "Licenčná zmluva", ako je znázornené na obrázku vpravo, preto si pozorne prečítajte obsah, skontrolujte "Áno, súhlasím s licenčnou zmluvou." a kliknite na tlačidlo "OK".
Začína sa dotfuscator software services.
Exe (alebo súbor dll), ktorý sa má zahmliť, nemusí byť z aktuálne otvoreného projektu.
Vyberte položku Vstupné zostavy zo stromu vľavo a kliknutím na položku Vstupné zostavy vpravo kliknite na tlačidlo ...
Vyberte súbor exe, ktorý chcete zahmliť.
Vybratý súbor exe sa pridá do zoznamu. Ak chcete zahmliť viacero súborov, kliknutím na tlačidlo "..." za druhým riadkom ich pridajte.
Po výbere exe, ktorý chcete zahmliť, kliknite na tlačidlo Zostaviť projekt z panela s nástrojmi.
Ak sa v projekte vyskytnú nejaké zmeny, 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. Zahmlievaný súbor exe sa tiež uloží na rovnakom mieste, takže uložte .xml súbor do ľubovoľného priečinka.
Stavba sa začne a počká, kým bude dokončená. Všimnite si, že čím väčší program, tým dlhšie trvá vytvorenie. Ak to vyzerá ako obrázok vpravo, stavba je dokončená.
Pole správy zobrazuje jednoduché výsledky, ako napríklad priebeh zostavy a to, ako bolo zahmlievané.
Ak zo stromu na ľavej strane vyberiete možnosť Výsledok, môžete vidieť podrobnosti o tom, ako sa zmenili názvy tried a metód.
Pod názvami tried a metód sa nachádza ikona Dotfuscator a názov ako "a" alebo "b", čo je zahmlievaný názov. Zmenou názvu triedy alebo názvu metódy na nezmyselný názov, ako je tento, môžete sťažiť čítanie obsahu zdrojového kódu, aj keď je rozobratý.
Zahmlievané exe súbory sa vytvárajú v priečinku .xml súborov uložených v Programe Uloženie, nazývaných "Dotfuscated", a vytvárajú sa v ňom. Okrem súboru exe bol vytvorený súbor "Map .xml", ktorý je však výsledkom zahmlievania a nemal by sa používať.
Zahmlievané exes môžu byť spustené a použité tak, ako sú. Existujú však prípady, keď ho nie je možné spustiť z dôvodu neznámej chyby, ako je znázornené na obrázku vpravo.
Tentokrát som napísal aplikáciu vo WPF, ale pretože súbor XAML prvého okna, ktoré sa má zobraziť, je zadaný ako reťazec, premenovanie v dôsledku zahmlievania spôsobí stratu odkazu, čo vedie k chybe.
Aplikácie formulára systému Windows odkazujú priamo na triedu Od, takže môžu bežať bez chýb, aj keď sú zahmlievané. Ak však podľa názvu zadáte názov triedy, typ enum atď., Musíte byť opatrní, pretože existuje možnosť, že sa vyskytne rovnaká chyba.
Ak nechcete zahmliť triedu alebo niečo také, vyberte položku Premenovať zo stromu na ľavej strane dotfusktora a na strednej karte vyberte položku Vylúčiť.
Každý menný priestor, názov triedy atď. sa zobrazí v zozname vpravo, preto skontrolujte položky, ktoré nechcete zahmliť.
Tu nechcem meniť názov triedy okna, ktorý sa má zobraziť ako prvý, takže skontrolujem "MainWindow".
Keď robíte zostavu, môžete vidieť, že pod názvom triedy v MainWindows nie je zmenený názov. (Trieda aplikácie bola prevedená na "a")
Keď spustíte zahmlievaný súbor exe, môžete vidieť, že okno sa zobrazuje správne.
Ak rozoberiete zahmlievaný súbor exe, môžete vidieť, že názov triedy a názov metódy boli správne zmenené na "a" alebo "b".
Ale ako bokom. Knižnice NET Framework, ako sú názvy tried, nepodliehajú premenovaniu, pretože ide o zostavy, ktoré sú už nainštalované v systéme Windows a inde.
Tentokrát som zahmlil predvolený projekt vytvorený tak, ako je, takže si myslím, že existuje obraz, že nie je tak zahmlievaný, ale myslím si, že účinok zahmlievania sa stáva jasným, pretože počet tried atď. sa zvyšuje s rastom projektu.
Aj keď sme postup tentokrát zahrnuli do bezplatnej verzie, platená verzia umožňuje zložitejšie zahmlievanie a tiež zabraňuje samotnej demontáži. Zahmlievanie má však rôzne nepriaznivé účinky a potenciál, takže pri zahmlievaní je potrebné ho urobiť pri zvažovaní, či bude správne fungovať od začiatku návrhu.