[REV] IDA 사용법
IDA (Interactive Disassembler)
IDA는 디스어셈블과 여러 환경에서의 디버깅 및 다양한 아키텍처에서의 디컴파일과 같은 여러가지 기능 제공한다.
바이너리 분석이 필요한 리버스 엔지니어링 업무에서 사용되며 여러가지 라이센스가 있다.
이 중 무료버전인 IDA freeware는 아래 경로에서 다운받을 수 있다. (x64 아키텍처만 디컴파일 기능을 제공)
https://hex-rays.com/ida-free/
IDA 인터페이스
1. Function Window
IDA에서 분석한 프로그램 함수를 보여주며, Ctrl + F 를 통해 원하는 함수 검색이 가능하다.
2. Graph Overview
함수를 그래프화하여 함수의 흐름을 파악할 수 있다.
3. Output Window
IDA의 분석 과정을 메시지로 출력하여 보여준다.
4. View
IDA View, 디컴파일 결과, Hex-View, Structures 등을 보여준다.
IDA 기능
정적 분석 기능
1. 임의 주소 및 레이블 이동
단축키 G : 임의 주소 및 레이블 이동
2. 함수 및 변수 이름 재설정
단축키 N : 함수 및 변수 이름 재설정
3. Cross Reference (Xref)
단축키 X : 함수 및 변수가 사용되는 영역을 재참조
4. 함수 및 변수 타입 변경
단축키 Y : 해당 함수 및 변수의 타입 지정
5. 문자열 (String)
단축키 Shift + F12 : 바이너리에 사용되는 모든 문자열 조회
6. 디컴파일 (Decompile)
단축키 F5 : 어셈블리를 C 언어의 형태로 변환하여 보여줌
동적 분석 기능
[디버깅 실행 전]
1. 디버깅 실행 (Run)
단축키 F9 : 프로그램 디버깅 실행 또는 계속 실행
2. 중단점 설정 (Break Point)
단축키 F2 : 중단점 설정 (해당 지점 도달 시 프로그램 정지)
[디버깅 실행 후]
1. 한 단계 실행 (Step Over)
단축키 F8 : 어셈플리 코드 한줄 실행 (함수 내부 진입 X)
2. 함수 내부 진입 (Step Into)
단축키 F7 : 어셈블리 코드 한줄 실행 (함수 내부 진입 O)
3. 값 변경
단축키 F2 : 변수 값 변경 및 저장
4. 재시작 (Restart)
단축키 Ctrl + F2 : 디버깅 중단
함수 패치 기능
1. 패치할 함수 이동 (단축키 G)
2. 인스트럭션 입력
Edit - Patch Program - Assemble
Instruction 입력 창에 어셈블리어 입력
3. 바이너리 적용
Edit - Patch Program - Apply patch es to input file