Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
vmp-devirt — Plataforma de pesquisa de devirtualização do VMProtect assistida por trace: front-ends de versão alimentam um backend compartilhado Remill/LLVM para elevar handlers, recuperar dataflow e emitir objetos nativos. | Kitploit
Ferramentas/GitHubGitHub/rasetsuu/vmp-devirt
Análise EstáticaAnálise Dinâmica (Sandboxing)Análise de CódigoEngenharia ReversaDepuradoresAnálise de MalwareUtilitários e FrameworksAnálise de BináriosPapers e PesquisaEngenharia Reversa Assistida por IAExploração de Binários
11há 1 diaAinda não revisado
GitHubrasetsuu/vmp-devirt

vmp-devirt

Plataforma de pesquisa de devirtualização do VMProtect assistida por trace: front-ends de versão alimentam um backend compartilhado Remill/LLVM para elevar handlers, recuperar dataflow e emitir objetos nativos.

Ver Repositório

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

vmp-devirt

Pesquisa de desvirtualização do VMProtect assistida por trace: front-ends de versão (gate 1.x / tabela 2.x / FDJ 3.x) alimentando um backend compartilhado (lift Remill → otimização LLVM → cards semânticos → dataflow → objetos nativos).

Validado contra binários VMP 3.9.4 compilados localmente em múltiplos modos de proteção. A compatibilidade com VMP 3.8.x/3.10.x é experimental e depende da amostra.

Escopo e limitações (leia primeiro)

Esta é uma plataforma de pesquisa para analisar binários protegidos com VMProtect que você possui ou tem licença para fazer engenharia reversa — não um desvirtualizador universal de apertar botão:

  • VMP 3.7+ precisa de execução: streams de fetch, chaves e alvos de handler vêm de snapshots instrumentados do Unicorn, não de análise estática.
  • A cobertura é limitada ao trace: apenas caminhos executados são recuperados. Execuções multi-estado + merge de branches estendem isso; a recuperação completa do CFG do programa para alvos complexos permanece manual.
  • Anti-emulação (gates de timing, traps de I/O, verificações de ambiente) precisa de stubs por alvo — o harness fornece o mecanismo, você fornece os valores.
  • Os front-ends VMP 1.x/2.x são scanners heurísticos; seus antigos walkers estáticos são mantidos como oráculos de verificação cruzada, não como caminhos primários.

Layout

src/
  lib.rs               raiz do crate, data_dir()
  pe_loader.rs         parsing de PE / leituras de VA
  opcode_map.rs        mapa canônico de opcode 3.5.1 -> handler
  frontend/
    mod.rs             trait VmFrontend (detect/fetch_stream/handler_addrs)
    fetch_finder.rs    scan FDJ movzx-byte + helpers watchset/snapshot
    cryptor_miner.rs   mineração de ValueCryptor por site (branch-following)
    site_emulator.rs   decodificadores oráculo específicos de amostra (legado)
    handler_classifier.rs  classificação de handler via padrões legados
    classifier_legacy.rs   padrões de primeiros bytes (fraco; apenas fallback)
    v1_gate.rs         front-end de gate-scan do VMP 1.x
    v2_walker.rs       front-end de tabela de dispatch do VMP 2.x
    v3_fdj.rs          front-end FDJ do VMP 3.x
  backend/
    value_cryptor.rs   cadeias ADD/SUB/XOR/ROL/ROR/NOT/NEG/...
    lifter.rs          lift de texto iced-x86 + backend de subprocesso Remill
    llvm_pipeline.rs   opt -O3 sobre IR do Remill (passes reais)
  harness/
    snapshot.rs        snapshots do Unicorn: mapeamento de sections+scratch,
                       hooks de IN, stubs de import, watch hits, memlog,
                       fast-forward zero-slide
tests/
  smoke.rs             PE64 sintético + cadeia de fetch construída à mão (sem fixtures)
tools/                 (drivers de análise; cada um documenta suas entradas)
scripts/               helpers Triton/angr/Ghidra (dependências externas)

Build

# Debian/Ubuntu (LLVM 22 para feature llvm opcional)
sudo apt install llvm-22-dev libclang-22-dev clang-22
cargo build --release          # Rust puro (sem link LLVM)
cargo build --release --features llvm   # verificação de link llvm-sys
pip install triton-library capstone pefile   # helpers python
# Remill (backend de lifter opcional): compile o upstream, exporte REMILL_LIFT=<path>/remill-lift
# Souper (superotimizador MBA opcional): apenas externo, conecte seu CLI `souper`
#   à saída de scripts/triton_handlers.py se desejado; não é vendorizado.

O Dockerfile reproduz o ambiente completo. O CI executa cargo build/test --release (features padrão, sem link LLVM, sem fixtures comerciais; testes condicionados a amostra são pulados, tests/smoke.rs sempre executa). A verificação de link opcional --features llvm roda como job de CI não bloqueante (precisa de LLVM 22).

Ambiente

VarPadrãoSignificado
DATA_DIR./datatodos os artefatos da ferramenta
WATCH_FILE$DATA_DIR/watch.txtVAs de fetch a observar
CARDSopen_cards3.jsonarquivo de cache de cards do Remill
BIN_PATHcaminho do binário alvo (padrão das tools: placeholder ./target.exe)binário alvo
IAT_JSON—mapa de stub de import {api_name: iat_va}
VMP_TEST_BIN / VMP_ORACLEtests/fixtures/…testes com amostra licenciada
REMILL_LIFTremill-lift-22 no PATHbinário de lift do Remill
DEVIRT / FORCE_EDGE / REPO_ROOT./target/… / .binários chamados por script + raiz do repo
VMP_WORK_DIRtemp do sistemascratch de lift
EFLAGS / IN_RET / DLL_MAIN—variantes de estado do snapshot

Método (3.x, o caminho comprovado)

  1. Faça snapshot do binário a partir de sua entrada no Unicorn (sections + scratch, ret de página zero, stubs de import, hook de IN).
  2. Detecte sites de fetch (movzx byte [reg] executados superam padrões estáticos — hits apenas estáticos mediram 0% de execução em alvos endurecidos).
  3. Minere cryptors por site a partir do código (worklist com branch-following).
  4. Decodifique raw^key com o registrador de chave arquitetural (varreduras livres causam overfit — restrinja à chave minerada).
  5. Faça lift dos handlers alcançados via Remill, opt -O3, emita cards/dataflow, recompile com llc (ld -r prova a composabilidade).

Licença

MIT (veja LICENSE) com notas de dependências (notavelmente Unicorn GPL-2.0). Apenas para uso em pesquisa/educacional, em binários que você possui ou pode analisar.

Baixar ferramenta