Litcius/Paper detail

Plankton: Reconciling Binary Code and Debug Information

Anshunkang Zhou, Chengfeng Ye, Heqing Huang, Yuandao Cai, Charles Zhang

202410 citationsDOI

Abstract

Static analysis has been widely used in large-scale software defect detection. Despite recent advances, it is still not practical enough because it requires compilation interference to obtain analyzable code. Directly translating the binary code using a binary lifter mitigates this practicality problem by being non-intrusive to the building system. However, existing binary lifters cannot produce precise enough code for rigorous static analysis even in the presence of the debug information. In this paper, we propose a new binary lifter Plankton together with two new algorithms that can fill the gaps between the low- and high-level code to produce high-quality LLVM intermediate representations (IRs) from binaries with debug information, enabling full-fledged static analysis with minor precision loss. Plankton shows comparable static analysis results with traditional compilation interference solutions, producing only 17.2% differences while being much more practical, outperforming existing lifters by 76.9% on average.

Topics & Concepts

DebuggingComputer scienceBinary numberCode (set theory)Static analysisBinary codeInterference (communication)SoftwareComputer engineeringProgramming languageComputer networkArithmeticChannel (broadcasting)Set (abstract data type)MathematicsAdvanced Malware Detection TechniquesSoftware Testing and Debugging TechniquesSoftware Engineering Research
Plankton: Reconciling Binary Code and Debug Information | Litcius