Název:
Analýza zatemnění programů založeného na virtuálních strojích
Překlad názvu:
Analysis of Virtual Machine based obfuscation
Autoři:
Středa, Adolf ; Boháček, Milan (vedoucí práce) ; Bálek, Martin (oponent) Typ dokumentu: Diplomové práce
Rok:
2018
Jazyk:
eng
Abstrakt: [eng][cze] Software systems may contain sensitive data that should be protected. In a scenario, where an analyst has full access to the system, it may be desirable to transform the program to become harder to understand and reverse-engineer, while preserving the original functionality of the program. Machine code obfuscation tackles this problem by adding complexity to the pro- gram's control flow, a programming idiom removal, and various abstractions. Specifically, WProtect is an obfuscation engine that utilises a stack virtual ma- chine and its own instruction set to achieve these properties. In this thesis, I will analyse WProtect obfuscation engine, its obfuscation algo- rithms and present a generic approach to an extraction of a code protected by WProtect. Furthermore, I will design a generic framework for a static code ex- traction that is tweakable in order to support different WProtect configurations. Several improvements to WProtect, both in terms of configuration and design, will also be proposed. These proposals mostly intend to mitigate vulnerabilities that are exploited in the code extraction, however, several proposals shall also include improvements specifically targeting static analysis prevention. 1Softwarové systémy mohou obsahovat citlivá data, která může být zapotřebí chránit. V momentě, kdy má analytik plný přístup k systému, je žádoucí, aby existovaly prostředky pro úpravu kódu, které by zvýšily jeho odolnost vůči reverznímu inženýrství při zachování funkcionality. Zatemnění strojového kódu řeší tento problém zesložitěním struktury programu, odstraněním obvyklých vzorů a různými abstrakcemi. Jedním takovým řešením je zatemňovací engine WProtect, který využívá virtuálního zásobníkového stroje s vlastními instrukcemi pro dosažení tohoto cíle. Tato práce se zaobírá analýzou WProtectu a jeho zatemňovacích algoritmů. Součástí analýzy je návrh obecného algoritmu pro extrakci kódu chráněného WProtectem a obecný framework pro statickou extrakci takového kódu. Tento framework je dostatečně konfigurovatelný, aby mohl podporovat různé konfigurace WProtectu. Zároveň je představeno několik vylepšení WProtectu jak v oblasti konfigurace, tak i designu. Tyto návrhy jsou cíleny především na odstranění zranitelností, které algoritmus pro extrakci kódu využívá. Několik návrhů taktéž cílí na ochranu proti statické analýze. 1
Klíčová slova:
deobfuskace; virtuální stroje; wprotect; deobfuscation; virtual machines; wprotect