4 pontos por xguru 3 시간 전 | Ainda não há comentários. | Compartilhar no WhatsApp
  • Emulador de userspace de alto desempenho para Windows/Linux que opera no nível de syscall, controlando toda a execução do processo por meio de hooking abrangente
  • Adequado para tarefas que exigem controle detalhado sobre a execução de processos, como pesquisa de segurança, análise de malware e pesquisa de DRM
  • Funciona no nível de syscall sem reimplementar a Windows API, permitindo usar diretamente as DLLs de sistema existentes
  • Escrito em C++ e pode rodar com o backend desejado: Unicorn Engine, icicle-emu, Hyper-V(WHP)
  • Gerenciamento avançado de memória: construído sobre o gerenciamento de memória do Unicorn, com suporte a tipos de memória específicos do Windows, como reserved e committed
  • Suporte completo a carregamento de PE: trata o carregamento de executáveis e DLLs, mapeamento apropriado de memória, relocations e suporte a TLS
  • Tratamento de exceções: implementação de exceções estruturadas do Windows (SEH), com suporte a dispatcher de exceções e unwinding
  • Suporte a threads: oferece um modelo de threading com escalonamento round-robin
  • Gerenciamento de estado: suporta tanto serialização completa do estado quanto snapshots rápidos em memória
  • Interface de depuração: implementa o protocolo serial do GDB, permitindo integração com IDA Pro, GDB, LLDB, VS Code etc.
  • Na análise de malware, o isolamento do host pode não ser perfeito, por isso é recomendado usar a versão web baseada em sandbox do navegador
  • Pode ser automatizado com Python
    • Instalação com pip install sogen
    • É possível executar o emulador, registrar callbacks e interceptar chamadas de WinAPI diretamente em Python

Consulte os slides da apresentação: Fake It ‘til We Make It: The Art of Windows User Space Emulation

  • O que é Windows User Space Emulation?
    • Técnica que executa o processo dentro de um emulador e simula o SO e o kernel por baixo dele
    • Enquanto a emulação comum roda código em uma CPU virtual e simula hardware, a emulação de userspace imita também as camadas de SO e kernel acima disso
    • O principal valor disso é o controle completo sobre o código em execução — o emulador pode intervir em todas as etapas da execução
    • O controle é feito por meio de hooking points
      • Hook de acesso à memória — intercepta operações de read, write e execute
      • Hook de execução de instruções — captura momentos em que instruções específicas como syscall, cpuid e rdtsc são executadas
      • Hook de execução de novo caminho de código — detecta caminhos de código executados pela primeira vez
    • Graças a essa capacidade de hooking, é possível interceptar comunicação externa, rastrear o fluxo de execução e medir cobertura de código, servindo de base para análise de DRM, análise de malware, análise de vulnerabilidades e pesquisa de segurança
  • O apresentador é um desenvolvedor de DRM com experiência em fazer reversing e bypass de vários DRMs, como Steam CEG, Arxan e Denuvo
  • A emulação foi um recurso central na análise do DRM Denuvo, muito usado por jogos para Windows
    • Isso porque os DRMs modernos frequentemente tornam análise estática e dinâmica inviáveis com ofuscação, anti-tampering e anti-debugging
  • O emulador também é usado em análise de vulnerabilidades (fuzzing): randomiza entradas dentro do emulador, recebe feedback de cobertura de código via hooks e oferece execuções previsíveis e reproduzíveis
  • As limitações das soluções existentes motivaram o desenvolvimento
    • Qiling, Speakeasy e Dumpulator são em Python e extremamente lentos em análise de DRM com muito hooking
    • Binee e Unicorn PE são reimplementações em nível de API, incompletas e sujeitas a bugs
  • Escala de syscalls: 409 syscalls comuns em ntdll.dll, 1474 syscalls de UI em win32u.dll
  • A alta velocidade de emulação vem do JIT

Ainda não há comentários.

Ainda não há comentários.