
FLARE 팀의 IDA Pro 유틸리티
Code Grafter는 IDA Pro의 Bochs IDB Mode를 사용하여 Windows API 함수를 임포트하는 코드를 에뮬레이션할 수 있게 해주는 IDA Python 스크립트입니다. Bochs IDB 모드와 같은 에뮬레이션 환경은 임포트된 함수를 해석하거나 에뮬레이션하지 않아 특정 코드에서 예외가 발생하고 에뮬레이션을 사용할 수 없게 됩니다. Code Grafter는 opcode와 데이터를 삽입하여 임포트된 Windows API 함수의 작은 부분 집합을 구현함으로써 Windows API 함수의 하위 집합에 대해 이 문제를 해결합니다. Code Grafter는 일반적으로 문자열 디코딩 및 악성코드 언패킹과 관련된 단순한 구현을 가진 함수를 대상으로 합니다. 특히 이러한 종류의 코드에 Bochs IDB 모드를 사용할 수 있으면 리버스 엔지니어링 방지, 서브프로세스 디버깅 등의 문제를 처리할 필요 없이 문자열을 간편하게 디코딩하고 페이로드를 언패킹/덤프할 수 있습니다.
function_replacements.c 파일에는 간단한 문자열 디코딩 및 악성코드 언패킹 루틴과 관련된 여러 함수의 간결한 C 구현이 포함되어 있습니다. 참고용으로 제공됩니다.
function_replacements.c를 컴파일한 후, 관련 함수 opcode는 mykutils.py (flare-ida 저장소의 /python/flare에 위치)의 emit_fnbytes_python()을 사용하여 추출되었습니다. 그런 다음 opcode는 code_grafter.py (역시 /python/flare에 위치)의 함수 구현 라이브러리에 Python 문자열로 추가되었습니다.