Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
uEmu — Pequeño y bonito plugin emulador para IDA basado en unicorn. | Kitploit
Herramientas/GitHubGitHub/alexhude/uemu
Seguridad de Sistemas EmbebidosAnálisis Dinámico (Sandboxing)Ingeniería InversaDepuradoresAnálisis de BinariosAnálisis de Firmware
GitHubalexhude/uemu

uEmu

Pequeño y bonito plugin emulador para IDA basado en unicorn.

Ver Repositorio
1.2k183hace 20h 21mRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Resumen

uEmu es un pequeño y lindo plugin de emulación para IDA basado en unicorn engine.

Admite las siguientes arquitecturas de forma nativa: x86, x64, ARM, ARM64, MIPS, MIPS64

¿Para qué es bueno?

  • Emular código bare metal (bootloaders, firmware embebido, etc.)
  • Emular funciones independientes

¿Para qué es malo?

  • Emular código complejo de SO (bibliotecas dinámicas, procesos, etc.)
  • Emular código con muchas syscalls

¿Qué se puede mejorar?

  • Encontrar una forma de emular el acceso a registros específicos del proveedor (como MSR S3_x, X0 para ARM64)
  • Agregar más registros para rastrear

Instalación

  • Configurar IDAPython mediante idapyswitch
  • brew install unicorn para instalar los binarios de Unicorn
  • pip install unicorn para instalar los bindings de Python de Unicorn
  • Usar File / Script file... o ALT+F7 en IDA para cargar uEmu.py

Opcionalmente, uEmu se puede cargar automáticamente como un plugin de IDA. En ese caso, colócalo en la carpeta [IDA]/Plugins y cambia USE_AS_SCRIPT a False dentro de uEmu.py

Características

Menú emergente

  • El comando Start inicializa el emulador mapeando todos los segmentos y configurando Unicorn
  • El comando Run emula instrucciones hasta que se alcanza un punto de interrupción o se produce un error
  • Step emula una o N instrucciones (mantén presionado ALT/OPTION para especificar un número)
  • Stop interrumpe la emulación
  • Reset reinicia el motor de emulación y desmapea todas las regiones de memoria
  • Jump To PC simplemente salta al PC actual
  • Set PC mueve el PC al cursor
  • Es posible Actualizar el contexto de la CPU manualmente o mediante un archivo JSON (ver más abajo)
  • Show Controls muestra una ventana con los botones Start/Run/Step/Stop
  • Show CPU Context muestra una ventana con los registros disponibles
  • Show CPU Extended Context muestra una ventana con los registros extendidos (FP/SIMD)
  • Show Stack muestra una ventana con la pila actual
  • Show Memory Range permite mostrar una región de memoria específica

Start

Iniciar la emulación desde el cursor. Es necesario proporcionar primero el contexto inicial de la CPU (consulta Actualizar contexto de la CPU). Después, todos los segmentos de la base de datos de IDA se mapearán en el emulador (los datos inicializados también se copiarán).

Run

Ejecutar código hasta que se alcance un punto de interrupción de código o memoria, o se produzca un evento que requiera acción del usuario.

Step

Realizar una ejecución de un solo paso. Mantén presionado ALT/OPTION para especificar el número de pasos a realizar.

Stop

Cuando la emulación está en progreso, este comando se puede usar para interrumpir la ejecución.

Reset

Reinicia la instancia del emulador y desmapea todas las regiones de memoria.

Puntos de interrupción

Puedes usar los puntos de interrupción de IDA para indicar ubicaciones donde se debe interrumpir la emulación. Esto incluye puntos de interrupción de código y de memoria. Generalmente se usa junto con el comando Run.

Acciones en tiempo de ejecución

Memoria no mapeada

Cuando el emulador necesita acceder a memoria que aún no está mapeada, el plugin mostrará el siguiente diálogo.

  • Presiona SÍ para proporcionar un volcado de memoria que se cargará en la memoria.

  • Presiona NO para mapear una página vacía (0x1000) llena de ceros
  • Presiona Cancelar para detener la emulación

Instrucciones desconocidas

Cuando el emulador se encuentra con una instrucción desconocida, es posible saltarla y restaurar manualmente el contexto de la CPU.

Vistas

Controles

Simplemente un panel para controlar la ejecución.

CPU Context

Contexto actual de la CPU.

Cada vez que la emulación se detiene, los registros modificados se resaltarán. Los registros se pueden mostrar en 1, 2 o 3 columnas a través del menú emergente.

Es posible actualizar el contexto de la CPU a través del menú emergente (ver más abajo).

CPU Extended Context

Contexto extendido actual de la CPU.

Cada vez que la emulación se detiene, los registros modificados se resaltarán. Los registros se pueden mostrar en 1, 2 o 3 columnas a través del menú emergente.

Es posible actualizar el contexto de la CPU a través del menú emergente (ver más abajo).

Memoria

Usa esta vista para observar regiones de memoria para una dirección y tamaño especificados. Se mostrará un comentario en el título por conveniencia.

Cada vez que la emulación se detiene, los bloques de memoria modificados se resaltarán.

Actualizar contexto de la CPU

Los valores de los registros se pueden cambiar individualmente o todos a la vez con un archivo JSON a través del menú emergente. El contexto actual también se puede guardar en un archivo JSON para uso futuro.

Menú principal del plugin

Además de todas las funciones listadas en el Menú Emergente, hay un par de comandos nuevos.

Show Mapped Memory

Muestra todas las regiones mapeadas. Usa el menú emergente para mostrar la memoria de una región en particular o volcarla a un archivo.

Fetch Segments

Este comando intenta sincronizar los segmentos de IDA con la memoria mapeada creando nuevos mapeos o fusionándolos con los existentes si es posible. Esto ayuda a agregar nuevos segmentos de IDA al emulador en tiempo de ejecución sin reiniciar el emulador.

Load Project

Cargar el estado de uEmu desde un archivo.

Save Project

Guardar el estado de uEmu en un archivo. Ten en cuenta que solo se guardan los registros definidos en el plugin.

Configuración

  • Follow PC desplaza la vista de IDA al PC actual durante la emulación
  • Convert to Code automatically convierte automáticamente si los datos de IDA bajo el cursor no son código
  • Trace instructions imprime cada instrucción que el emulador está ejecutando
  • Lazy mapping agrega páginas bajo demanda en lugar de mapear todas las regiones existentes al inicio

Extensiones

También es posible agregar nueva funcionalidad o construir tu proyecto sobre uEmu usando el sistema de extensiones.
Encuentra la descripción con un ejemplo aquí

  • crauEmu - extensión para desarrollar y analizar payloads para ataques de reutilización de código.
Descargar herramienta