ARM Instruction Set Architecture Analysis for Binary Analysis

바이너리 분석을 위한 ARM 명령어 구조 분석

  • Jung, Seungil (Dept. of Cyber Security Research Center, KAIST) ;
  • Ryu, Chanho (Dept. of Cyber Security Research Center, KAIST)
  • 정승일 (한국과학기술원 사이버보안연구센터) ;
  • 류찬호 (한국과학기술원 사이버보안연구센터)
  • Published : 2018.07.13

Abstract

본 논문에서는 바이너리 분석을 위한 ARM의 구조를 분석한다. 바이너리 분석이란 0과 1로 이루어진 이진 값의 의미를 분석하는 것을 말한다. 바이너리 코드를 역어셈블(Disassemble)하여 값으로만 존재하는 데이터가 어떤 명령어(Instruction)이며 어떤 피연산자(Operand)를 의미하는지 알 수 있다. 소스코드를 컴파일하여 실행파일이 생성이 되면 바이너리 값으로 구성되며 이 실행파일을 바이너리 파일이라고도 한다. 바이너리 파일을 분석하기 위해서 CPU의 명령어 집합 구조(Instruction Set Architecture)를 알아야 한다. PC와 서버, 모바일 등에서 많이 사용되고 있는 ARM 중에서 64비트를 지원하는 AArch64(ARMv8)의 명령어 구조를 분석하여 효율적인 바이너리 분석의 기반을 마련하고자 한다.

Keywords