본문 바로가기
정리/Reversing

[Reversing] IDA 설치

by 멘멘 2023. 7. 23.

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)부터 분석을 시작하여 함수를 찾거나,

대상 함수의 특성이나 프로그램의 여러 외적인 정보를 이용하여 탐색함.

 

문자열 검색

shift + f12를 누르고 hello world 문자열을 찾는다.

 

상호 참조(Cross Reference, XRef)

x키를 누르면 xrefs창이 나타난다.

 

다음과 같이 main 함수를 찾을 수 있다.

main 함수 분석

f5를 눌러 디컴파일하였다.

* Stream(스트림)은 데이터가 조금씩 흘러들어온다는 의미로 데이터는 스트림의 형식이며 한 프로세스에서 다른 프로세스나 파일 등으로 이동한다.

 

동적 분석

중단점 설정(Break Point, f2) 및 실행(Run, f9)

f2를 눌러 중단점을 설정한다
f9를 눌러 실행한다

 

한단계 실행(Step Over, f8)

f8을 눌러 한단계씩 실행한다

함수 내부로 진입하기(step into, f7)

f7을 눌러 print함수 내부로 들어간다.

 Appendix, 실행 중인 프로세스 조작하기

delay 시간 변경

댓글