Tutoriales

Tiny Cute Emulator Plugin para IDA basado en Unicorn

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 Unicornio
  • pip install unicorn para instalar enlaces de unicornio python
  • Usar File / Script file... o ALT+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 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í.

LEER  9 ejemplos de comandos de host útiles para consultar detalles de DNS

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba