반응형
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 |