Reference 1
GeorgiaTech SS Lab: https://gts3.org/pages/projects.html
System software commonly uses indirect calls to realize dynamic program behaviors. However, indirect-calls also bring challenges to constructing a precise control-flow graph that is a standard prerequisite for many static program-analysis and system-hardening techniques. Unfortunately, indentifying indirect-call targets is a hard problem. In particular, modern compilers do not identify indirect-call targets by default. Existing approaches identify indirect-call targets based on type analysis that matches the type of function pointers and the ones of address-taken functions. Such approaches, however, suffer from hight false-positive rate as many irrelevant functions may share the same types.
MLTA: Multi-Layer Type Analysis.
MLTA implementation: TYPEDIVE, based on LLVM.
![reduction of icall targets]()
If you could revise
the fundmental principles of
computer system design
to improve security...
... what would you change?