본문 바로가기

IDA

IDA Python 특정 함수 디스어셈블링

반응형

IDA Python 특정 함수 디스어셈블링


주소를 받아 주소에 해당하는 어셈블리 명령어를 반환받는 함수는 idc.GetDisasm() 함수이다.

( idc 모듈의 GetDisasm 함수 검색 )


간단하게 확인해보자.


현재 커서의 위치를 반환하는 here() 함수를 호출하여 그 위치의 어셈블리 명령어를 확인해 보자.


스크립트 작성.


실행 결과

ida에서 본 어셈블리 명령어와 동일하게 잘 나온다. ==> 잘 됨 !


그렇다면 자동화를 한다고 생각해보자. 코드를 훑다가 내가 원하는 구문, 상황이 나왔을 때 명령어가 속한 함수 전체를 디스어셈블링 해서 출력하도록 할 수도 있다.


//쭉 훑으며 원하는 상황, 구문 검사 루틴 대신 지금은 here()로 대체하고

//특정 함수 디스어셈블링이 잘 되는지 확인.


ea = here()

func = idaapi.get_func(ea)


start = func.startEA

end = func.endEA

while start <= end:

print hex(start), idc.GetDisasm(start)

start = idc.NextHead(start,end)




반응형

'IDA' 카테고리의 다른 글

IDA Python 함수 타입  (0) 2019.02.21
IDA Python 피연산자 타입 확인  (0) 2019.02.21
IDA Python 함수 찾아보는 방법  (0) 2019.02.21
IDA Script Python 세그먼트, 함수 목록 출력  (0) 2019.02.21
LOBYTE, BYTE1, BYTE2, BTYE3, HIBYTE  (0) 2018.09.13