기드라 설치
- 윈도우 7/10(64비트), 리눅스(64비트), 맥OS 10.8.3 이후 지원
- 메모리는 4GB 이상에 1GB 이상의 빈 스토리지 최소 요건 지원
- 기드라 버전에 맞는 자바 JDK 다운로드
기드라 실행
- 기드라 실행 → 분석 시 프로젝트 선택(상단 메뉴 바에 FIle → New Project)
- 보통은 Non-Shared Project 선택, Shared Project 이용시에는 기드라 서버 필요
- File import하면 옵션 화면 표시되고, 자동으로 프로그램 포맷이나 언어 선택
- 파일 포맷 인식 못할땐 Raw Binary가 선택됨
- PE, ELF, Mach-O 포맷, DEX 포맷이나 자바 클래스 파일에도 대응함
- 임포트 후 요약 결과 표시, 데이터 구조 분석이 가능하게 됨
- 기본 설정으로도 분석 가능하나 32비트 PE 포맷 실행파일을 분석하는 경우에는, WIndowsPE x86 Propagate External Parameters 체크 박스 실행해서 분석옵션 추가
- CodeBrowser
- Program tree - 프로그램 구조 분석하여 Fragment 단위로 분할해 표시. PE 형식 파일은 헤더나 섹션으로 분할됨
- Symbol Tree : 프로그램 내 심벌 정보 표시
- Data Type Manager : 프로그램 내 데이터형에 관한 정보 표시
- Listing: 프로그램 디스어셈블 결과 표시
- Decompile : 디스어셈블한 프로그램을 C언어로 디컴파일한 결과 표시
- Console : Ghidra Script 및 Ghidra Extension 출력 표시
- 설정 : Edit → Tool Options
- Listing FIeld → Cursor Text Highlight로 문자열 강조 설정 가능
- Key Binding - 자주 사용하는 항목은 사용하기 쉬운 키 항목으로..
- Previous Data Type in → History 창에서 이전 커서 있던 위치로 돌아감 → esc 설정
- Find Reference to → 리스팅 창에서 대상 주소 참조하는 주소 일람 표시
- FInd Reference to symbol - Decompile 창에서 대상 주소를 참조하는 주소 일람 표시
- 디스어셈블한 어세믑ㄹ리 언어의 행간을 읽기 쉽게 하기 위해 1행 표시할려면, Listing FIelds에서 BYtes Field의 Maximum Lines to DIsplay를 1로 변경함.
- 디컴파일 창의 코멘트는 리스팅 창에 비해 기본적으로 적게 표시되기에 Decompiler - Display에서 Display EOL Comments, Display POST Comments 필요 → 분석 중 입력 코멘트도 디컴파일 창에서 확인 가능
- Listing 창 :
- 주소(Address) : 기드라가 프로그램을 읽고 메모리에 로드되는 가상주소값 표시
- 바이트(byte) : 디스어셈블한 명령과 대응되는 헥스 코드 바이트 열 표시
- 어셈블리어(Assembler language) : 어셈블리 명령어 표시, 오퍼 코드라고 함
- XREF : 함수 및 데이터 영역 참조원 표시 → 클릭하면 references로 점프 가능, [] 안에는 피참조수 표시
- 함수 정보 : 함수 이름, 인수 정보는 함수 선두 표시
- 문자열 : 기드라는 단순히 오퍼랜드 표시하는 것이 아닌, 라벨이나 호출하는 API 등 오퍼랜드가 가리키는 곳의 값이나 문자열 등 정보 표시 가능