
더 나은 코드 탐색을 위한 Hex-Rays Decompiler 플러그인
| | | / __| | / _ \ / _ |/ _ / | ' | |/ _ | '/ _ \ '|
| | | | __/> <| |\ \ (| | || __ \ _/\ () | (| | __/ /^\ \ |) | | () | | | __/ |RE 과정에서 더 나은 코드 탐색을 위한 Hex-Rays 디컴파일러 플러그인입니다. CodeXplorer는 C++ 애플리케이션이나 Stuxnet, Flame, Equation, Animal Farm과 같은 현대 악성코드의 코드 재구성을 자동화합니다. :octocat:
CodeXplorer 플러그인은 처음으로 공개된 Hex-Rays 디컴파일러 플러그인 중 하나입니다. 우리는 2013년 여름부터 이 프로젝트를 계속 업데이트하고 있으며 새로운 기능을 자주 추가하고 있습니다. 또한 CodeXplorer의 가장 흥미로운 기능들은 REcon, ZeroNights, H2HC, NSEC, BHUS 등 여러 보안 컨퍼런스에서 발표되었습니다. 👾
기여자:
Alex Matrosov (@matrosov)
Eugene Rodionov (@rodionov)
Rodrigo Branco (@rrbranco)
Gabriel Barbosa (@gabrielnb)
지원되는 Hex-Rays 제품 버전: 항상 최신 버전의 IDA와 디컴파일러에 초점을 맞춥니다. 새로운 SDK 릴리스의 흥미로운 기능을 활용하려고 하기 때문입니다. 또한 최신 버전에서만 테스트했으며 이전 버전에서는 안정적인 작동을 보장하지 않음을 의미합니다.
왜 IdaPython이 아닌가: 모든 코드는 C/C++로 개발되었습니다. Hex-Rays 디컴파일러를 위한 복잡한 플러그인을 지원하는 더 안정적인 방법이기 때문입니다.
지원 플랫폼: Win, Linux, Mac에서 x86/x64.
HexRaysCodeXplorer - 더 쉬운 코드 탐색을 위한 Hex-Rays 디컴파일러 플러그인입니다. 의사 코드 창의 오른쪽 클릭 컨텍스트 메뉴에 CodeXplorer 플러그인 명령이 표시됩니다:

💎 다음은 CodeXplorer 플러그인의 주요 기능입니다: 💎

The reconstructed structure is displayed in “Output window”. Detailed information about type Reconstruction feature is provided in the blog post “Type REconstruction in HexRaysCodeXplorer”.
Also CodeXplorer plugin supports auto REconstruction type into IDA local types storage.

struct_local_data_storage를 재구성하는 동안 두 개의 가상 함수 테이블이 식별되었고, 결과적으로 struct_local_data_storage_VTABLE_0 및 struct_local_data_storage_VTABLE_4라는 두 개의 해당 구조체가 생성되었습니다.



타입을 파일로 추출 - 모든 타입 정보(재구성된 타입 포함)를 파일로 덤프합니다.
의사 코드 창에서 가상 함수 호출 탐색 - C-구조체로 C++ 객체를 표현한 후 이 기능은 가상 함수 호출을 구조체 필드로 마우스 클릭하여 탐색할 수 있게 합니다:



객체 탐색기는 다음 기능을 지원합니다:
IDA 로컬 타입에 대한 VTBL의 자동 구조체 생성
가상 테이블 목록 탐색 및 클릭 시 "IDA 보기" 창에서 VTBL 주소로 점프
가상 테이블 목록의 현재 위치에 대한 힌트 표시
"VTBL에 대한 XREFS 표시" 메뉴 클릭 시 상호 참조 목록 표시


일괄 처리 모드에는 다음 기능이 포함됩니다:
예시 ("crypto_" 접두사가 있는 함수에 대한 타입 및 ctree 덤프):
idaq.exe -OHexRaysCodeXplorer:dump_types:dump_ctrees:CRYPTOcrypto_path_to_idb
컴파일:
Windows:
src/HexRaysCodeXplorer/PropertySheet.props 파일을 메모장(++)으로 열고 IDADIR 및 IDASDK 경로 값을 각각 IDA 설치 경로와 IDA7 SDK 경로로 업데이트합니다. HexRays SDK는 $IDADIR\plugins\hexrays_sdk에 있어야 합니다 (기본값과 같이)Release | x64 및 Release x64 | x64 구성 빌드Linux:
Mac:
.pmc 파일 확장자는 .dylib이어야 합니다.export IDA_DIR="/Applications/IDA\ Pro\ 7.0/ida.app/Contents/MacOS" && export IDA_SDK="/Applications/IDA\ Pro\ 7.0/ida.app/Contents/MacOS/idasdk" && make -f makefile7.macHexRaysCodeXplorer.xcodeproj 프로젝트 열기CMake 사용:
============================================================================
CodeXplorer 플러그인 관련 컨퍼런스 발표: