Dekompilacja aplikacji pisanych w .NET

Myślę, że o czymś takim jak dekompilacja wiele osób już słyszało. Jednak na wstępie przypomnę jeszcze czym właściwie ona jest. Jak wskazuje sama nazwa, jest to proces odwrotny do procesu kompilacji programu. Polega ona, więc na zamianie kodu maszynowego z powrotem na język wyższego poziomu. Należy przy tym zaznaczyć, że dekompiler podczas dekompilacji nie odtwarza oryginalnego kodu, jaki istniał przed kompilacją. Jednak odtwarza kod o takim samym działaniu jak ten źródłowy. W przypadku C# dekompilacja jest wyjątkowo prosta. Głównie z tego powodu, że programy nie są kompilowane bezpośrednio do kodu maszynowego, tylko do tzw. Common Intermediate Language (CLI). Kod ten zamieniany jest na kod maszynowy dopiero po uruchomieniu aplikacji na przeznaczonym do tego komputerze. Zapewnia to lepszą wydajność, oraz przenośność kompilowanych aplikacji. Jakie są tego konsekwencje? Takie, że właściwie każdy może odtworzyć oryginalny kod naszego programu, posiadając jedynie plik wykonywalny *.exe – a czasami możemy tego nie chcieć 😉

Czytaj dalej

2,480 total views, no views today