
IDA를 위한 unicorn 기반의 작고 귀여운 에뮬레이터 플러그인.
uEmu는 유니콘 엔진 기반의 IDA용 작고 귀여운 에뮬레이터 플러그인입니다.
기본적으로 다음 아키텍처를 지원합니다: x86, x64, ARM, ARM64, MIPS, MIPS64

MSR S3_x, X0)을 에뮬레이션하는 방법 찾기idapyswitch를 통해 IDAPython 구성brew install unicorn 실행pip install unicorn 실행File / Script file... 또는 ALT+F7을 사용하여 uEmu.py 로드선택적으로 uEmu를 IDA 플러그인으로 자동 로드할 수 있습니다. 이 경우 [IDA]/Plugins 폴더에 넣고 uEmu.py 내에서 USE_AS_SCRIPT를 False로 변경하세요.

ALT/OPTION을 누르면 개수 지정 가능).커서에서 에뮬레이션을 시작합니다. 먼저 초기 CPU 컨텍스트를 제공해야 합니다 (CPU 컨텍스트 업데이트 참조). 그 후 IDA 데이터베이스의 모든 세그먼트가 에뮬레이터에 매핑됩니다 (초기화된 데이터도 복사됩니다).
코드 또는 메모리 중단점에 도달하거나 사용자 작업이 필요한 이벤트가 발생할 때까지 코드를 실행합니다.
단일 단계 실행을 수행합니다. ALT/OPTION을 누르면 수행할 단계 수를 지정할 수 있습니다.

에뮬레이션이 진행 중일 때 이 명령을 사용하여 실행을 중단할 수 있습니다.
에뮬레이터 인스턴스를 재설정하고 모든 메모리 영역을 매핑 해제합니다.
IDA 중단점을 사용하여 에뮬레이션이 중단되어야 할 위치를 지정할 수 있습니다. 코드 및 메모리 중단점을 포함합니다. 일반적으로 실행 명령과 함께 사용됩니다.
에뮬레이터가 아직 매핑되지 않은 메모리에 접근해야 할 때 플러그인이 다음 대화 상자를 표시합니다.


에뮬레이터가 알 수 없는 명령어를 만나면 건너뛰고 CPU 컨텍스트를 수동으로 복원할 수 있습니다.

실행을 제어하는 패널입니다.

현재 CPU 컨텍스트.

에뮬레이션이 중지될 때마다 변경된 레지스터가 강조 표시됩니다. 팝업 메뉴를 통해 레지스터를 1, 2 또는 3열로 표시할 수 있습니다.
팝업 메뉴를 통해 CPU 컨텍스트를 업데이트할 수 있습니다 (아래 참조).
현재 CPU 확장 컨텍스트.

에뮬레이션이 중지될 때마다 변경된 레지스터가 강조 표시됩니다. 팝업 메뉴를 통해 레지스터를 1, 2 또는 3열로 표시할 수 있습니다.
팝업 메뉴를 통해 CPU 컨텍스트를 업데이트할 수 있습니다 (아래 참조).
이 보기를 사용하여 지정된 주소와 크기에 대한 메모리 영역을 관찰합니다. 편의를 위해 제목에 주석이 표시됩니다.

에뮬레이션이 중지될 때마다 변경된 메모리 블록이 강조 표시됩니다.

레지스터 값은 개별적으로 또는 팝업 메뉴를 통해 JSON 파일로 한 번에 변경할 수 있습니다. 현재 컨텍스트는 나중에 사용하기 위해 JSON 파일로 저장할 수도 있습니다.



팝업 메뉴에 나열된 모든 기능 외에도 몇 가지 새로운 명령이 있습니다.

매핑된 모든 영역을 표시합니다. 팝업 메뉴를 사용하여 특정 영역의 메모리를 표시하거나 파일로 덤프합니다.

이 명령은 가능한 경우 새 매핑을 생성하거나 기존 매핑과 병합하여 IDA 세그먼트를 매핑된 메모리와 동기화하려고 시도합니다. 이는 에뮬레이터를 다시 시작하지 않고 런타임에 새 IDA 세그먼트를 에뮬레이터에 추가하는 데 도움이 됩니다.
파일에서 uEmu 상태를 로드합니다.
uEmu 상태를 파일로 저장합니다. 플러그인에 정의된 레지스터만 저장됩니다.

uEmu 위에 확장 시스템을 사용하여 새로운 기능을 추가하거나 프로젝트를 구축할 수도 있습니다.
예제와 설명은 여기에서 확인하세요.