|
Korzystanie z narzędzia do dekompilacji ILSpy. Jednak ILspy wymaga zainstalowania .NET Framework 4.0 na twoim komputerze. ILspy może przekonwertować plik dll do języka C# lub VB. ILspy może zapisać pojedynczy plik jako plik .cs lub .vb, a gdy plików jest dużo, możesz zdecydować się na zapisanie go jako pliku projektu. Instrukcje C# mogą być dekompilowane przez ILspy i mogą wspierać dekompilację instrukcji yield return oraz wyrażeń lambda. Kiedyś korzystałem z Reflector, aby przeglądać informacje o bibliotece .NET, ale od lutego 2011 roku Reflector przechodzi na oprogramowanie płatne, więc deweloperzy miłośnicy wolnego oprogramowania zaczęli tworzyć własne dekompilowane oprogramowanie. Tak więc ILspy narodził się dzięki szczęściu. ILSPY to narzędzie open-source, które zastępuje reflektory i dekompiluje kod podobny do reflektorów. SharpDevelop to kolejny i jedyny . .NET open tool, a jest open source. Oferuje też całkiem dobre funkcje, niemal przepisując Visual Studio. W najnowszej wersji dodano bezpośrednio wsparcie dla plików bezpieczeństwa rozwiązań Visual Studio oraz projektów Studio. ILSpy to narzędzie dekompilacyjne należące do grupy SharpDevelop, również otwartoźródłowe, a jego debugger i dekompilator opisane są poniżej.
Zrzut ekranu interfejsu ILspy
Interfejs ILSpy jest podobny do Reflectora, z drzewem kontrolującym po lewej stronie pokazującym asembl i jego typ oraz odpowiadający mu kod źródłowy po prawej. Podstawowa funkcja dekompilacji nie jest zła w porównaniu do Reflector, a czasem można ją nawet zdekompilować za pomocą ILSpy dla asembli, których nie da się zdekompilować (ze względu na szyfrowanie) za pomocą Reflector.
ILspy wymaga zainstalowania .NET Framework 4.0 na twoim komputerze.Istnieje kilka powszechnie używanych funkcji ILspyDostępna jest podstawowa funkcja dekompilacji typów Teraz obsługiwane jest tylko dekompilowanie kodu źródłowego do języków C# i IL, nie VB. Wizualizacje to:
Funkcja zapisu kodu w ILSpy Po kliknięciu na typ, wybranie File-> Save Code dekompiluje aktualny typ i zapisuje go do określonego pliku, a przy wyborze asemblera, Save Code jest zapisywany jako plik projektu (csproj) i wszystkie jego typy są dodawane do projektu.
Funkcja debuggera ILSpy Debugger tutaj nie odnosi się do Visual Studioźródłopoziom debuggera, ale odnosi się do debugera asemblera. Reflector posiada dodatek, który można bezpośrednio dołączyć do Visual Studio do debugowania bibliotek typów firm trzecich bez konieczności dekompilacji bibliotek typów firm trzecich i dodawania ich do projektu w formie kodu źródłowego. ILSpy ma również tę funkcję, która pozwala bezpośrednio debugować zespoły firm trzecich, z dwoma opcjami Jeśli biblioteka typu firm trzecich jest plikiem wykonywalnym, możesz uruchomić program za pomocą pliku Debug an executable. Jeśli biblioteka typów firm trzecich jest asemblem (DLL), możesz ją dołączyć z aplikacją Attach do działającej aplikacji, aby rozpocząć debugowanie asemblera.
Jak już widać na powyższym obrazku, jego zastosowanie jest takie samo jak debugowanie kodu źródłowego. Gdzie musisz monitorować wartość zmiennej, ustawić punkt przerwania, a gdy program do niego dochodzi, możesz obserwować wartość zmiennej, monitorując formularz. Różnica między nimi polega na tym, że gdy Attach to the operating application jest debugowany, jeśli kod jest optymalizowany przez kompilator, monitor nie otrzyma jego wartości.
Jak pokazano na obrazku, wartość zmiennej num poddawanej debugowaniu nie może być wyświetlana, ponieważ kod został zoptymalizowany. Oficjalnie zalecaną metodą jest Debug pliku wykonywalnego Podobnie jak przy debugowaniu kodu źródłowego .NET w Visual Studio, możesz wejść do debugacji, przejść dalej, kontynuować, a pasek statusu pokaże tryb czuwania, działania i debugowania.
Oprócz debugowania kodu w formie C#/VB asemblera, można go także debugować w kodzie IL, jak pokazano na poniższym rysunku
Debugger ILSpy istnieje jako wtyczka, upewnij się, że zawiera wtyczkę ILSpy.Debugger.
Ale debugowanie. Asemblery .NET muszą wymagać plików PDB. Jednak ILSpy nie generuje plików PDB (nie są generowane żadne pliki PDB) i nie może debugować ASP.NET aplikacji webowych i usług webowych.
|