Reconstructing a Packed DLL Binary for Static Analysis

  • Authors:
  • Xianggen Wang;Dengguo Feng;Purui Su

  • Affiliations:
  • University of Science and Technology of China, and State Key Laboratory of Information Security, Institute of Software, Chinese Academy of Sciences,;State Key Laboratory of Information Security, Institute of Software, Chinese Academy of Sciences,;State Key Laboratory of Information Security, Institute of Software, Chinese Academy of Sciences,

  • Venue:
  • ISPEC '09 Proceedings of the 5th International Conference on Information Security Practice and Experience
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

DLLs (Dynamic Link Libraries) are usually protected by various anti-reversing engineering techniques. One technique commonly used is code packing as packed DLLs hinder static code analysis such as disassembly. In this paper, we propose a technique to reconstruct a binary file for static analysis by loading a DLL and triggering and monitoring the execution of the entry-point function and exported functions of packed DLLs. By monitoring all memory operations and control transfer instructions, our approach extracts the original hidden code which is written into the memory at run-time and constructs a binary based on the original DLL, the codes extracted and the records of control transfers. To demonstrate its effectiveness, we implemented our prototype ReconPD based on QEMU. The experiments show that ReconPD is able to analyze the packed DLLs, yet practical in terms of performance. Moreover, the reconstructed binary files can be successfully analyzed by static analysis tools, such as IDA Pro.