프로젝트 소개
unidbg는 Android 네이티브 라이브러리(ELF)와 iOS 바이너리(Mach-O)를 에뮬레이션하도록 설계된 오픈소스 Java 기반 프로젝트입니다. 주로 모바일 애플리케이션의 보안 연구, 리버스 엔지니어링, 동적 분석에 사용됩니다.
주요 기능은 다음과 같습니다:
- **아키텍처 지원**: ARM32 및 ARM64 바이너리 코드를 에뮬레이션합니다.
- **다중 백엔드**: Unicorn, dynarmic, Apple M1 하이퍼바이저(macOS에서 빠른 ARM64 에뮬레이션용), Raspberry Pi의 Linux KVM을 지원합니다.
- **AI 지원 디버깅(MCP)**: Model Context Protocol(MCP)을 통합하여 Cursor와 같은 AI 도구가 에뮬레이션 중 레지스터, 메모리, 디스어셈블리를 동적으로 검사하고, 중단점을 설정하고, 명령어를 추적하고, 네이티브 함수를 호출할 수 있게 합니다.
- **후킹 지원**: Dobby를 통한 인라인 후킹, xHook을 통한 Android 임포트 후킹, fishhook, substrate, whale을 통한 iOS 후킹을 통합합니다.
- **JNI 에뮬레이션**: JNI Invocation API, JavaVM, JNIEnv를 지원하여 JNI_OnLoad 실행을 허용합니다.
- **메모리 누수 감지**: 게스트 메모리 할당을 추적하고 게스트 ARM 백트레이스와 호스트 Java 스택 트레이스가 포함된 보고서를 생성합니다.
- **작업자 풀**: 동시 작업 처리 중 리소스 초기화 오버헤드를 줄이기 위한 스레드 안전 에뮬레이터 풀을 제공합니다.
- **디버깅 및 추적**: 콘솔 디버거, GDB 스텁, 명령어 추적, 메모리 읽기/쓰기 추적 기능을 제공합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.