Ofusca la teva aplicació Silverlight amb Dotfuscator

Pàgina actualitzada :
Data de creació de la pàgina :

Sobre Dotfuscator

Dotfuscator és un ofuscador que fa que el codi font sigui difícil de llegir quan es desmunten les aplicacions escrites amb el .NET Framework. Dotfuscator està disponible tant en versions minoristes gratuïtes com de pagament que vénen amb Visual Studio.

La versió gratuïta només està disponible amb moltes funcions limitades i la suposició que Visual Studio s'està executant, però qualsevol persona amb Visual Studio instal·lat pot utilitzar-la. La versió de pagament té moltes funcions d'ofuscació potents que no estan disponibles a la versió gratuïta, però pot resultar molest que s'ofereixi a un preu difícil de pagar per al públic en general.

Dotfuscator pot tenir diferents funcions, preus i edicions en funció de la versió, així que consulteu el lloc web següent per obtenir més informació.

Dotfuscator

Codi analitzat

Com s'ha esmentat anteriorment, les aplicacions creades amb el .NET Framework poden llegir fàcilment el codi font original desmuntant-lo, però el que realment passa és que quan desmunteu un fitxer de muntatge tal com es mostra a la figura, es pot reproduir la majoria del codi font original, com ara espais de noms, noms de classes i noms de mètodes.

解析されたコード

Procediment d'ofuscació

Comenceu creant l'aplicació Silverlight com de costum i fent una compilació Release. Aquí, estem creant una aplicació que només col·loca dos botons.

Release ビルド

A la carpeta Bin\Release de la carpeta on es troba el projecte, escriviu . xap" és un fitxer de paquet que resumeix els programes i fitxers utilitzats en les aplicacions del Silverlight.

XAP ファイル

En realitat, aquest fitxer es comprimeix i compila com un fitxer ZIP, de manera que l'extensió és ". zip".

拡張子を .zip に変更

S'ha canviat a un fitxer ZIP.

ZIP ファイル

Quan obriu el fitxer, conté un fitxer de manifest i un DLL. Aquest DLL és la versió compilada del programa que s'executa com a aplicació.

Per cert, el fitxer DLL també es col·loca a la carpeta Release quan està construït, de manera que aquesta vegada ofuscarem aquest fitxer.

ZIP ファイルの中身

Al menú Visual Studio, seleccioneu Eines i, a continuació, seleccioneu Dotfuscator i analítica preventiva.

Quan comenceu per primera vegada, es mostrarà el diàleg "Acord de llicència", de manera que llegiu atentament el contingut, marqueu "Sí, accepto l'acord de llicència".

PreEmptive Dotfuscator And Analytics を選択

S'inicia el Dotfuscator Preventiu i l'Analítica CE.

PreEmptive Dotfuscator And Analytics CE

Seleccioneu "Entrades" a l'arbre de l'esquerra i feu clic al botó "Afegeix entrada".

入力の追加

Seleccioneu el fitxer DLL que heu generat durant la compilació.

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

Seleccioneu el fitxer DLL que heu afegit i desmarqueu la casella Mode biblioteca > Conversió XAML.

Si es comprova el "mode Biblioteca", les classes i els mètodes definits en públic no s'ofuscaran.

Si es comprova la "conversió XAML", les classes definides en XAML s'ofuscaran, però depenent de com la creeu, provocarà un error d'inici, de manera que si es produeix, desmarqueu-lo.

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

Bàsicament, totes les classes, mètodes, propietats i noms de variables estan ofuscats, però si no voleu ofuscar un espai de noms o una classe específics a causa de la serialització, seleccioneu "Canvia el nom" de l'arbre de l'esquerra, seleccioneu la pestanya "Exclou" i comproveu l'espai de noms o la classe de destinació.

難読化の除外

A Regles integrades, assegureu-vos que Fields for Silverlight i WPF UserControls estiguin marcats. La comprovació d'això farà que el camp UserControls s'ofusqui i s'executi correctament. Podeu desmarcar-lo si sembla que funciona correctament fins i tot després d'ofuscar-lo.

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

Quan hàgiu acabat, feu clic al botó "Crea projecte" de la barra d'eines.

プロジェクトのビルド

Si hi ha canvis al projecte, es mostrarà el diàleg de confirmació de desament del projecte, així que feu clic a "Sí" per desar.

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

El projecte es diu ". fitxer xml". Els fitxers ofuscats es guarden a la mateixa ubicació.

プロジェクト保存

Espereu que la compilació es completi a mesura que comenci. Tingueu en compte que com més gran sigui el programa, més temps es triga a construir-se. Quan sembla la figura, la compilació està completa.

El camp del missatge mostra el progrés de la compilació i un resultat breu, com ara com d'ofuscat va ser.

ビルド完了

Si seleccioneu Resultats a l'arbre de l'esquerra, podreu veure detalls sobre com han canviat els noms de les classes i dels mètodes.

Sota els noms de classe i mètode, hi haurà una icona de Dotfuscator i noms com "a" i "b", que serà el nom ofuscat. En canviar el nom de la classe o el nom del mètode a un nom sense sentit d'aquesta manera, fins i tot si es desmunta, pot dificultar la lectura del contingut del codi font.

難読化結果

El fitxer ofuscat es crea en una carpeta anomenada "Dotfuscated" a la carpeta del fitxer .xml desat a Save Project. A més del fitxer ofuscat, s'ha creat un fitxer "Mapa.xml", però aquest és el resultat de l'ofuscació i no s'utilitza.

難読化したファイル

Si desmunteu el fitxer ofuscat, podeu veure que alguns noms de classes i mètodes s'han canviat per "a" o "b".

Aquesta vegada, el projecte per defecte creat es va ofuscar gairebé tal com era, així que crec que hi ha una imatge que no està tan ofuscada, però crec que l'efecte de l'ofuscació es fa més clar perquè el nombre de classes etc. augmenta a mesura que el projecte creix.

Com a part, . Biblioteques NET Framework i no estan subjectes a canviar el nom perquè són conjunts que ja estan instal·lats a Windows, per exemple.

難読化したコードの解析

El Silverlight no utilitza DLLs tal qual, de manera que s'empaqueten com a fitxers XAP. Com s'ha esmentat al principi, un fitxer XAP és només un canvi en l'extensió del fitxer ZIP, de manera que crea un fitxer ZIP recollint els fitxers continguts al fitxer XAP i els DLL ofuscats.

La creació d'un fitxer ZIP es pot fer mitjançant funcions estàndard del sistema operatiu.

ファイルを ZIP 化

Es crea un fitxer ZIP.

ZIP ファイル

L'extensió es canvia a '. xap" i si el nom del fitxer és diferent, canvieu-lo al nom original del fitxer de paquet.

Col·loqueu el fitxer XAP en una ubicació de distribució.

XAP ファイルに変更

Comproveu el funcionament i comproveu si funciona correctament.

Si no s'inicia, comproveu fins que funcioni normalment reduint el codi ofuscat. Tingueu en compte que Silverlight sovint es queda atrapat en qüestions relacionades amb XAML.

動作確認

Tot i que les instruccions no apareixen aquí, si voleu signar un programa, creeu-lo en un estat signat amb retard, ofusqueu l'assemblea i torneu a signar. Fins i tot si l'ofusqueu mentre està signat, el codi de signatura adjunt en el moment de la compilació i el codi de signatura després de l'ofuscació no coincidiran, de manera que no podreu iniciar-lo.

En aquest article, he enumerat els passos per a la versió gratuïta, però si utilitzeu la versió de pagament, podeu realitzar ofuscacions més complexes i evitar el desmuntatge en si. No obstant això, l'ofuscació té el potencial de causar diversos efectes adversos, de manera que quan es fa ofuscació, cal considerar si funcionarà correctament des del principi del disseny.