Obfuscate aplicația Silverlight cu Dotfuscator

Pagina actualizată :
Data creării paginii :

Despre Dotfuscator

Dotfuscator este un obfuscator care face codul sursă dificil de citit atunci când aplicațiile scrise cu .NET Framework sunt dezasamblate. Dotfuscator este disponibil atât în versiunile gratuite și plătite de vânzare cu amănuntul care vin cu Visual Studio.

Versiunea gratuită este disponibilă numai cu multe caracteristici limitate și presupunerea că Visual Studio se execută, dar oricine cu Visual Studio instalat îl poate folosi. Versiunea plătită are multe caracteristici puternice de confuzie care nu sunt disponibile în versiunea gratuită, dar poate fi enervant că este oferit la un preț dificil pentru publicul larg să-și permită.

Dotfuscator poate avea caracteristici diferite, prețuri și ediții în funcție de versiune, așa că vă rugăm să consultați următorul site web pentru detalii.

Dotfuscator

Cod analizat

După cum sa menționat mai sus, aplicațiile create cu .NET Framework pot citi cu ușurință codul sursă original prin dezasamblare, dar ceea ce se întâmplă de fapt este că atunci când dezasamblați un fișier de asamblare așa cum se arată în figură, majoritatea codului sursă original, cum ar fi spațiile de nume, numele claselor și numele metodelor, pot fi reproduse.

解析されたコード

Procedura de confuzie

Începeți prin a crea aplicația Silverlight ca de obicei și a face o versiune construi. Aici, creăm o aplicație care plasează doar două butoane.

Release ビルド

În folderul Bin\Release din folderul în care se află proiectul, tastați . xap" este un fișier pachet care rezumă programele și fișierele utilizate în aplicațiile Silverlight.

XAP ファイル

De fapt, acest fișier este comprimat și compilat ca un fișier ZIP, astfel încât extensia este ". zip".

拡張子を .zip に変更

Acesta a fost schimbat într-un fișier ZIP.

ZIP ファイル

Când deschideți fișierul, acesta conține un fișier manifest și un DLL. Acest DLL este versiunea compilată a programului care se execută ca o aplicație.

Apropo, fișierul DLL este, de asemenea, plasat în folderul Lansare atunci când este construit, deci de data aceasta vom obfuscate acest fișier.

ZIP ファイルの中身

Din meniul Visual Studio, selectați Instrumenteși apoi selectați Preemptive Dotfuscator și Analytics.

Când începeți pentru prima dată, va fi afișat dialogul "Acord de licență", așa că citiți cu atenție conținutul, verificați "Da, accept acordul de licență" și faceți clic pe butonul "OK".

PreEmptive Dotfuscator And Analytics を選択

Începe Preemptive Dotfuscator and Analytics CE.

PreEmptive Dotfuscator And Analytics CE

Selectați "Intrări" din arborele din stânga și faceți clic pe butonul "Adăugați intrare".

入力の追加

Selectați fișierul DLL pe care l-ați generat în timpul construirii.

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

Selectați fișierul DLL pe care l-ați adăugat și debifați Modul bibliotecă > conversia XAML.

Dacă se verifică "Modul bibliotecă", clasele și metodele definite în public nu vor fi obfuscated.

Dacă este verificată "conversia XAML", clasele definite în XAML vor fi obfuscated, dar în funcție de modul în care o creați, aceasta va provoca o eroare de pornire, deci dacă apare, vă rugăm să o debifați.

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

Practic, toate clasele, metodele, proprietățile și numele variabilelor sunt obfuscated, dar dacă nu doriți să obfuscate un anumit spațiu de nume sau clasă din cauza serializării, selectați "Redenumire" din arborele din stânga, selectați fila "Exclude" și verificați spațiul de nume țintă sau clasa.

難読化の除外

Sub Reguli încorporate, asigurați-vă că sunt verificate câmpurile pentru Silverlight și WPF UserControls. Verificarea acestui lucru va face câmpul UserControls obfuscated și se va executa cu succes. Puteți să-l debifați în cazul în care se pare să funcționeze corect, chiar și după obfuscating.

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

Când ați terminat, faceți clic pe butonul "Construiți proiectul" din bara de instrumente.

プロジェクトのビルド

Dacă există modificări ale proiectului, va fi afișat 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șierele obfuscated sunt salvate în aceeași locație.

プロジェクト保存

Așteptați ca construcția să se finalizeze pe măsură ce începe. Rețineți că, cu cât programul este mai mare, cu atât este nevoie de mai mult timp pentru a construi. Când arată ca figura, construi este completă.

Câmpul de mesaj arată progresul construi și un rezultat scurt, cum ar fi cât de obfuscated a fost.

ビルド完了

Dacă selectați Rezultate 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, va exista o pictogramă Dotfuscator și nume precum "a" și "b", care va fi numele obfuscated. Prin schimbarea numelui clasei sau a numelui metodei într-un nume lipsit de sens în acest fel, chiar dacă este dezasamblat, poate face conținutul codului sursă dificil de citit.

難読化結果

Fișierul obfuscated este creat într-un folder numit "Dotfuscated" în folderul fișierului .xml salvat în Salvare proiect. În plus față de fișierul obfuscated, a fost creat un fișier "Hartă.xml", dar acesta este rezultatul confuziei și nu este utilizat.

難読化したファイル

Dacă dezasamblați fișierul obfuscated, puteți vedea că unele nume de clase și metode au fost modificate în "a" sau "b".

De data aceasta, proiectul implicit creat a fost obfuscated aproape așa cum a fost, așa că cred că există o imagine că nu este atât de obfuscated, dar cred că efectul de confuzie devine mai clară, deoarece numărul de clase, etc crește pe măsură ce proiectul crește.

Ca o paranteză, . NET Framework biblioteci și nu sunt supuse redenumirii, deoarece acestea sunt asamblări care sunt deja instalate pe Windows, de exemplu.

難読化したコードの解析

Silverlight nu utilizează DLL-uri ca atare, astfel încât acestea sunt ambalate ca fișiere XAP. După cum sa menționat la început, un fișier XAP este doar o modificare în extensia fișierului ZIP, astfel încât se creează un fișier ZIP prin colectarea fișierelor conținute în fișierul XAP și DLL-urile obfuscated.

Crearea unui fișier ZIP se poate face folosind caracteristicile standard ale sistemului de operare.

ファイルを ZIP 化

Se creează un fișier ZIP.

ZIP ファイル

Extensia este schimbată în '. xap" și dacă numele fișierului este diferit, schimbați-l la numele de fișier pachet original.

Plasați fișierul XAP într-o locație de distribuire.

XAP ファイルに変更

Vă rugăm să verificați operațiunea și să vedeți dacă funcționează corect.

Dacă nu pornește, verificați până când funcționează normal prin reducerea codului obfuscated. Rețineți că Silverlight se blochează adesea în chestiuni legate de XAML.

動作確認

Deși instrucțiunile nu sunt listate aici, dacă doriți să semnați un program, construiți-l într-o stare semnată de întârziere, obfuscate asamblarea și apoi re-semn. Chiar dacă îl obfuscate în timp ce este semnat, codul de semnătură atașat la momentul construirii și codul de semnătură după confuzie nu se va potrivi, astfel încât nu va fi capabil să-l porniți.

În acest articol, am enumerat pașii pentru versiunea gratuită, dar dacă utilizați versiunea plătită, puteți efectua confuzie mai complexă și puteți preveni dezasamblarea în sine. Cu toate acestea, obfuscation are potențialul de a provoca diverse efecte adverse, astfel încât atunci când obfuscating se face, este necesar să se ia în considerare dacă acesta va funcționa corect de la începutul proiectării.