Ofuscar aplicacions creades amb Dotfuscator
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.
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.
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".
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ó ...
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.