Obfuscate aplicații create folosind Dotfuscator
rezumat
Deoarece aplicațiile bazate pe .NET Framework sunt create în ceea ce se numește o limbă intermediară comună, acestea pot fi citite într-o formă apropiată de codul sursă original utilizând instrumente de dezasamblare și altele asemenea. Această secțiune descrie cum să obfuscator Dotfuscator, obfuscator care vine cu Visual Studio, pentru a obfuscate nume de clasă și metodă într-un format care nu este ușor de citit.
Vorbim despre asta aici folosind Visual Studio 2010, dar puteți utiliza Dotfuscator în 2005 și 2008, de asemenea.
Mediul de operare
Versiunile Visual Studio acceptate
- 2005
- 2008
- 2010
Verificați versiunea Visual Studio
- 2005
- 2008
- 2010
substanță
Despre Dotfuscator
Dotfuscator este un instrument de confuzie care face codul sursă dificil de citit atunci când este dezasamblat în aplicații scrise cu .NET Framework. Dotfuscator vine cu Visual Studio gratuit și contra cost.
Versiunea gratuită nu este disponibilă decât dacă multe dintre caracteristicile sale sunt limitate sau Visual Studio este pornit, dar oricine îl poate folosi atâta timp cât au Instalat Visual Studio. Versiunea plătită are multe caracteristici puternice de confuzie care nu se găsesc în versiunea gratuită, dar este oferită la un preț dificil pentru publicul larg să-și permită.
Dotfuscator are caracteristici diferite, prețuri și ediții în funcție de versiune, așa că vă rugăm să consultați următoarea pagină de pornire pentru detalii.
Procedura de confuzie
Am menționat mai devreme că aplicațiile create cu .NET Framework pot dezasambla și citi cu ușurință codul sursă original, dar situația reală este că, dacă dezasamblați fișierul exe așa cum se arată în figura din dreapta, puteți reproduce aproape codul sursă original, cum ar fi spațiul de nume, numele clasei, numele metodei etc.
Descrie pașii pentru a face aceste nume confuze și obfuscated.
Crearea unei aplicații în Visual Studio și crearea unui fișier exe este exact la fel ca modul normal de ao crea.
După ce construiți și creați fișierul exe, selectați Instrumente din meniul Visual Studio și apoi selectați Dotfuscator Software Services.
Când începeți pentru prima dată, dialogul "Acord de licență" este afișat așa cum se arată în figura din dreapta, așa că citiți cu atenție conținutul, verificați "Da, sunt de acord cu acordul de licență" și faceți clic pe butonul "OK".
Dotfuscator Software Services începe.
Exe (sau dll fișier) pentru a fi obfuscated nu trebuie să fie din proiectul deschis în prezent.
Selectați Ansambluri de intrare din arborele din stânga și faceți clic pe Ansamblurile de intrare din dreapta pentru a face clic pe butonul ... .
Selectați fișierul exe pe care doriți să-l obfuscate.
Fișierul exe selectat este adăugat la listă. Dacă doriți să ștergeți mai multe fișiere, faceți clic pe butonul "..." după a doua linie pentru a le adăuga.
După ce ați selectat exe-ul pe care doriți să îl obfuscate, faceți clic pe butonul Construiți proiectul din bara de instrumente.
Dacă există modificări ale proiectului, se afișează dialogul de confirmare a salvării proiectului, așa că faceți clic pe "Da" pentru a salva.
Proiectul se numește ". xml" fișier. Fișierul exe obfuscated va fi, de asemenea, salvat în aceeași locație, astfel încât salvați fișierul .xml în orice folder.
Construcția va începe și va aștepta până când va fi finalizată. Rețineți că, cu cât programul este mai mare, cu atât este nevoie de mai mult timp pentru a construi. Dacă arată ca figura din dreapta, construcția este finalizată.
Câmpul mesaj afișează rezultate simple, cum ar fi progresul construirii și cât de obfuscated a fost.
Dacă selectați "Rezultat" din arborele din stânga, puteți vedea detalii despre modul în care s-au modificat numele claselor și metodelor.
Sub numele clasei și metodei, există o pictogramă Dotfuscator și un nume, cum ar fi "a" sau "b", care este numele obfuscated. Prin schimbarea numelui clasei sau a numelui metodei într-un nume lipsit de sens ca acesta, puteți face conținutul codului sursă dificil de citit, chiar dacă este dezasamblat.
Fișierele exe obfuscated sunt create în folderul de fișiere .xml salvate în Salvare proiect, numit "Dotfuscated", și sunt create în ea. În plus față de fișierul exe, a fost creat un fișier "Map .xml", dar acesta este rezultatul confuziei și nu trebuie utilizat.
Exes obfuscated pot fi rulate și utilizate ca atare. Cu toate acestea, există cazuri în care nu poate fi pornit din cauza unei erori necunoscute, așa cum se arată în figura din dreapta.
De data aceasta, am scris o aplicație în WPF, dar pentru că fișierul XAML al primei ferestre de afișat este specificat ca un șir, redenumirea datorată confuziei va provoca pierderea referinței, rezultând o eroare.
Aplicațiile Formular Windows fac referire direct la clasa De la, astfel încât să poată rula fără erori, chiar dacă sunt obfuscated. Cu toate acestea, dacă specificați un nume de clasă, un tip de enumerare etc. după nume, trebuie să fiți atenți, deoarece există posibilitatea să apară aceeași eroare.
Dacă nu doriți să obfuscate o clasă sau ceva, selectați Redenumire din arborele din partea stângă a Dotfuscator și selectați Excludere din fila din mijloc.
Fiecare spațiu de nume, numele clasei etc. vor fi afișate în lista din dreapta, așa că verificați elementele pe care nu doriți să le obfuscate.
Aici, nu vreau să schimb numele clasei ferestrei pentru a fi afișat mai întâi, așa că verific "MainWindow".
Când faceți compilarea, puteți vedea că nu există nici un nume modificat sub numele clasei în MainWindows. (Clasa de aplicații a fost convertită în "a")
Când executați fișierul exe obfuscated, puteți vedea că fereastra se afișează corect.
Dacă dezasamblați fișierul exe obfuscated, puteți vedea că numele clasei și numele metodei au fost modificate în "a" sau "b" în mod corespunzător.
Dar ca o paranteză. BIBLIOTECI NET Framework, cum ar fi numele de clase nu sunt supuse redenumirii, deoarece acestea sunt asamblări care sunt deja instalate pe Windows și în altă parte.
De data aceasta, am obfuscated proiectul implicit creat așa cum este, așa că cred că există o imagine că nu este atât de obfuscated, dar cred că efectul de confuzie devine clar, deoarece numărul de clase, etc crește pe măsură ce proiectul crește.
De asemenea, deși am inclus procedura în versiunea gratuită de data aceasta, versiunea plătită permite o confuzie mai complexă și, de asemenea, previne dezasamblarea în sine. Cu toate acestea, obfuscation are diverse efecte adverse și potențialul de a apărea, astfel încât atunci când obfuscating se efectuează, este necesar să se facă în timp ce se analizează dacă acesta va funcționa corect de la începutul proiectului.