Přístupnostní navigace
E-application
Search Search Close
Bachelor's Thesis
Author of thesis: Martin Hrneček
Acad. year: 2025/2026
Supervisor: Ing. Jan Pluskal, Ph.D.
Reviewer: doc. Dr. Ing. Dušan Kolář
This bachelor's thesis focuses on IL code obfuscation in .NET applications from the perspective of protection against reverse engineering. The introductory part summarizes the principles of the .NET runtime, the structure of IL code, and the role of metadata in the decompilation of managed applications. Based on this theoretical background, a methodology for systematic evaluation of obfuscation effectiveness is proposed, enabling objective comparison of different techniques and tools. The methodology is based on defined metrics, including the readability and reconstructability of decompiled code, the success rate of identifier reconstruction by automatic decompilation, performance impact on the application, and changes in the resulting assembly size. The proposed approach is applied to a set of representative .NET test applications using selected obfuscation techniques. The measured results are analyzed and compared in order to identify practical benefits and limitations of individual approaches. The outcome of the thesis is a systematic assessment of IL code obfuscation effectiveness and recommendations for its use in specific deployment scenarios.
obfuscation, .NET, IL code, CIL, reverse engineering, decompilation, software protection, ILSpy, Halstead metrics, cyclomatic complexity
Date of defence
18.06.2026
Result of the defence
Defended (thesis was successfully defended)
Grading
C
Process of defence
Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm C.
Topics for thesis defence
Language of thesis
Czech
Faculty
Fakulta informačních technologií
Department
Department of Information Systems
Study programme
Information Technology (BIT)
Composition of Committee
doc. Ing. Petr Matoušek, Ph.D., M.A. (předseda) doc. Ing. Michal Bidlo, Ph.D. (místopředseda) Ing. Radek Kočí, Ph.D. (člen) Ing. Jan Pluskal, Ph.D. (člen) Ing. František Grézl, Ph.D. (člen)
Supervisor’s reportIng. Jan Pluskal, Ph.D.
Student samostatně navrhl a realizoval netriviální experimentální studii porovnávající tři obfuskátory (Obfuscar, Eazfuscator.NET, .NET Reactor) na pěti testovacích .NET aplikacích. Za přínos považuji navrženou sadu měřitelných metrik (Halstead, cyklomatická složitost, Shannonova entropie, vlastní skóre deobfuskace) doplněnou automatizovanou pipeline. Práce identifikuje fingerprinty obfuskátorů a kvantifikuje dopad obfuskace na výkon pomocí BenchmarkDotNet. Omezení metodiky (demoverze, vliv reflexe) si student zdokumentoval. Slabší stránkou byla nárazová komunikace v průběhu roku. Navrhuji práci hodnotit stupněm C jako dobrou.
Téma bylo vypsáno na popud studenta, který se zajímal o ochranu .NET aplikací v návaznosti na předmět ICS. Původní studentův návrh počítal s vlastní implementací obfuskátoru. Vzhledem k náročnosti tématu jsem doporučil zúžit zadání na rešerši, návrh hodnoticí metodiky a experimentální srovnání existujících nástrojů, což bylo nakonec do zadání zapracováno. Cílem práce bylo nastudovat principy .NET runtime a IL kódu, provést rešerši technik obfuskace, navrhnout systematickou metodiku hodnocení s měřitelnými metrikami a experimentálně srovnat vybrané obfuskátory na sadě testovacích aplikací. Téma vyžaduje porozumění CIL na úrovni specifikace ECMA-335, principů reverzní analýzy a metrik softwarové vědy. Po implementační stránce je zadání jednodušší díky využití existujících obfuskátorů, po analytické a metodologické stránce považuji zadání za průměrně obtížné. S dosaženými výsledky jsem spokojen, zadání bylo splněno v plném rozsahu.
Student samostatně nalezl 28 zdrojů zahrnujících jak klíčové publikace v oboru (Collberg a Thomborson 1997 pro taxonomii obfuskačních technik, Schrittwieser et al. 2016 pro state-of-the-art, Halstead 1977, McCabe 1976), tak aktuální technickou dokumentaci platformy .NET a primární standardy (ECMA-335, ISO/IEC 23271). Citační etika a citační norma jsou v práci dodrženy, drobnou výhradu mám k větší převaze online zdrojů z dokumentace Microsoftu, která je však u tématu .NET přirozená.
Konzultace probíhaly převážně formou emailových updatů, osobní konzultace jsme v průběhu řešení absolvovali pouze dvě. Student na ně byl přiměřeně připraven a diskuze byly konstruktivní, postup však neodpovídal dohodnutému časovému plánu práce. Tempo komunikace bylo nárazové a nepravidelné, uvítal bych častější iteraci a průběžnou zpětnou vazbu v menších krocích.
Finální podoba práce byla dokončována intenzivně v posledních týdnech před odevzdáním. Připomínky k draftu jsem studentovi předal pouze formou komentářů v textu, finální verze již nebyla osobně konzultována a ne všechny náměty na úpravy byly zapracovány. Přes tyto výhrady student stihl text dovést do funkčně i obsahově ucelené podoby.
Není. Zdrojové kódy testovacích aplikací, automatizované pipeline a analytických nástrojů jsou dostupné v GitHub repozitáři pod licencí MIT.
Grade proposed by supervisor: C
Reviewer’s reportdoc. Dr. Ing. Dušan Kolář
Práce s pěkným potenciálem, která však kulhá v samotné podstatě - slabá metodika a implementace. Ani prezentace výsledků není vhodná. Práci však doporučuji k obhajobě.
Evaluation level: méně obtížné zadání
Zadání vyžaduje především se zorientovat v tématu a nadále zužitkovat informace pro ověření chování vybraných "obfuskátorů".
Kapitoly prezentují často kód, nebo zabíhají do detailů, které jsou v kontextu práce nepochopitelné. I když je na začátku seznam zkratek, tak způsob jejich řazení mi zůstal utajen. Krom toho např. zkratka CLI je použita ve dvou významech (.NET a příkazová řádka). Chybí také číslování vzorců apod. Cíl práce a její směrování je však z práce pochopitelný.
Formálně je práce v pořádku. Až na ty kusy kódu zmiňované výše.
Vlastního kódu je poměrně málo, způsob měření v nanosekundách považuji za velice nevhodný a nicneříkající. Jelikož i metodika je slabá, tak tuto stránku spolu s tím, jak jsou výsledky srovnání prezentovány, považuji za nejslabší stránku práce.
Podle mě žádné možnosti využití nejsou, chtělo by to pořádně předělat a rozpracovat.
Evaluation level: zadání splněno s drobnými výhradami
To, co autor považuje za metodiku je velmi strohé, ale formálně je to splněno.
Evaluation level: je v obvyklém rozmezí
Nicméně obsahuje řadu pasáží, které působí jak výplně, např. úvod 2. a 4. kapitoly shrnuje její obsah. Na druhou stranu i po odstranění takových pasáží by práce zůstala v normě.
Vhodná volba zdrojů.
Grade proposed by reviewer: D
Responsibility: Mgr. et Mgr. Hana Odstrčilová