본문 바로가기
프로그래밍/해킹

IDA 사용법

by 만디기 2024. 8. 3.

- Hex-Rays SA에서 개발하여 판매중인 상용 디스어셈블러로, 주로 리버스 엔지니어링을 위한 디버거로 이용된다.

(https://namu.wiki/w/IDA)

 

- IDA 공식 문서

 

▶ 단축키 & Tips

- Functions Window 창의 "start" 가 프로그램이 시작될 때, 메모리에 올라올 때 제일 처음 실행되는 진입점이라고 보면 된다.

- BreakPoint(F2): 중단점을 설정한다. 프로그램이 해당 지점에 도달하는 순간 정지한다.

- Restart(Ctrl + F2): 디버깅을 중단한다.

- Run(F9): 프로그램을 계속 실행, 또는 디버깅을 시작한다.

- Step Into(F7): 어셈블리 코드를 한 줄 실행한다. 함수의 호출이라면, 함수 내부로 들어간다.

- Step Over(F8): 어셈블리 코드를 한 줄 실행한다. 함수 내부로는 들어가지 않는다.

- 이름 재설정(n) : 함수, 변수의 이름을 변경한다.

- 숫자-문자 아스키코드 변환(r) : 아스키코드 테이블에 따라 숫자는 문자로, 문자는 숫자로 변환한다.

- Ctrl + F 단축키를 통해 원하는 함수를 찾을 수 있다.

- 단축키 G를 사용해 임의 주소 또는 레이블로 이동할 수 있다.

- 임의의 함수 또는 변수를 클릭하고, 단축키 X를 사용하면 해당 함수 및 변수가 사용되는 영역을 재참조할 수 있다.

- 임의의 함수 또는 변수를 클릭하고, 단축키 Y를 사용하면 해당 함수 및 변수의 타입을 지정할 수 있다. 함수의 경우, 전달되는 매개 변수를 추가하거나, 타입을 변경할 수 있다.

- 단축키 Shift + F12를 사용해 바이너리에서 사용하는 모든 문자열을 조회할 수 있다.

- Edit - Patch Program: 바이너리 패치와 관련된 메뉴가 존재한다. 

- 어셈블리 인스트럭션 패치하기

(1) 대상 함수로 이동하고 원하는 인스트럭션에 커서를 올린 후 Edit - Patch Program - Assemble... 메뉴를 클릭하면 인스트럭션을 입력할 수 있는 창이 표시된다.

(2) 원하는 인스트럭션을 입력한다.

(3) 패치한 내용을 실제 바이너리에 적용하기 위해 Edit - Patch Program - Apply patches to input file... 메뉴를 클릭한다. 적용 창에서 아무것도 변경하지 않고 OK를 누르면 바이너리 패치가 실제 파일에 적용된다.

 

▶ Functions window

- IDA에서 분석한 프로그램의 함수를 나열하는 창이며, 해당 창에서 Ctrl + F 단축키를 통해 원하는 함수를 찾을 수 있다.

 

 

Grape overview

- 함수를 그래프화하여 사용자에게 보여준다. 해당 창을 통해 함수의 흐름을 파악할 수 있다.

 

 

 Output window

- 분석 과정을 메시지로 출력한다. 해당 창을 통해 IDA의 분석 과정을 알 수 있다.

 

 

 View

- 디컴파일 결과, Hex-View, 구조체 목록 등의 화면을 표시한다.

 

 

 임의 주소 및 레이블 이동

- 단축키 G를 사용해 임의 주소 또는 레이블로 이동할 수 있다.

 

 

 함수 및 변수 이름 재설정

- 단축키 N을 사용해 함수 및 변수 이름을 재설정할 수 있다.

- 정의되지 않은 함수 및 변수의 경우 해당 기능을 통해 이름을 설정하여 분석 속도를 향상시킬 수 있다.

 

 

 Cross reference (Xref)

임의의 함수 또는 변수를 클릭하고, 단축키 X를 사용하면 해당 함수 및 변수가 사용되는 영역을 재참조할 수 있다.

 

 

 함수 및 변수 타입 변경

- 임의의 함수 또는 변수를 클릭하고, 단축키 Y를 사용하면 해당 함수 및 변수의 타입을 지정할 수 있다.

- 함수의 경우, 전달되는 매개 변수를 추가하거나, 타입을 변경할 수 있다.

 

 

 Strings

- 단축키 Shift + F12를 사용해 바이너리에서 사용하는 모든 문자열을 조회할 수 있다.

- 함수의 심볼이 존재하지 않거나, 복잡할 경우 문자열을 통해 분석 시간을 크게 단축할 수 있다.

 

 

 Decompile

- IDA에서 제공하는 가장 강력한 기능으로, 어셈블리를 C 언어 형태로 변환하여 보여준다.

 

'프로그래밍 > 해킹' 카테고리의 다른 글

PLT / GOT / libc database  (0) 2024.08.15
Ghidra 사용법  (0) 2024.08.03
XSS Filtering Bypass 실습 문제  (0) 2024.07.22
XSS Filtering Bypass  (0) 2024.07.20
File Vulnerability Advanced for linux & Apache htaccess  (0) 2024.07.20