Study/IDA

IDAPython API 정리

대장흰둥 2021. 1. 12. 17:07

1. 주소 리턴

 

Idc.here(), idc.ScreenEA() : 현재 위치의 주소를 리턴해 준다

 

Idc.MinEA(), idc.MaxEA() : 최대, 최소 주소를 리턴해 준다

2. 세그먼트 값 리턴

 

Idc.SegName(주소), idc.SegStart(주소), idc.SegEnd(주소): 주소에 대한 세그먼트 이름,시작, 마지막 주소 리턴

3. 함수 정보 리턴

 

Idc.GetFunctionName(주소) : 입력 주소의 함수 이름을 리턴

Idautils.Functions(시작 주소, 마지막 주소) : 함수 목록을 리스트 형태로 리턴

Funcltems (주소) : 지정한 함수 주소에서 모든 주소를 리턴해 준다, 리턴 값이 iterator 이다

Names : 이름을 가지고 있는 주소를 리턴해 준다, 리턴 값이 iterator 형태이다

CodeRefsTo (주소, 0/1) : 주소를 참조하는 곳을 iterator 형태로 리턴해 준다

0 1False True 를 가리킨다

XrefsTo : CodeRefsTo와 비슷하지만 type 값을 확인 해 줄 수 있다

Xref.type : xrefs type value 를 출력해 준다

Xref.iscode : 참조된 주소가 코드 세그먼트에 존재하면 1 를 리턴한다

Xref type value

0 = Data_Unknown

1 = Data_Offset

2 = Data_Write

3 = Data_Read

4 = Data_Text

5 = Data_information

16 = Code_Far_Call

17 = Code_Near_Call

18 = Code_Far_Call

19 = Code_Nead_Jump

20 = Code_User

21 = Ordinary Flow

 

CodeRefsFrom(주소, 0/1) : 주소가 정의된 곳을 참조 해 준다

0 1 False True 를 가리킨다

 

4. 어셈블리 코드 리턴

5. 명령 주소 리턴

Idc.NextHead(주소) : 해당 주소의 다음 명령 주소를 리턴

Idc.PrevHead(주소) : 해당 주소의 이전 명령 주소를 리턴

 

6. 플래그 값 리턴

Idc.GetFunctionFlags(주소) : 주소의 플래그 값을 리턴

FUNC_NORET(0X00000001) : 리턴 명령을 수행하지 않는 함수를 가리킨다

FUNC_LIB (0X00000004) : 라이브러리 함수를 가리킨다

FUNC_STATIC (0X00000008) : 정적 함수로 컴파일된 함수를 가리킨다

FUNC_FRAME (0X00000010) : 프레임 포인터를 사용하는 함수를 가리킨다

FUNC_TUNK : 점프 함수인 TUNK 를 식별하는 데 사용된다

 

7. 명령어 리턴

GetMnem(주소) : 해당 주소의 명령어를 리턴한다

 

8. 오퍼랜드 리턴

GetOpnd(주소, 숫자) : 주소의 n 번째 오퍼랜드 값을 리턴

GetOpType(주소, 숫자) : 주소의 n 번째 오퍼랜드 타입을 리턴

O_void : 오퍼랜드가 없을 때 0 리턴

O_reg : 오퍼랜드가 일반 레지스터 이면 1을 리턴

O_mem : 오퍼랜드가 직접적으로 메모리를 참조하면 2를 리턴

O_phrase : 오퍼랜드가 인덱스 레지스터로 구성된 경우 3을 리턴

O_displ : 오퍼랜드가 레지스터, 변위값으로 구성된 경우 4를 리턴

O_imm : 두 번째 오퍼랜드의 값이 정수와 같은 값이면 5를 리턴

'Study > IDA' 카테고리의 다른 글

[PyQt4] Example  (0) 2021.03.28
IDA 간단한 팝업창 만들기  (0) 2021.03.22
IDA Python Plugin  (0) 2021.03.11
IDAPython API 정리 2  (0) 2021.01.19