Ofuscar aplicacions creades amb Dotfuscator

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

resum

Com que les aplicacions basades en el .NET Framework es creen en el que s'anomena un llenguatge intermedi comú, es poden llegir en una forma propera al codi font original mitjançant eines de desmuntatge i similars. Aquesta secció descriu com ofuscar Dotfuscator, l'ofuscador que ve amb Visual Studio, per ofuscar noms de classe i mètode en un format que no és fàcilment llegible.

Estem parlant d'això aquí utilitzant Visual Studio 2010, però també podeu utilitzar Dotfuscator el 2005 i 2008.

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

Entorn operatiu

Versions compatibles amb el Visual Studio

  • 2005
  • 2008
  • 2010

Comprova la versió del Visual Studio

  • 2005
  • 2008
  • 2010

substància

Quant a Dotfuscator

Dotfuscator és una eina d'ofuscació que fa que el codi font sigui difícil de llegir quan es desmunta en aplicacions escrites amb el .NET Framework. El Dotfuscator inclou Visual Studio de forma gratuïta i per un suplement.

La versió gratuïta no està disponible a menys que moltes de les seves característiques siguin limitades o s'inicii Visual Studio, però qualsevol pot utilitzar-la sempre que tingui el Visual Studio instal·lat. La versió de pagament té moltes funcions d'ofuscació potents que no es troben a la versió gratuïta, però s'ofereix a un preu difícil de permetre per al públic en general.

Dotfuscator té diferents característiques, preus i edicions en funció de la versió, així que consulteu la pàgina d'inici següent per obtenir més informació.

Procediment d'ofuscació

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

He esmentat anteriorment que les aplicacions creades amb el .NET Framework poden desmuntar i llegir fàcilment el codi font original, però la situació real és que si desmunteu el fitxer exe com es mostra a la figura de la dreta, gairebé podeu reproduir el codi font original, com ara l'espai de noms, el nom de la classe, el nom del mètode, etc.

Descriu els passos per confondre i ofuscar aquests noms.

Dotfuscator Software Services

Crear una aplicació al Visual Studio i crear un fitxer exe és exactament el mateix que la manera normal de crear-lo.

Després de crear i crear el fitxer exe, seleccioneu Eines del menú Del Visual Studio i, a continuació, seleccioneu Dotfuscator Software Services.

使用許諾契約書

Quan comenceu per primera vegada, el diàleg "Contracte de llicència" es mostra tal com es mostra a la figura de la dreta, de manera que llegiu atentament el contingut, marqueu "Sí, estic d'acord amb l'acord de llicència" i feu clic al botó "D'acord".

Dotfuscator Software Services

S'inicia dotfuscator Software Services.

入力アセンブリの追加

L'exe (o fitxer dll) per ser ofuscat no ha de ser del projecte obert actualment.

Seleccioneu Conjunts d'entrada de l'arbre de l'esquerra i feu clic als conjunts d'entrada de la dreta per fer clic al botó ...

難読化する exe ファイル

Seleccioneu el fitxer exe que voleu ofuscar.

追加したアセンブリ

El fitxer exe seleccionat s'afegeix a la llista. Si voleu ofuscar diversos fitxers, feu clic al botó "..." després de la segona línia per afegir-los.

プロジェクトのビルド

Un cop hàgiu seleccionat l'exe que voleu ofuscar, feu clic al botó Construeix el 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-lo.

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

El projecte es diu". xml". El fitxer exe ofuscat també es desarà a la mateixa ubicació, de manera que deseu el fitxer .xml a qualsevol carpeta.

ビルド

La construcció s'iniciarà i esperarà fins que estigui completa. Tingueu en compte que com més gran sigui el programa, més temps es triga a construir-se. Si sembla la figura de la dreta, la construcció s'ha completat.

El camp missatge mostra resultats senzills, com ara el progrés de la construcció i com d'ofuscada estava.

難読化結果

Si seleccioneu "Resultat" de l'arbre de l'esquerra, podeu veure detalls de com han canviat els noms de la classe i del mètode.

A sota dels noms de classe i mètode, hi ha una icona de Dotfuscator i un nom com "a" o "b", que és el nom ofuscat. En canviar el nom de la classe o el nom del mètode a un nom sense sentit com aquest, podeu fer que el contingut del codi font sigui difícil de llegir encara que es desmunti.

難読化したアセンブリ

Els fitxers exe ofuscats es creen a la carpeta de fitxers .xml desats al Projecte Desa, anomenats "Dotfuscated", i es creen en ell. A més del fitxer exe, s'ha creat un fitxer "Map .xml", però aquest és el resultat de l'ofuscació i no s'ha d'utilitzar.

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

Els ex ofuscats es poden executar i utilitzar tal qual. No obstant això, hi ha casos en què no es pot iniciar a causa d'un error desconegut com es mostra a la figura de la dreta.

Aquesta vegada, he escrit una aplicació en WPF, però com que el fitxer XAML de la primera finestra a mostrar s'especifica com una cadena, el canvi de nom a causa de l'ofuscació farà que es perdi la referència, cosa que provocarà un error.

Les aplicacions de Formulari de Windows fan referència directament a la classe Des, de manera que es poden executar sense errors encara que estiguin ofuscats. Tanmateix, si especifiqueu un nom de classe, un tipus d'enum, etc. pel nom, heu d'anar amb compte perquè hi ha la possibilitat que es produeixi el mateix error.

難読化の除外

Si no voleu ofuscar una classe o alguna cosa així, seleccioneu Canvia el nom de l'arbre de la part esquerra del Dotfuscator i seleccioneu Exclou de la pestanya central.

Cada espai de noms, nom de classe, etc. es mostrarà a la llista de la dreta, de manera que comproveu els elements que no voleu ofuscar.

Aquí, no vull canviar el nom de la classe de la finestra que es mostrarà primer, així que comprovo "MainWindow".

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

Quan feu la construcció, podeu veure que no hi ha cap nom canviat sota el nom de la classe a MainWindows. (La classe d'aplicació s'ha convertit en "a")

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

Quan executeu el fitxer exe ofuscat, podeu veure que la finestra es mostra correctament.

難読化後の逆アセンブル

Si desmunteu el fitxer exe ofuscat, podeu veure que el nom de la classe i el nom del mètode s'han canviat a "a" o "b" correctament.

Però a part. Les biblioteques NET Framework, com ara els noms de les classes, no estan subjectes a canviar el nom perquè són conjunts que ja estan instal·lats al Windows i en altres llocs.

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

A més, tot i que aquesta vegada hem inclòs el procediment en la versió gratuïta, la versió de pagament permet una ofuscació més complexa i també evita el propi desmuntatge. No obstant això, l'ofuscació té diversos efectes adversos i potencial per ocórrer, de manera que quan es realitza l'ofuscació, cal fer-ho mentre es considera si funcionarà correctament des de l'inici del disseny.