View on GitHub

Malware analysis and static call graph generation with Radare2

About

Abstract

" A powerful feature used in automated malware analysis is the static call graph of the executable file. Elimination of sandbox environment, fast scan, function call patterns beyond instruction level information -- all of these motivate the prevalence of the feature. Processing and storing the static call graph of malicious samples in a scaled manner facilitates the application of complex network analysis in malware research. IDA Pro is one of the leading disassembler tools in the industry [1], [2] which offers the generation of the call graph via `GenCallGdl` and `GenFuncGdl` APIs -- a tool which we used in our previous works [3], [4]. In this paper we offer an alternative analysis using another disassembler tool, Radare2, an open-source Unix-based software, which is also frequently used in this domain [5], [6], [7], [8], [9]. Radare2 has Python support (among other languages), via the `r2pipe` package, thus enabling full scalability on Linux-based servers using containerized solutions. This paper offers a detailed technical description on how to use Radare2 to generate the static call graph of a PE file and a thorough comparison with the output of IDA Pro, as well as a public dataset on which the experiments were carried out. "

Keywords

static call graph, IDA Pro 6, Radare2, Levensthein, Jaro, Jaccard

Dataset

[]

References