Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/alexhude/uemu
Embedded Systems SecurityDynamic Analysis (Sandboxing)Reverse EngineeringDebuggersBinary AnalysisFirmware Analysis
GitHubalexhude/uemu

uEmu

IDA를 위한 unicorn 기반의 작고 귀여운 에뮬레이터 플러그인.

저장소 보기
1.2k183921일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

개요

uEmu는 유니콘 엔진 기반의 IDA용 작고 귀여운 에뮬레이터 플러그인입니다.

기본적으로 다음 아키텍처를 지원합니다: x86, x64, ARM, ARM64, MIPS, MIPS64

무엇에 좋은가?

  • 베어 메탈 코드 (부트로더, 임베디드 펌웨어 등) 에뮬레이션
  • 독립형 함수 에뮬레이션

무엇에 나쁜가?

  • 복잡한 OS 코드 (동적 라이브러리, 프로세스 등) 에뮬레이션
  • 많은 시스템 콜이 있는 코드 에뮬레이션

개선할 점은?

  • 공급업체 특정 레지스터 접근 (예: ARM64의 MSR S3_x, X0)을 에뮬레이션하는 방법 찾기
  • 추적할 레지스터 추가

설치

  • idapyswitch를 통해 IDAPython 구성
  • Unicorn 바이너리 설치를 위해 brew install unicorn 실행
  • Unicorn 파이썬 바인딩 설치를 위해 pip install unicorn 실행
  • IDA에서 File / Script file... 또는 ALT+F7을 사용하여 uEmu.py 로드

선택적으로 uEmu를 IDA 플러그인으로 자동 로드할 수 있습니다. 이 경우 [IDA]/Plugins 폴더에 넣고 uEmu.py 내에서 USE_AS_SCRIPT를 False로 변경하세요.

기능

팝업 메뉴

  • 시작 명령은 모든 세그먼트를 매핑하고 Unicorn을 설정하여 에뮬레이터를 초기화합니다.
  • 실행 명령은 중단점에 도달하거나 오류가 발생할 때까지 명령어를 에뮬레이션합니다.
  • 단계는 하나 또는 N개의 명령어를 에뮬레이션합니다 (ALT/OPTION을 누르면 개수 지정 가능).
  • 중지는 에뮬레이션을 중단합니다.
  • 재설정은 에뮬레이션 엔진을 재설정하고 모든 메모리 영역을 매핑 해제합니다.
  • PC로 이동은 현재 PC로 이동합니다.
  • PC 설정은 PC를 커서로 이동합니다.
  • CPU 컨텍스트 업데이트는 수동으로 또는 JSON 파일을 통해 가능합니다 (아래 참조).
  • 컨트롤 표시는 시작/실행/단계/중지 버튼이 있는 창을 표시합니다.
  • CPU 컨텍스트 표시는 사용 가능한 레지스터가 있는 창을 표시합니다.
  • CPU 확장 컨텍스트 표시는 확장 레지스터(FP/SIMD)가 있는 창을 표시합니다.
  • 스택 표시는 현재 스택이 있는 창을 표시합니다.
  • 메모리 범위 표시는 특정 메모리 영역을 표시할 수 있습니다.

시작

커서에서 에뮬레이션을 시작합니다. 먼저 초기 CPU 컨텍스트를 제공해야 합니다 (CPU 컨텍스트 업데이트 참조). 그 후 IDA 데이터베이스의 모든 세그먼트가 에뮬레이터에 매핑됩니다 (초기화된 데이터도 복사됩니다).

실행

코드 또는 메모리 중단점에 도달하거나 사용자 작업이 필요한 이벤트가 발생할 때까지 코드를 실행합니다.

단계

단일 단계 실행을 수행합니다. ALT/OPTION을 누르면 수행할 단계 수를 지정할 수 있습니다.

중지

에뮬레이션이 진행 중일 때 이 명령을 사용하여 실행을 중단할 수 있습니다.

재설정

에뮬레이터 인스턴스를 재설정하고 모든 메모리 영역을 매핑 해제합니다.

중단점

IDA 중단점을 사용하여 에뮬레이션이 중단되어야 할 위치를 지정할 수 있습니다. 코드 및 메모리 중단점을 포함합니다. 일반적으로 실행 명령과 함께 사용됩니다.

런타임 동작

매핑되지 않은 메모리

에뮬레이터가 아직 매핑되지 않은 메모리에 접근해야 할 때 플러그인이 다음 대화 상자를 표시합니다.

  • 예를 누르면 메모리에 로드할 메모리 덤프를 제공합니다.

  • 아니오를 누르면 0으로 채워진 빈 페이지(0x1000) 하나를 매핑합니다.
  • 취소를 누르면 에뮬레이션이 중지됩니다.

알 수 없는 명령어

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

보기

컨트롤

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

CPU 컨텍스트

현재 CPU 컨텍스트.

에뮬레이션이 중지될 때마다 변경된 레지스터가 강조 표시됩니다. 팝업 메뉴를 통해 레지스터를 1, 2 또는 3열로 표시할 수 있습니다.

팝업 메뉴를 통해 CPU 컨텍스트를 업데이트할 수 있습니다 (아래 참조).

CPU 확장 컨텍스트

현재 CPU 확장 컨텍스트.

에뮬레이션이 중지될 때마다 변경된 레지스터가 강조 표시됩니다. 팝업 메뉴를 통해 레지스터를 1, 2 또는 3열로 표시할 수 있습니다.

팝업 메뉴를 통해 CPU 컨텍스트를 업데이트할 수 있습니다 (아래 참조).

메모리

이 보기를 사용하여 지정된 주소와 크기에 대한 메모리 영역을 관찰합니다. 편의를 위해 제목에 주석이 표시됩니다.

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

CPU 컨텍스트 업데이트

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

주요 플러그인 메뉴

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

매핑된 메모리 표시

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

세그먼트 가져오기

이 명령은 가능한 경우 새 매핑을 생성하거나 기존 매핑과 병합하여 IDA 세그먼트를 매핑된 메모리와 동기화하려고 시도합니다. 이는 에뮬레이터를 다시 시작하지 않고 런타임에 새 IDA 세그먼트를 에뮬레이터에 추가하는 데 도움이 됩니다.

프로젝트 로드

파일에서 uEmu 상태를 로드합니다.

프로젝트 저장

uEmu 상태를 파일로 저장합니다. 플러그인에 정의된 레지스터만 저장됩니다.

설정

  • PC 따라가기 에뮬레이션 중에 IDA 뷰를 현재 PC로 스크롤합니다.
  • 자동으로 코드로 변환 커서 아래 IDA 데이터가 코드가 아닌 경우 변환합니다.
  • 명령어 추적 에뮬레이터가 실행하는 모든 명령어를 출력합니다.
  • 지연 매핑 시작 시 모든 기존 영역을 매핑하는 대신 필요할 때 페이지를 추가합니다.

확장

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

  • crauEmu - 코드 재사용 공격을 위한 페이로드 개발 및 분석 확장
도구 다운로드