
uEmu es un pequeño y precioso complemento de rival para IDA basado en el motor unicornio. Admite las siguientes arquitecturas listas para usar: x86, x64, BRAZO, ARM64, MIPS, MIPS64.
¿Para que sirve?
- Emule código bare metal (cargadores de inicio, firmware integrado, etc.)
- Emule funciones independientes
¿Para qué es MALO?
- Emule código de sistema activo enredado (bibliotecas dinámicas, procesos, etc.)
- Rivalizar código con muchas llamadas al sistema
¿Qué se puede mejorar?
- Encuentre una forma de pugnar el golpe al registro específico del proveedor (como
MSR S3_x, X0
para ARM64) - Unir más registros para realizar un seguimiento
Instalación
brew install unicorn
para instalar binarios de Unicorniopip install unicorn
para instalar enlaces de unicornio python- Usar
File / Script file...
oALT+F7
en IDA para cargar uEmu.py
Opcionalmente uEmu se puede cargar automáticamente como complemento IDA. En este caso póngalo en [IDA]/ Carpeta de complementos y cambio USE_AS_SCRIPT
a False
en el interior uEmu.py
Nota: en Windows, es posible que deba pegar la ruta IDA Pro Qt5
importar
sys sys.path.append (‘D: Soft IDA Pro 7.x python 3 PyQt5’)
Características
Menú emergente

- El comando de inicio inicializa el rival mapeando todos los segmentos y configurando Unicorn
- El comando Ejecutar emula instrucciones hasta que se alcanza el punto de interrupción o se produce un error
- El paso emula una o N instrucción (mantenga
ALT
/OPTION
para especificar un número) - Detener interrumpe la competencia
- Restablecer restablece el motor de competencia y anula la asignación de todas las regiones de memoria
- Jump To PC simplemente salta a la PC contemporáneo
- Es posible poner al día el contexto de la CPU manualmente o mediante un archivo JSON (ver más debajo)
- Mostrar controles muestra la ventana con los recadero Inicio / Ejecutar / Paso / Detener
- Mostrar ventana de visualización de contexto de CPU con registros disponibles
- Mostrar la ventana de visualización de contexto extendido de la CPU con registros extendidos (FP / SIMD)
- Mostrar la ventana de visualización de la pila con la pila contemporáneo
- Mostrar rango de memoria permite mostrar una región de memoria específica
Manifestación
Inicie la competencia desde el cursor. Es necesario proporcionar primero el contexto auténtico de la CPU (ver Desempolvar el contexto de la CPU) Posteriormente de eso, todos los segmentos de la cojín de datos IDA se asignarán al rival (además se copiarán los datos inicializados).
Valer
Ejecute el código hasta que se inteligencia el punto de interrupción del código o la memoria o hasta que haya un evento que requiera la actividad del afortunado.
Paso
Realice una ejecución de un solo paso. Sostener ALT
/OPTION
para especificar el número de pasos a realizar.

Detener
Cuando la competencia está en progreso, este comando se puede usar para interrumpir la ejecución.
Reiniciar
Restablece la instancia del rival y anula la asignación de todas las regiones de memoria.
Puntos de interrupción
Puede utilizar puntos de interrupción IDA para indicar ubicaciones en las que se debe interrumpir la competencia. Esto incluye puntos de interrupción de código y memoria. Usualmente usado unido con Valer mando.
Acciones en tiempo de ejecución
Memoria sin asignar
Cuando el rival necesita consentir a la memoria que aún no está asignada, el complemento mostrará el sucesivo cuadro de diálogo.

- Prensa SÍ para proporcionar un volcado de memoria que se cargará en la memoria.

- Prensa NO para mapear una página vacía (0x1000) llena de ceros
- Prensa Revocar para detener la competencia
Instrucciones desconocidas
Cuando el rival se encuentra con una instrucción desconocida, es posible omitirla y restaurar el contexto de la CPU manualmente.

Puntos de horizonte
Control S
Solo un panel para controlar la ejecución.

Contexto de la CPU

Cada vez que se detiene la competencia, se resaltarán los registros modificados. Los registros se pueden mostrar en 1, 2 o 3 columnas a través del menú emergente.
Es posible poner al día el contexto de la CPU a través del menú emergente (ver más debajo).
Contexto extendido de la CPU
- Contexto extendido contemporáneo de la CPU.

Cada vez que se detiene la competencia, se resaltarán los registros modificados. Los registros se pueden mostrar en 1, 2 o 3 columnas a través del menú emergente.
Es posible poner al día el contexto de la CPU a través del menú emergente (ver más debajo).
Memoria
Utilice esta horizonte para observar las regiones de memoria para la dirección y el tamaño especificados. El comentario se mostrará en un título para anciano comodidad.

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

Desempolvar el contexto de la CPU
Los títulos de registro se pueden cambiar individualmente o todos a la vez con un archivo JSON a través del menú emergente. El contexto contemporáneo además se puede acomodar en un archivo JSON para uso futuro.

Menú principal de complementos
Adicionalmente de todas las funciones enumeradas en el menú emergente, hay un par de comandos nuevos.

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

Obtener segmentos
Este comando intenta sincronizar los segmentos IDA con la memoria asignada creando nuevas asignaciones o fusionándose con las existentes si es posible. Esto ayuda a pegar nuevos segmentos IDA al rival en tiempo de ejecución sin reiniciar el rival.
Cargar plan
Cargue el estado de uEmu desde el archivo.
Acomodar plan
Guarde el estado de uEmu en un archivo. Tenga en cuenta que solo se guardan los registros definidos en un complemento.
Ajustes
- Siga los desplazamientos de la PC IDA View a la PC contemporáneo durante la competencia
- Convertir a código automáticamente si los datos IDA debajo del cursor no son código
- Las instrucciones de seguimiento imprimen cada rival de instrucciones que se está ejecutando
- El mapeo diferido agrega páginas bajo demanda en puesto de mapear todas las regiones existentes al inicio

Extensiones
Incluso es posible pegar una nueva funcionalidad o construir su plan sobre uEmu usando el sistema de extensión.
Por cortesía, encuentre una descripción con un ejemplo aquí.