|
Použití nástroje ILSpy pro dekompilaci. ILspy však vyžaduje instalaci .NET Framework 4.0 na vašem počítači. ILspy dokáže převést dll soubor do jazyka C# nebo VB. ILspy může uložit jeden soubor jako .cs nebo .vb soubor, a když je souborů více, můžete si ho zvolit jako projektový soubor. C# příkazy lze dekompilovat pomocí ILspy a podporují dekompilaci yield return příkazů a lambdas výrazů. Dříve jsem používal Reflector k prohlížení informací o knihovně .NET, ale od února 2011 Reflector přechází na placený software, takže vývojáři, kteří milují svobodný software, se začali věnovat vývoji vlastního dekompilovaného softwaru. Takže ILspy vzniklo díky štěstí. ILSPY je open-source nástroj, který nahrazuje reflektory a dekompiluje kód podobný reflektorům. SharpDevelop je další a jediný. .NET open tool, a je open source. Nabízí také docela dobré funkce, téměř jako by přepisoval Visual Studio. V nejnovější verzi byla přímo přidána podpora bezpečnostních souborů řešení a projektových souborů Visual Studia. ILSpy je nástroj pro dekompilátor ze skupiny SharpDevelop, který je také open source, a jeho ladicí nástroj a dekompilátor jsou popsány níže.
Screenshot rozhraní ILspy
Rozhraní ILSpy je podobné Reflectoru, přičemž stromové ovládání zobrazuje assembler a jeho typ vlevo a odpovídající zdrojový kód vpravo. Základní dekompilační funkce není špatná ve srovnání s Reflectorem a někdy ji lze dokonce dekompilovat pomocí ILSpy pro sestavy, které nelze dekompilovat (kvůli šifrování) pomocí Reflectoru.
ILspy vyžaduje instalaci .NET Framework 4.0 na vašem počítači.Existuje několik běžně používaných funkcí ILspyZákladní funkce pro dekompilaci typů je dostupná Nyní je podporováno pouze dekompilování zdrojového kódu do jazyků C# a IL, ne VB. Ztvárnění jsou:
Funkce ukládání kódu v ILSpy Při kliknutí na typ se výběr File-> Save Code dekompiluje aktuální typ a uloží ho do určeného souboru, a při výběru assembleru se Save Code uloží jako projekt (csproj) a všechny jeho typy jsou přidány do projektu.
Funkce ladění v ILSpy Debugger zde neodkazuje na Visual Studiozdrojúrovni debuggeru, ale odkazuje na debugger assembleru. Reflector má doplněk, který lze připojit přímo k Visual Studiu pro ladění knihoven typů třetích stran bez nutnosti dekompilace těchto typových knihoven a jejich přidávání do projektu ve formě zdrojového kódu. ILSpy má také tuto funkci, která umožňuje přímo ladit assemblery třetích stran se dvěma možnostmi Pokud je knihovna typů třetí strany spustitelná, můžete program spustit pomocí Debug a executable. Pokud je knihovna typů třetí strany assembler (DLL), můžete ji připojit pomocí Attach k běžící aplikaci a začít ladit assembler.
Jak už můžete vidět na obrázku výše, jeho použití je stejné jako ladění zdrojového kódu. Kde je potřeba sledovat hodnotu proměnné, nastavit breakpoint a když program dojde k tomuto bodu, můžete sledovat hodnotu proměnné sledováním formuláře. Rozdíl mezi nimi je v tom, že když je Attach to a running application laděn, pokud je kód optimalizován kompilátorem, monitor nezíská jeho hodnotu.
Jak je ukázáno na obrázku, hodnota proměnné, kterou ladíme, nelze zobrazit, protože kód byl optimalizován. Oficiálně doporučenou metodou je Debug an executable Stejně jako u ladění .NET zdrojového kódu ve Visual Studiu můžete vstoupit do Step, Step over, pokračovat a stavový panel ukáže pohotovost, běh a ladění.
Kromě ladění kódu v C#/VB verzi assembleru lze také ladit v IL kódu, jak je znázorněno na obrázku níže
ILSpy debugger existuje jako plugin, nezapomeňte zahrnout plugin ILSpy.Debugger.
Ale ladění. .NET assemblery musí vyžadovat soubory PDB. ILSpy však negeneruje soubory PDB (žádné soubory nejsou generovány) a nemůže ladit ASP.NET webových aplikací a webových služeb.
|