VMProfiler  v1.8
vmprofiler is a c++ library which is used to statically analyze VMProtect 2 polymorphic virtual machines. This project is inherited in vmprofiler-qt, vmprofiler-cli, and vmemu.
vmctx.hpp
Go to the documentation of this file.
1 #pragma once
2 #include <transform.hpp>
3 #include <vmhandlers.hpp>
4 #include <vmp2.hpp>
5 
6 namespace vm
7 {
12  class ctx_t
13  {
14  public:
25  explicit ctx_t( std::uintptr_t module_base, std::uintptr_t image_base, std::uintptr_t image_size,
26  std::uintptr_t vm_entry_rva );
27 
32  bool init();
33 
34  const std::uintptr_t module_base, image_base, vm_entry_rva, image_size;
35 
41 
45  std::vector< vm::handler::handler_t > vm_handlers;
46  };
47 } // namespace vm
vm::ctx_t class is used to auto generate vm_entry, calc_jmp, and other per-vm entry information....
Definition: vmctx.hpp:13
std::vector< vm::handler::handler_t > vm_handlers
all the vm handlers for the given vm entry...
Definition: vmctx.hpp:45
vmp2::exec_type_t exec_type
the order in which VIP advances...
Definition: vmctx.hpp:39
zydis_routine_t vm_entry
Definition: vmctx.hpp:40
const std::uintptr_t module_base
Definition: vmctx.hpp:34
const std::uintptr_t vm_entry_rva
Definition: vmctx.hpp:34
const std::uintptr_t image_size
Definition: vmctx.hpp:34
bool init()
init all per-vm entry data such as vm_entry, calc_jmp, and vm handlers...
Definition: vmctx.cpp:11
const std::uintptr_t image_base
Definition: vmctx.hpp:34
ctx_t(std::uintptr_t module_base, std::uintptr_t image_base, std::uintptr_t image_size, std::uintptr_t vm_entry_rva)
default constructor for vm::ctx_t... all information for a given vm entry must be provided....
Definition: vmctx.cpp:5
zydis_routine_t calc_jmp
Definition: vmctx.hpp:40
Definition: calc_jmp.hpp:6
exec_type_t
Definition: vmp2.hpp:9
std::vector< zydis_instr_t > zydis_routine_t
Definition: vmutils.hpp:29