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 과 1은 False 와 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 |