Ugrás a tartalomhoz

 

Recovering high-level control structures from Erlang source dependencies in BEAM bytecode

  • Metaadatok
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