Kereső
Bejelentkezés
Kapcsolat
Recovering high-level control structures from Erlang source dependencies in BEAM bytecode |
Tartalom: | http://hdl.handle.net/10831/77866 |
---|---|
Archívum: | EDIT |
Gyűjtemény: |
TDK/OTDK dolgozatok
TDK/OTDK dolgozatok (IK) |
Cím: |
Recovering high-level control structures from Erlang source dependencies in BEAM bytecode
|
Létrehozó: |
Lukács, Dániel
|
Közreműködő: |
Tóth, Melinda
|
Dátum: |
2017
|
Téma: |
decompiler
reverse engineering
Erlang
BEAM
static analysis
Erlang
BEAM
kódvisszafejtés
statikus elemzés
gráfátírás
|
Tartalmi leírás: |
A dolgozatban bemutatott módszer célja Erlang forráskód BEAM bájtkód formátumban adott függőségeinek elemzése, és a feltárt szemantikus információ helyes Erlang szintaxissal való reprezentálása. Az ilyen módon reprezentált függőségek a RefactorErl statikus elemző eszköz számára is elemezhetővé válnak: ez által az Erlang fejlesztők jobban megérthetik egyfelől a saját kódbázisuk, másfelől az előfordított BEAM bájtkódként csomagolt legacy vagy nyílt forráskódú függőségek belső működését is. A cél eléréséhez az alacsony szintű bájtkódot magas szintű Erlang kódra transzformáljuk kódvisszafejtési technikák felhasználásával, ez azonban mélyreható szemantikus elemzést igényel.
Ebben a munkában egy viszonylag könnyen kiegészíthető és adaptálható eszközt mutatunk be, mely képes a fentiek szerint a BEAM virtuális gép által interpretált BEAM bájtkódból szemantikus információk kinyerésére. Mivel a BEAM utasításhalmaza nem rendelkezik formális specifikációval, implementációja és reprezentációja változhat a fordítóprogramok és virtuális gépek különböző verziói között, ezért az eszköznek megfelelő absztrakciók segítségével kell megvalósítania az egyes elemzéseket. A különböző bájtkód-utasítások azon elrendezéseit, melyek megfeleltethetőek magas szintű vezérlési szerkezeteknek, jól definiált gráfátíró formalizmus segítségével ismerjük fel és transzformáljuk. Ennek a megközelítésnek köszönhetően az eszköz kiterjeszthető az Erlang-on kívül más, a BEAM platformot célzó programozási nyelvekre is, továbbra is megtartva a generált reprezentáció kifejezőerejét. Az eszköz alapvető komponenseinek áttekintésén túl a dolgozat részletezi a gráfátírás megvalósítását és vezerlésfolyam-strukturálás céljából való felhasználását, valamint való életben is használt, nyílt forráskódú példákon szemlélteti egy korai implementáció alkalmazása során elért eredményeinket.
|
Nyelv: |
angol
|
Típus: |
info:eu-repo/semantics/other
hallgatói dolgozat
|
Formátum: |
application/pdf
|
Azonosító: | |
Létrehozó: |
info:eu-repo/semantics/openAccess
|