Pregled bibliografske jedinice broj: 1015495
Zaštita strojnog koda pomoću virtualizacije na x86 arhitekturi
Zaštita strojnog koda pomoću virtualizacije na x86 arhitekturi, 2019., diplomski rad, diplomski, Fakultet elektrotehnike i računarstva, Zagreb
CROSBI ID: 1015495 Za ispravke kontaktirajte CROSBI podršku putem web obrasca
Naslov
Zaštita strojnog koda pomoću virtualizacije na x86 arhitekturi
(Machine Code Obfuscation Through Virtualization on the x86 Architecture)
Autori
Drašković, Barbara
Vrsta, podvrsta i kategorija rada
Ocjenski radovi, diplomski rad, diplomski
Fakultet
Fakultet elektrotehnike i računarstva
Mjesto
Zagreb
Datum
09.07
Godina
2019
Stranica
64
Mentor
Vladimir, Klemo
Ključne riječi
virtualizacija ; zaštita ; reverzno inženjerstvo
(virtualization ; obfuscation ; reverse engineering)
Sažetak
Osmišljen je novi instrukcijski skup koji se bazira na load-store arhitekturi. Ostvaren je virtualni stroj koji se temelji na novom instrukcijskom skupu, funkcionalnosti za dohvaćanje arhitektonskog stanja procesora prije izvršavanja virtualiziranih instrukcija i funkcionalnosti za osvježavanje arhitektonskog stanja procesora poslije izvršavanja virtualiziranih instrukcija. Te su funkcionalnosti objedinjene u statičkoj biblioteci. Definiran je mehanizam kojim korisnik označava dijelove koda koje želi zaštititi. Napisan je program koji vrši zaštitu izvršne datoteke. Korisnik statičku biblioteku i mehanizme za označavanje koda uključuje u svoj projekt te definiranim mehanizmima označuje kritični dio koda koji želi zaštititi. Zatim generira izvršnu datoteku te pokreće program za zaštitu iste. Program za zaštitu u izvršnoj datoteci traži dio koda označen za zaštitu. Disasemblira svaku instrukciju unutar označenog dijela. Virtualizira podržane x86 instrukcije i nove instrukcije pohranjuje u spremnik instrukcija koje će izvršavati virtualni stroj. Kad dođe do instrukcije za koju nije podržana virtualizacija, u spremnik instrukcija sprema instrukciju koja će uzrokovati izlazak iz virtualnog stroja, osvježavanje arhitektonskog stanja procesora i vraćanje normalnom toku programa. Virtualizirane x86 instrukcije mijenja instrukcijama koje će svojim izvršavanjem (preko Strukturiranog upravljanja iznimkama (engl. Structured Exception Handling)) uzrokovati poziv funkcionalnosti definiranih u statičkoj biblioteci. Te funkcionalnosti služe za dohvaćanje arhitektonskog stanja i poziv virtualnog stroja. Proces virtualizacije ponavlja se za sve nizove instrukcija koje je moguće virtualizirati unutar kritičnog dijela koda. Program stvara zaštićenu izvršnu datoteku.
Izvorni jezik
Hrvatski
Znanstvena područja
Računarstvo
POVEZANOST RADA
Ustanove:
Fakultet elektrotehnike i računarstva, Zagreb
Profili:
Klemo Vladimir
(mentor)