Deoarece obfuscatorul .net este folosit în proiect, multe modele sunt căutate online, cum ar fi Dotfuscator, xeoncode, foxit etc.
Dar majoritatea taxelor, desigur, există versiuni sparte, iar compania cere ca software-ul piratat să nu poată fi folosit.
După ce am căutat mult timp, în cele din urmă am găsit ConfuserEX și era ok de folosit, așa că l-am scos rapid și l-am împărtășit cu tine.
Deoarece există puține introduceri chineze pe Internet, voi face un test aici pentru a vă demonstra:
1. Creează o nouă bibliotecă de clase C#, nu voi schimba numele, doar o voi numi ClassLibrary1 și voi adăuga o metodă simplă sub clasa Class1.cs:
2. Creează o altă aplicație de consolă, ConsoleTest, adaugă un ClassLibrary1.dll de referință și apelează metoda de test în ClassLibrary1.Class1 în metoda principală:
După compilare, deschide ConsoleTest.exe cu ILSpy, iar tu poți vedea codul sursă așa cum este prezentat mai jos:
3, Acum să încercăm să confundăm cu ConfuserEx:
După descărcarea ConfuserEx, dezifuiați-l și deschideți ConfuserEx.exe, așa cum se arată în figura următoare:
4. Vezi promptul "Trage modulele de input aici"?
Apoi pune ConsoleTest.exe chiar acum, așa cum se vede în poza de mai jos:
5. Apasă pe Setări
- Select Packer
- Module->ConsoleTest.exe
- Apasă semnul + pentru Reguli, adevărat
Așa cum se arată mai jos:
6. Apasă pe Protest!->Protejează! , determinând exportul cu succes (în directorul Confused),
7. Deschide cu ILspy... Confuz, uită-te la ConsoleTest.exe codul sursă:
Dacă metoda este goală, copiază ClassLibrary1.dll dependențelor ConsoleTest.exe în directorul Confused, apasă pe Run ConsoleTest.exe și generează rezultatul corect.
Notă
8. Dacă doar confunzi fișierul exe, este în regulă, dacă doar confunzi un fișier dll, vei vedea următoarea eroare:
Eroare: Niciun modul executabil, niciun corp executabil?
Nu există niciun fișier exe? Hai să punem ConsoleTest.exe și să-l confundăm cu ClassLibrary1.dll, uite.
9. Conform metodei anterioare, am tras și lăsat ConsoleTest.exe și ClassLibrary1.dll în ConfuserEx ca să le confund împreună.
Așa cum se arată mai jos:
Succes prompt.
10. Dar am deschis-o din nou... Confuz, am găsit doar ConsoleTest.exe fișiere confuze, unde ClassLibrary1.dll dispărut?
Nu poți confunda fișierul dll?
Nu-ți face griji, hai să dăm click ConsoleTest.exe încercăm, oh, merg, rulează cu succes, așa cum se vede în poza de mai jos:
Singura explicație aici este că ConfuserEx încorporează dll-ul în execute.
Acum ConsoleTest.exe confuz are 17KB, în timp ce ConsoleTest.exe originală are 5KB, iar ClassLibrary1.dll are tot 5KB.
11. Să folosim ILSpy pentru a vedea ConsoleTest.exe generate după ce ConsoleTest.exe și ClassLibrary1.dll confundă simultan.
Nu pot vedea metoda, nici fișierul dll referențiat.
Ei bine, asta e tot pentru azi.
Atașat: Deoarece nu am găsit o modalitate de a confunda dll separat la prânz, acest elev a găsit o metodă în după-amiaza @四毛的家, și voi adăuga cum să confuzeze dll separat.
Conform pasului 8, am constatat că a fost raportată o eroare la confundarea dll conform metodei EXE și ar fi trebuit să urmăm pașii de mai jos:
După ce tragi dll-ul în ConfuserEx, nu poți selecta Packer în setări, ci să dai click pe butonul creion din dreapta, așa cum se arată mai jos.
După ce apeși butonul creion, apare fereastra de dialog Editare a regulii, selectez un element în Preset, selectez Maximum aici, apoi apăs butonul "+" de mai jos, selectez anti-ildasm (probabil pentru a preveni compilarea prin IL), iar exportul este reușit.
Folosim ILSpy pentru a verifica ClassLibrary1.dll care tocmai a fost confuză, așa cum se vede în figura de mai jos,
Nu se vede nimic.
Pentru a testa DLL-ul obfuscat disponibil, am pus ConsoleTest.exe neobfuscat și ClassLibrary1.dll obfuscat într-un singur director, am dat click pe Run ConsoleTest.exe și am reușit.
|