Addressing Design Trade-Offs for Practical Security Tools: Contributions to SGX I/O Performance and Directed Fuzzing Path Exploration