디스어셈블러
IT 위키
더 많은 작업
디스어셈블러(Disassembler, 역어셈블러)는 기계어로 된 실행 파일을 사람이 읽을 수 있는 어셈블리 명령어로 되돌려 보여 주는 프로그램이다. 이 작업을 디스어셈블(역어셈블)이라 한다.
- 선형 스윕(Linear Sweep) : 코드 영역의 처음부터 끝까지 명령어를 차례로 해석한다. 단순하지만 코드 사이에 끼운 데이터를 명령어로 잘못 읽는다
- 재귀 하강(Recursive Traversal) : 분기·호출을 따라가며 실제로 실행될 경로만 해석한다. 데이터 오인은 줄지만 간접 점프의 목적지를 놓칠 수 있다
대표적인 도구로 IDA, Ghidra, objdump, radare2 가 있다. 많은 도구가 디스어셈블과 디컴파일을 함께 한다.