
Pequeño y bonito plugin emulador para IDA basado en unicorn.
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

MSR S3_x, X0 para ARM64)idapyswitchbrew install unicorn para instalar los binarios de Unicornpip install unicorn para instalar los bindings de Python de UnicornFile / Script file... o ALT+F7 en IDA para cargar uEmu.pyOpcionalmente, 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

ALT/OPTION para especificar un número)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).
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.
Realizar una ejecución de un solo paso. Mantén presionado ALT/OPTION para especificar el número de pasos a realizar.

Cuando la emulación está en progreso, este comando se puede usar para interrumpir la ejecución.
Reinicia la instancia del emulador y desmapea todas las regiones de memoria.
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.
Cuando el emulador necesita acceder a memoria que aún no está mapeada, el plugin mostrará el siguiente diálogo.


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

Simplemente un panel para controlar la ejecución.

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).
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).
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.

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.



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

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

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.
Cargar el estado de uEmu desde un archivo.
Guardar el estado de uEmu en un archivo. Ten en cuenta que solo se guardan los registros definidos en el plugin.

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í