dotPeek


Darmowy dekompilator .NET

Dekompiluj pliki oparte o .NET do C# lub IL

dotPeek potrafi dokonać dekompilacji do ekwiwalentu C# oraz opcjonalnie pokazać kod IL leżący u podstaw danego pliku.

Biblioteki, pliki wykonywalne i inne

dotPeek może wziąć na warsztat różne formaty plików, takie jak biblioteki (.dll), pliki wykonywalne (.exe) oraz pliki metadanych (.winmd).

dotPeek może także dekompilować pliki .baml, pozwalając na rekonstrukcję definicji XAML UI.

Oprócz tradycyjnych plików binarnych i wykonywalnych, możesz także otwierać archiwa (.zip, .vsix lub .nupkg) oraz foldery. Możesz także wyszukiwać i ładować pakiety NuGet (oraz ich zależności) z dowolnego źródła pakietów w internecie, lub ładować pakiety określone w pliku packages.config Twojego projektu z Visual Studio.

Sprawdzanie dostępności kodu źródłowego

W przypadku dekompilowanego kodu sprawa ma się tak, że lepsze to niż nic, ale jeżeli możesz dopasować plik do jego kodu źródłowego, to czemu z tego nie skorzystać? dotPeek może zidentyfikować lokalny kod źródłowy na podstawie plików PDB, lub pozyskać kod źródłowy z odpowiednich serwerów, takich jak Microsoft Reference Source Center lub SymbolSource.org. dotPeek potrafi ponadto sam tworzyć pliki PDB.

W opcjach programu możesz wybrać, jak dotPeek ma się zachowywać: czy ma wyłącznie dekompilować pliki, czy próbować napierw znaleźć odpowiedni kod źródłowy.

Przeglądanie procesów

Okno eksploratora procesów pokazuje listę wszystkich uruchomionych w danym momencie procesów i pozwala na przeglądanie tych modułów, które są oparte o .NET. Możesz wybrać aby pokazać/ukryć natywne procesy i moduły, lub włączyć widok hierarchii procesów.

Filtruj listę aby znaleźć moduł lub proces, który Cię interesuje, a następnie dodaj jego pliki binarne do dotPeek aby móc nad nimi pracować.

Podgląd kodu IL

Kiedykolwiek tylko chcesz jeszcze bardziej zagłębić się w kod źródłowy, możesz przejść do kodu pośredniego z dowolnego miejsca zdekompilowanego kodu C#.

Najprostszą metodą na to jest pokazanie kodu pośredniego w oddzielnym oknie narzędziowym, które jest zsynchronizowane z oknem głównym.

IL jako komentarze do C#

Możesz także wybrać opcję, która wyświetla kod IL jako komentarze do zdekompilowanego kodu C#.

dotPeek potrafi wyświetlić kod IL dla zdekompilowanego kodu oraz dla kodu źródłowego będącego reprodukcją z plików z symbolami.

Wykorzystaj swój ulubiony motyw

dotPeek obsługuje te same schematy kolorystyczne, co Visual Studio.

Na przykład możesz wybrać niebieski lub ciemny motyw graficzny, albo po prostu wybrać synchronizację tej opcji z ustawieniami Visual Studio.

Nawiguj po zdekompilowanym kodzie

dotPeek został zbudowany na podstawie rozwiązań zawartych w narzędziu ReSharper, dzięki czemu pozwala na błyskawiczną nawigację po kodzie na wiele sposobów, otrzymanie podsumowania zawartości każdego ze zdekompilowanych plików, ustawiać zakładki i przeglądać łańcuchy dziedziczenia.

Wyszukiwanie wykorzystania symbolu

Dzięki dotPeek posiadasz kilka opcji wyszukiwania, gdzie znajdują się przypadki wykorzystania danego symbolu.

Wywołaj to narzędzie aby dokonać wyszukiwania określonego symbolu (jak na przykład metody lub zmiennej) we wszystkich załadowanych plikach. Wyniki wyszukiwania zostaną wyświetlone w specjalnym oknie narzędziowym, gdzie możesz je grupować, nawigować po nich i przejść do każdego z przypadków użycia.

Dostępna jest także bardziej zaawansowana i szczegółowa wersja tego narzędzia, gdzie możesz między innymi dostosować kryteria wyszukiwania lub ograniczyć zasięg wyszukiwania.

Podświetlanie przypadków zastosowania

dotPeek automatycznie podświetla wszystkie widoczne przypadki zastosowania symbolu pod kursorem, podobnie do tego, jak to wygląda w ostatnich wersjach Visual Studio. Pomaga to zwiększyć czytelność zdekompilowanego kodu, zwłaszcza kiedy masz do czynienia z zaciemnianiem kodu.

Dodatkowo, jeżeli chcesz dokładnie prześledzić wykorzystanie symbolu w całym pliku (niezależnie od tego, czy są widoczne w danym momencie), możesz skorzystać z takiej opcji. Po jej wybraniu dany symbol będzie podświetlony za pomocą dwóch kolorów: jeden dla zapisu, drugi dla odczytu.

Eksploracja całego dokumentu

Wykorzystaj opcję przejścia do elementu w pliku, aby ułatwić sobie analizę oraz nawigację po pliku. Wpisuj fragmenty nazw i przechodź bezpośrednio do nich.

Jeżeli natomiast potrzebujesz po prostu statycznego wypisania wszystkich elementów znajdujących się w pliku, możesz otworzyć i zadokować odpowiednie okno narzędziowe. Możesz w nim stosować filtry, aby skupić się tylko na tych elementach, które są Ci potrzebne.

Skakanie po kodzie

Dzięki analizie całego kodu dotPeek zapewnia przede wszystkim dwie funkcje, które pozwalają przejść do określonego kawałka kodu: można przejść do konkretnego symbolu, lub wyszukać określonej nazwy we wszystkich możliwych elementach, od zmiennych po całe pliki.

Zakładki

Jeżeli masz takie dziwne przeczucie, że dany fragment kodu jest ważny i możesz chcieć do niego wrócić, skorzystaj z możliwości ustawienia tam zakładki.

Masz do dyspozycji 10 zakładek, które możesz ustawić i przejść do nich za pomocą odpowiednich skrótów klawiszowych, oraz nieograniczoną liczbę zwykłych zakładek. Pełna lista zakładek jest dostępna w odpowiednim oknie.

Nawigacja kontekstowa

Kiedy tylko przejdziesz kursorem do symbolu, dotPeek oferuje mnóstwo opcji nawigacji kontekstowej, które są dostępne z rozwijanego menu.

Przykładowo dostępna jest opcja przejścia do deklaracji, która pozwala na przejście od użycia dowolnego symbolu do miejsca jego deklaracji. Jeżeli dany symbol jest zadeklarowany w innym pliku, jest on automatycznie wczytywany.

Opcja przejścia do implementacji pozwala na nawigację do implementacji końcowej, omijając pośrednie etapy dziedziczenia, takie jak klasy abstrakcyjne.

Nawigacja po hierarchii dziedziczenia

Możesz poruszać się po hierarchii dziedziczenia z pełną sprawnością dzięki funkcjom przechodzenia do symboli bazowych oraz pochodnych.

Są one szczególnie przydatne, gdy chcesz szybko przejść od elementu podstawowego do dziedziczącego.

Łańcuchy dziedziczenia

Jeżeli szukasz obrazowego podsumowania określonego łańcucha dziedziczenia, skorzystaj z narzędzia hierarchii typów.

dotPeek pokaże Ci wszystkie typy, które dziedziczą z określonego typu, jako drzewo w oddzielnym oknie narzędziowym.

Zrozumieć pliki binarne

dotPeek zapewnia narzędzia pozwalające szybko zrozumieć strukturę dowolnego pliku, zależności między nimi, oraz organizować je w taki sposób, aby skupić się tylko na tym, co Cię interesuje.

Zarządzaj listami

Możesz pracować z różnymi listami plików, które są dostosowywalne zależnie od potrzeb. Możesz je zapisywać i otwierać, oraz usuwać gdy są już niepotrzebne. Ich elementy nie ograniczają się wyłącznie do plików .exe oraz .dll, ale mogą także zawierać pakiety NuGet, archiwa i foldery.

Przeglądanie zawartości plików

Kiedy pracujesz z listą plików, możesz na niej zobaczyć wszystkie elementy, które znajdują się w plikach: od przestrzeni nazw po elementy składowe typów.

Dla każdego typu podświetlane są węzły reprezentujące jego typy bazowe i dziedziczące. Szybkie wyszukiwanie oraz filtrowanie jest dostępne z wykorzystaniem zapisu lowerCamelCaps.

Przeglądanie metadanych

dotPeek pomaga także przeglądać metadane plików i przekopywać się przez wszystkie elementy w nim się znajdujące. W węźle metadanych możesz przeglądać wartości elementów blob, nagłówki plików PE, oraz wykorzystanie elementów tabeli metadanych.

Tak jak w każdym innym miejscu, możesz podwójnie kliknąć na elemencie metadanych, aby go zdekompilować i zobaczyć odpowiadający mu kod.

Zależności między plikami

Jeżeli chcesz poznać zależności, jakie zachodzą między poszczególnymi plikami, możesz zaznaczyć potrzebne pliki i polecić dotPeek, aby wyświetlił diagram zależności, który przedstawi wizualizację relacji na podstawie ich referencji.