Determining image base of firmware for ARM devices by matching literal pools

Ruijin Zhu, Yu An Tan, Quanxin Zhang, Yuanzhang Li, Jun Zheng*

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

28 Citations (Scopus)

Abstract

In the field of reverse engineering, the correct image base of firmware has very important significance for the reverse engineers to understand the firmware by building accurate cross references. Furthermore, patching firmware needs to insert some instructions that references absolute addresses depending on the correct image base. However, for a large number of embedded system firmwares, the format is nonstandard and the image base is unknown. In this paper, we present a two-step method to determine the image base of firmwares for ARM-based devices. First, based on the storage characteristic of string in the firmware files and the encoding feature of literal pools that contain string addresses, we propose an algorithm called FIND-LP to recognize all possible literal pools in firmware. Second, we propose an algorithm called Determining image Base by Matching Literal Pools (DBMLP) to determine the image base. DBMLP can obtain the relationship between absolute addresses of strings and their corresponding offsets in a firmware file, thereby a candidate list for image base value is obtained. If the number of matched literal pools corresponding to a certain candidate image base is far greater than the others, this candidate is considered as the correct image base of the firmware. The experimental result indicates that the proposed method can effectively determine image base for a lot of firmwares that use the literal pools to store the string addresses.

Original languageEnglish
Pages (from-to)19-28
Number of pages10
JournalDigital Investigation
Volume16
DOIs
Publication statusPublished - 1 Mar 2016

Keywords

  • ARM
  • Firmware
  • Image base
  • Literal pool
  • Reverse engineering

Fingerprint

Dive into the research topics of 'Determining image base of firmware for ARM devices by matching literal pools'. Together they form a unique fingerprint.

Cite this