Zahmlievajte svoju aplikáciu Silverlight pomocou Dotfuscator
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.
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á.
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.
V skutočnosti je tento súbor komprimovaný a kompilovaný ako súbor ZIP, takže prípona je ". zips".
Bol zmenený na súbor 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.
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".
Začína sa preventívny dotfuscator a analytika CE.
Vyberte "Vstupy" zo stromu vľavo a kliknite na tlačidlo "Pridať vstup".
Vyberte súbor DLL, ktorý ste vygenerovali počas zostavy.
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.
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í.
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.
Vytvorí sa súbor 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.
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.