
IDA 플러그인으로, 휴리스틱 분석과 지배자 트리 시각화를 사용하여 바이너리에서 난독화된 코드와 제어 흐름 평탄화를 자동으로 탐지합니다.
작성자: mcdulltii
자동으로 난독화된 코드 및 기타 상태 머신 탐지
바이너리에서 난독화된 코드와 상태 머신을 자동으로 탐지하는 스크립트입니다.
구현은 IDA 7.4+ (Python3)를 기반으로 합니다. Binary Ninja 구현에 대한 자세한 내용은 다음 블로그 게시물을 참조하세요:
휴리스틱 값은 위 블로그 게시물을 기반으로 생성되며, (All Functions 모드에서 실행 시) 휴리스틱 복잡성에 따라 위에서 아래로 정렬됩니다.
바이너리 내에서 발견된 모든 함수의 지배자 트리를 플로팅하는 재귀적 특성으로 인해 구현 및 런타임 오버헤드가 크지만, 스레딩이 구현되었습니다.
PyQt를 사용하여 플러그인을 시각화하면 사용자가 바이너리에서 휴리스틱 함수 분석을 추가로 사용자 정의할 수 있습니다.
PyQt5
obfDetect 디렉터리와 obfDetect.py를 IDA Plugins 디렉터리에 복사합니다.
IDA가 바이너리 로딩을 성공적으로 완료하면 스크립트가 IDC/Python 콘솔에 배너를 출력합니다.
스크립트는 아래와 같이 File 도구 모음을 통해 실행할 수 있습니다. 또는 Ctrl-Shift-H를 사용합니다.

출력 테이블의 함수 이름은 n을 사용하여 이름을 바꿀 수 있으며, 그러면 해당 함수 주소로 지정된 IDA의 함수 이름이 업데이트됩니다.
내보내기 파일 이름 입력 상자를 클릭하면 파일 선택 팝업이 열리며, 사용자 정의 저장 위치로 이동할 수 있습니다.
Run 버튼을 클릭하여 분석 시작Export filename 입력 상자를 클릭하여 내보내기 위치를 선택하고, Export 버튼을 클릭하여 테이블을 csv 형식으로 내보냅니다.

