IDA(The Interactive Disassembler)
디스어셈블러로 디스어셈블 외 디버깅과 아키텍쳐 디컴파일 등 여러 기능을 제공함.
설치 사이트 :https://hex-rays.com/ida-free/
IDA Free
IDA Free The free binary code analysis tool to kickstart your reverse engineering experience.
hex-rays.com
IDA 구성
Functions window
IDA에서 분석한 프로그램의 함수 나열. ctrl+F로 원하는 함수 찾기.
Graph overview
함수를 그래프화하여 사용자에게 보여줌. 함수의 흐름 파악.
Output window
분석과정을 메시지로 출력. IDA의 분석 과정 파악.
View
디컴파일 결과, hex-view, 구조체 목록 등 화면 표시
IDA 기능
임의 주소 및 레이블 이동
G - 임의 주소 또는 레이블 이동
함수 및 변수 이름 재설정
N - 함수 및 변수 이름 재설정
Cross reference(Xref)
X - 해당 함수 및 변수가 사용되는 영역 재참조
함수 및 변수 타입 변경
Y - 함수 및 변수의 타입 지정
Strings
shift + F12 - 바이너리에서 사용하는 모든 문자열을 조회할 수 있음.
Decompile
IDA에서 제공하는 가장 강렬한 기능. 어셈블리를 c언어 형태로 변환하여 보여줌
정적분석
파일열기
main 함수 찾기
정적분석은 주로 main 함수를 찾고 이를 분석하며 시작함.
프로그램 시작점인 진입점(Entry Point, EP)부터 분석을 시작하여 함수를 찾거나,
대상 함수의 특성이나 프로그램의 여러 외적인 정보를 이용하여 탐색함.
문자열 검색
상호 참조(Cross Reference, XRef)
main 함수 분석
* Stream(스트림)은 데이터가 조금씩 흘러들어온다는 의미로 데이터는 스트림의 형식이며 한 프로세스에서 다른 프로세스나 파일 등으로 이동한다.
동적 분석
중단점 설정(Break Point, f2) 및 실행(Run, f9)
한단계 실행(Step Over, f8)
함수 내부로 진입하기(step into, f7)
Appendix, 실행 중인 프로세스 조작하기
'정리 > Reversing' 카테고리의 다른 글
[Reversing] 메모리 레이아웃 (0) | 2023.07.08 |
---|---|
[Reversing] 리버싱, 바이너리, 정적분석과 동적분석 (0) | 2023.07.02 |
댓글