Dawno dawno temu było…Reflector i długo długo nic (de facto na początku był jest ildasm ale nie o nim dziś).
Na szczęście pewnego lutowego dnia pojawiła się informacja, że już niedługo nie będzie on dostępny za darmo i się zaczęło. Flame’y, groźby i krzyki :). Stało się też sporo dobrego bo o to na rynku pojawiły się alternatywy. Ilspy, dotPeek oraz JustDecompile. Przyjrzyjmy się im z bliska i zobaczmy co mają do zaoferowania.
Reflector - umarł król...
Reflector to zdecydowanie najlepszy, z racji swojej "dorosłości" decompiler na rynku. Rozwijany na początku przez Lutz'a Roeder'a a następnie przejęty przez firmę Red-Gate. Posiadacze darmowej wersji muszą się zadowolić wydaniem 6.0 bez widoków na aktualizacje, co sprawi, że, w przypadku rozwoju .NET, Reflector straci na używalności a zastąpią go alternatywy. Płatna wersja narzędzia jest i (miejmy nadzieję) będzie rozwijana dalej.Siła Reflector'a nie tkwi (narzędzie jest super to fakt) w nim samym, ale w ogromie dodatków, które powstały przez cały ten czas kiedy miał monopol wśród tego typu narzędzi. Jakiekolwiek czynności, które chcielibyśmy zrobić na podglądanym kodzie można szybko wykonać bo na na 99% istnieje dodatek który nam w tym pomoże. Np. modyfikacja kodu? Jest Reflexil.
![]() |
| Reflector podczas pracy |
ILSpy - dobra alternatywa...
ilSpy - Pełni OpenSource'owe narzędzie oparte na bibliotece Mono.Cecil. Dzięki dostępności kodu możemy je sobie rozwijać według potrzeb. Startuje długo jakby był napisany w Java (joke :]), ale potem oferuje pełnię swoich możliwości. Umożliwia wyświetlenie kodu w C# jak też IL (maniacy jak ja, którzy czytają gołego ILa to docenią).
![]() |
| ILSpy |
dotPeek
dotPeek - Narzędzie ze stajni panów z JetBrains. Wspiera jedynie C#. Jako duży plus należy zaliczyć tu możliwość otwierania podglądu jako zakładki. Bardzo ułatwia to nawigowanie się podczas przeglądania kodu. Posiada multum (jak na tego typu narzędzia) opcji i konfiguracji, co na początku utrudnia rozeznanie się w nim.
![]() |
| dotPeek |
![]() |
| Hierarchia typów w dotPeeku |
JustDecompile
JustDecompile - Tutaj Telerik zwietrzył okazję i wypuścił swoje narzędzie do podglądu. Jako jedyny posiada instalator - co trochę denerwuje. Zwykle przy tego typu narzędziach chcemy je ściągnąć i zacząć używać bez konieczności instalacji. Na szczęście da się go wrzucić na usb'a i uruchamiać z niego. Inaczej potrzeba instalacji wykluczałaby to narzędzie praktycznie. na pierwszy rzut oka narzędzie to wyróżnia się całkiem przyjemnym UI ewidentnie napisanym w WPFie.
![]() |
| JustDecompile |
CodeReflect
CodeReflect - mało znane (chyba) narzędzie od firmy DevExtras. Wyglądem dość znacznie przypomina .NET Reflector'a, co można uznać za plus jeśli ktoś był przyzwyczajony do tego układu i działania.
![]() |
| CodeReflect |
... niech żyje król?
Czy jest jednogłośny zwycięzca tegoż rankingu? Nie wiem - ja nadal mam zainstalowanego Reflectora ale coraz częściej sięgam po ilSpy'a (tak w ogóle to mam wszystkie zainstalowane :]). Każdy chyba powinien sam wybrać, ale warto wiedzieć o ich mocnych i słabych stronach aby wybór był świadomy i celowy. Pomijając Reflector'a, pozostałe narzędzia są w fazie Beta lub Pre-Release więc jeszcze sporo może się w nich zmienić. Oby na lepsze...
Powiązane wpisy
Narzędzia do analizy aplikacji .NET - Security NewsDarmowe dekompilatory .NET - Grzegorz Trybulski











4 komentarze:
Spoko lista, trzeba jeszcze dodac ze i Reflector ma pomoc do IL - wystarczy najechac na komende IL i tooltip powie co ona robi, bardzo przydatne to bylo kiedy sie uczylo czytac IL :)
Paweł, fajne zestawienie. Odnośnie wersji Reflectora, to ostatnia frikowa to 6.8.2.5 :)
m.g.
Paweł, ja też mam je wszsytkie zainstalowane (razem z reflectorem, rzecz jasna) i jak na razie niespecjalnie potrafię wybrać. Mam wrażenie, że część narzędzi jest nieco "szybsza" niż pozostałe, ale to też może być kwestia ich małej dojrzałości - kto przewidywał rok temu, że będzie potrzebna darmowa alternatywa dla Reflectora?
I takie pytanie: spotkałeś się z sytuacją, gdy jakieś narzędzie sobie ewidentnie nie radziło (choć skoro większość używa tej samej biblioteki do dekompilacji... :)
Wiesz może jak te narzędzia radzą sobie z kodem zaciemnionym przez (darmowe chociażby) obfuscatory?
Mnie osobiście nieco rozczarowuje powolność narzędzi Telerika i Jetbrains - ILSpy i Reflector wydają się szybsze.
Fajne zestawienie! :)
@Maciek: też mam takie wrażenie, że niektóre radzą sobie szybciej od innych - szczególnie dotPeek startuje jakoś wolno. Na początku przeszkadzało mi, że ilSpy sie trochę pomału rozkręca, ale jakoś już się przyzwyczaiłem.
Co do radzenia sobie z zaciemnionym kodem to może jest to dobry materiał na osobny wpis? Zobaczymy jak czas pozwoli to coś skrobnę...
Paweł
Prześlij komentarz