Název:
Integrovaný server pro dynamickou analýzu programů
Překlad názvu:
Integrated Server for Dynamic Program Analysis
Autoři:
Kabele, Vít ; Bulej, Lubomír (vedoucí práce) ; Horký, Vojtěch (oponent) Typ dokumentu: Bakalářské práce
Rok:
2019
Jazyk:
eng
Abstrakt: [eng][cze] Dynamic analysis aids in many software development tasks, such as debugging, pro- gram comprehension, and performance optimization. However, implementing a new dy- namic analysis tool is a non-trivial tasks. To simplify development of dynamic analyses, researchers at Charles University and Università della Svizzera italiana in Lugano have jointly developed the DiSL and Shad- owVM frameworks, which raise the level of abstraction for analysis tool developers and provide a convenient programming model both for bytecode instrumentation and for analysis execution. Even though those frameworks were successfully used to develop many different dy- namic analyses, it turned out that the internal design of the original implementation of both frameworks made further development of new features, such as support for instrumentation-time reflection, extremely difficult. Both frameworks provide a client and server part and while they are designed to be used together, the design prevents sharing of information between the two client parts and the two server parts. This not only increases the amount of data that need to be exchanged over network, but also makes configuration of all parts more difficult. In this work we propose and implement a new architecture of the analysis suite so that the functionality the functionality...Dynamická analýza pomáhá při vývoji softwaru v mnoha situacích, ať už jde o debugo- vání, porozumění programu či optimalizaci výkonu. Vyvinout novou dynamickou analýzu je však netriviální úkol. Pro usnadnění vývoje dynamických analýz výzkumníci z Univerzity Karlovy ve spolu- práci s Università della Svizzera italiana v Luganu společnými silami vyvinuli frameworky DiSL a ShadowVM. Tyto frameworky zvyšují úroveň abstrakce pro vývojáře a poskytují vhodný programovací model jak pro instrumentaci bytekódu, tak pro provádění analýz. Ačkoliv tyto frameworky byly úspěšně použity při vývoji mnoha různých dynamických analýz v praxi, ukázalo se, že interní design originálních implementací obou frameworků způsobil, že jakékoliv budoucí rozšíření, jako například podpora pro "instrumentation- time reflection", bylo extrémně obtížné. Oba frameworky pracují v klient-server režimu a přestože jsou navrženy pro společné užití, design zabraňuje sdílení dat mezi oběma klientskými a oběma serverovými částmi. To nejenže zvyšuje množství dat které je potřeba přenést po síti, ale zároveň to činí konfiguraci obou částí složitější. V této práci navrhneme a implementujeme novou architekturu obou frameworků tak, že funkcionalita DiSLu i ShadowVM bude poskytována jedním serverem pro vícero kli- entů. 1
Klíčová slova:
dynamická analýza programů; instrumentace bytekódu; bytecode instrumentation; dynamic program analysis