|
Utilizarea instrumentului de decompilare ILSpy. Totuși, ILspy necesită instalarea .NET Framework 4.0 pe calculatorul tău. ILspy poate converti un fișier dll în limbaj C# sau VB. ILspy poate salva un singur fișier ca fișier .cs sau .vb, iar când sunt multe fișiere, poți alege să-l salvezi ca fișier de proiect. Instrucțiunile C# pot fi decompilate de ILspy și pot suporta decompilarea instrucțiunilor yield return și a expresiilor lambdas. Obișnuiam să folosesc Reflector pentru a vizualiza unele informații despre biblioteca .NET, dar din februarie 2011, Reflector a trecut la software plătit, așa că dezvoltatorii care iubesc software-ul liber s-au orientat spre dezvoltarea propriului software decompilat. Așadar, ILspy s-a născut din noroc. ILSPY este un instrument open-source care înlocuiește reflectorii și decompila codul similar reflectoarelor. SharpDevelop este un alt și singurul . .NET și este open source. De asemenea, oferă funcții destul de bune, aproape că rescrie Visual Studio. În cea mai recentă versiune, suportul pentru fișierele de securitate ale soluției Visual Studio și fișierele de proiect a fost adăugat direct. ILSpy este un instrument de decompilare din grupul SharpDevelop și este, de asemenea, open source, iar depanatorul și decompilatorul său sunt descrise mai jos.
Captură de ecran a interfeței ILspy
Interfața ILSpy este similară cu Reflector, cu controale arbore care arată asamblarea și tipul său în stânga și codul sursă corespunzător în dreapta. Funcția de bază de decompilare nu este rea comparativ cu Reflector și uneori poate fi chiar decompilată cu ILSpy pentru asamblări care nu pot fi decompilate (din cauza criptării) cu Reflector.
ILspy necesită instalarea .NET Framework 4.0 pe calculatorul tău.Există mai multe caracteristici utilizate frecvent ale ILspyFuncția de bază de decompilare a tipurilor este disponibilă Acum este suportată doar decompilarea codului sursă în limbaje C# și IL, nu și VB. Randările sunt:
Funcția de salvare a codului din ILSpy Când dai click pe un tip, selectarea File-> Save Code decompilează tipul curent și îl salvează în fișierul specificat, iar la selectarea unui asamblare, Save Code este salvat ca fișier proiect (csproj) și toate tipurile sale sunt adăugate proiectului.
Funcția de depanare a ILSpy Debugger-ul de aici nu se referă la Visual Studiosursănivel de depanator, dar se referă la depanorul asamblării. Reflector are un addin care poate fi atașat direct la Visual Studio pentru a depana biblioteci de tipuri terțe fără a fi nevoie să decompilezi bibliotecile de tipuri terțe și să le adaugi în proiect sub forma codului sursă. ILSpy are și această funcție, care îți permite să depanezi direct asamblările terțe, cu două opțiuni Dacă biblioteca de tipuri terță parte este un executabil, poți începe programul cu Debug un executabil. Dacă biblioteca de tipuri terță parte este un assembly (DLL), poți să o atașezi cu un Attach la aplicația care rulează pentru a începe depanarea asamblării.
După cum se vede deja din imaginea de mai sus, utilizarea sa este aceeași cu depanarea codului sursă. Atunci când trebuie să monitorizezi valoarea variabilei, să setezi un punct de întrerupere, iar când programul rulează până acolo, poți observa valoarea variabilei monitorizând formularul. Diferența dintre cele două este că atunci când Attach to o aplicație care rulează este depanat, dacă codul este optimizat de compilator, monitorul nu va primi valoarea sa.
Așa cum se arată în imagine, valoarea variabilei num depanate nu poate fi afișată deoarece codul a fost optimizat. Metoda oficială recomandată este Debug a unui executabil Ca și în cazul depanării codului sursă .NET în Visual Studio, poți intra, Trece peste, continuă, iar bara de stare va arăta standby, rulare și depanare.
Pe lângă depanarea codului în forma C#/VB a asamblării, acesta poate fi depanat și în cod IL, așa cum se arată în figura de mai jos
Debugger-ul ILSpy există ca plugin, asigură-te că incluzi pluginul ILSpy.Debugger.
Dar depanarea. Asamblările .NET trebuie să necesite fișiere PDB. Totuși, ILSpy nu generează fișiere PDB (nu se generează fișiere PDB) și nu poate depana ASP.NET aplicații web și servicii web.
|