리버싱/IDAPython
IDAPython Enums(열거형) 관련 API 함수 및 예제
1q
2018. 1. 6. 23:31
# Enum은 열거형이라고 불리며, 서로 연관된 상수들의 집합을 의미하고 정수형 상수에 이름을 붙여서 코드를 이해하기 쉽게 해준다.
# 스크립트
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | AddEnum(0, "ex_enum", idaapi.hexflag()) # enum 추가 enumeration = GetEnum("ex_enum") # 추가한 enum 중에 이름이 ex_enum인 것을 가져옴 AddConstEx(enumeration, 'data', 1000, -1) # 추가한 enum("ex_enum")에 { name : data, value: 1000 } 값 생성 Enum_id = GetnEnum(0) # 0 번째 Enum의 id를 가져옴 enum_constant = GetFirstConst(Enum_id, -1) # 첫 번째 구조체의 값을 GetNextConst(Enum_id, enum_constant ,-1) # 다음 구조체의 값을 가져옴 name = GetConstName(GetConstEx(Enum_id, enum_constant, 0, -1)) # 첫 번째 구조체의 이름을 가져옴 print Enum_id, enum_constant, name | cs |
# 스크립트 실행 후 IDA 내부의 Enums 창
# 스크립트 실행 후 로그 창