thesis/5_theseus/main.typ

22 lines
1.7 KiB
Typst

#import "../lib.typ": epigraph, highlight-block, todo
= The Application of Theseus: After Adding Runtime Data, it is Still Your Application <sec:th>
//#epigraph("Plutarch, Life of Theseus 23.1")[The ship wherein Theseus and the youth of Athens returned from Crete had thirty oars, and was preserved by the Athenians \[...\] for they took away the old planks as they decayed, putting in new and strong timber in their places]
#epigraph("Undertale, Toby Fox")[Despite everything, it's still you.]
#align(center, highlight-block(inset: 15pt, width: 75%, block(align(left)[
Some applications use dynamic code loading and reflection calls that prevent static analysis tools from analysing the complete application.
Those behavior can be analyse with dynamic analysis, but the information collected is not enough analyse the application: most tools do not have a way to process this additionnal data.
In this chapter, promose to use dynamic analysis to collect information related to dynamic code loading and reflection, and to encode this information in the bytecode of the application to allow further analysis.
We compared the results of analysis on application before and after the transformation, using tools like Flowdroid or Androguard, and found that the additional information is indeed processed by the tools.
We also compared the finishing rate of the tools, using the same experiment as in @sec:rasta, and found that the finishing rate is generally only slightly negativelly impacted by the transformation.
])))
#include("1_introduction.typ")
#include("2_overview.typ")
#include("3_static_transformation.typ")
#include("4_dynamic_data_collection.typ")
#include("5_results.typ")
#include("6_limits.typ")
#include("7_conclusion.typ")