4 puntos por xguru 3 시간 전 | Aún no hay comentarios. | Compartir por WhatsApp
  • Emulador de espacio de usuario de alto rendimiento para Windows/Linux que opera a nivel de syscalls del sistema, controlando todo el proceso de ejecución mediante hooking integral
  • Adecuado para tareas que requieren control detallado sobre la ejecución de procesos, como investigación de seguridad, análisis de malware e investigación de DRM
  • Funciona a nivel de syscall sin reimplementar la API de Windows, por lo que puede aprovechar directamente las DLL del sistema existentes
  • Escrito en C++ y puede ejecutarse con el backend que se desee: Unicorn Engine, icicle-emu, Hyper-V(WHP)
  • Gestión avanzada de memoria: construido sobre la administración de memoria de Unicorn, con soporte para tipos de memoria propios de Windows como reserved y committed
  • Soporte completo de carga PE: maneja la carga de ejecutables y DLL, mapeo de memoria adecuado, reubicaciones (relocations) y soporte para TLS
  • Manejo de excepciones: implementa el manejo estructurado de excepciones (SEH) de Windows, con soporte para despachador de excepciones y unwinding
  • Soporte de hilos: ofrece un modelo de threading con planificación round-robin
  • Gestión de estado: admite tanto la serialización del estado completo como snapshots rápidos en memoria
  • Interfaz de depuración: implementa el protocolo serial de GDB, lo que permite integrarlo con IDA Pro, GDB, LLDB, VS Code y más
  • En análisis de malware, el aislamiento del host podría no ser perfecto, por lo que se recomienda usar la versión web basada en sandbox del navegador
  • Se puede automatizar con Python
    • Instalar con pip install sogen
    • Es posible ejecutar el emulador, registrar callbacks e interceptar llamadas WinAPI directamente desde Python

Consulta las diapositivas de la presentación: Fake It ‘til We Make It: The Art of Windows User Space Emulation

  • ¿Qué es Windows User Space Emulation?
    • Técnica que ejecuta un proceso dentro de un emulador y simula el sistema operativo y el kernel por debajo
    • Si la emulación común ejecuta código en una CPU virtual y simula hardware, la emulación de espacio de usuario va un paso más allá e imita también las capas de SO y kernel
    • Su valor principal es el control total sobre el código en ejecución: el emulador puede intervenir en cada etapa de la ejecución
    • El control se logra mediante puntos de hooking
      • Hooking de acceso a memoria: intercepta operaciones de read, write y execute
      • Hooking de ejecución de instrucciones: detecta el momento en que se ejecutan instrucciones específicas como syscall, cpuid y rdtsc
      • Hooking de ejecución de nuevas rutas de código: detecta rutas de código que se ejecutan por primera vez
    • Gracias a esta capacidad de hooking, se puede interceptar comunicación externa, rastrear el flujo de ejecución y medir cobertura de código, lo que la convierte en una base para análisis de DRM, análisis de malware, análisis de vulnerabilidades e investigación de seguridad
  • El ponente es desarrollador de DRM y tiene experiencia revirtiendo y eludiendo múltiples DRM como Steam CEG, Arxan y Denuvo
  • La emulación fue una herramienta clave para analizar Denuvo DRM, muy utilizado en juegos para Windows
    • Esto se debe a que los DRM modernos suelen hacer inviables los análisis estáticos y dinámicos por su ofuscación, anti-tampering y anti-debugging
  • Uso del emulador para análisis de vulnerabilidades (fuzzing): dentro del emulador se aleatorizan entradas, se obtiene retroalimentación de cobertura de código mediante hooking, y la ejecución es predecible y repetible
  • Las limitaciones de las soluciones existentes motivaron el desarrollo
    • Qiling, Speakeasy y Dumpulator están hechos en Python, por lo que son extremadamente lentos en análisis de DRM con mucho hooking
    • Binee y Unicorn PE son reimplementaciones a nivel de API, por lo que son incompletos y pueden presentar errores
  • Escala de syscalls: 409 syscalls generales de ntdll.dll y 1474 syscalls de UI de win32u.dll
  • La velocidad rápida de emulación se debe al JIT

Aún no hay comentarios.

Aún no hay comentarios.