Visualizing Machine Learning Explanations to Support Software Reverse Engineers
Abstract
Software reverse engineering is a complex and time-consuming process. Machine learning is a tool that has potential to increase the efficiency of this process. In particular, machine learning explanations allow models to explain themselves in a way that can provide beneficial information to reverse engineers. This research develops a novel visualization tool that can heat map machine learning explanations within Binary Ninja. We determine how precisely the tool can identify function starts, for loops, and switch statements present in a compiled binary's source code. We also collect precision metrics from Binary Ninja's high-level intermediate language and compare these with the tool's. Overall, the experimental results show the tool and Binary Ninja can identify functions starts with 100 accuracy. The tool was able detect for loops with 76.47 accuracy and switch statements with 91.67 . Meanwhile, Binary Ninja's high-level intermediate view detected 0 of the for loops and only 12.5 of the switch statements.
Document Details
- Document Type
- Technical Report
- Publication Date
- Sep 01, 2022
- Accession Number
- AD1181415
Entities
People
- Alec Mcgahee
Organizations
- Air Force Institute of Technology