VMAssembler  v1.2
VMProtect 2 Virtual Instruction Assembler
Classes | Typedefs | Enumerations | Functions | Variables
vm Namespace Reference

Classes

struct  _IMAGE_DOS_HEADER
 
struct  _IMAGE_FILE_HEADER
 
struct  _IMAGE_DATA_DIRECTORY
 
struct  _IMAGE_OPTIONAL_HEADER64
 
struct  _IMAGE_NT_HEADERS64
 
struct  _IMAGE_SECTION_HEADER
 
struct  _IMAGE_BASE_RELOCATION
 
struct  _pair_t
 
struct  vinstr_data
 struct containing encoded data for a given virtual instruction... More...
 
struct  vlabel_data
 struct containing all information for a label... More...
 
struct  compiled_label_data
 struct containing compiled virtual instructions (encoded and encrypted) for a given label... More...
 
class  compiler_t
 class containing member functions used to encode and encrypted virtual instructions... More...
 

Typedefs

using u8 = unsigned char
 
using s8 = signed char
 
using u16 = unsigned short
 
using s16 = signed short
 
using u32 = unsigned int
 
using s32 = signed int
 
using u64 = unsigned long long
 
using s64 = signed long long
 
using __vmcall_t = void *(*)(...)
 
typedef struct vm::_IMAGE_DOS_HEADER IMAGE_DOS_HEADER
 
typedef struct vm::_IMAGE_DOS_HEADERPIMAGE_DOS_HEADER
 
typedef struct vm::_IMAGE_FILE_HEADER IMAGE_FILE_HEADER
 
typedef struct vm::_IMAGE_FILE_HEADERPIMAGE_FILE_HEADER
 
typedef struct vm::_IMAGE_DATA_DIRECTORY IMAGE_DATA_DIRECTORY
 
typedef struct vm::_IMAGE_DATA_DIRECTORYPIMAGE_DATA_DIRECTORY
 
typedef struct vm::_IMAGE_OPTIONAL_HEADER64 IMAGE_OPTIONAL_HEADER64
 
typedef struct vm::_IMAGE_OPTIONAL_HEADER64PIMAGE_OPTIONAL_HEADER64
 
typedef struct vm::_IMAGE_NT_HEADERS64 IMAGE_NT_HEADERS64
 
typedef struct vm::_IMAGE_NT_HEADERS64PIMAGE_NT_HEADERS64
 
typedef struct vm::_IMAGE_SECTION_HEADER IMAGE_SECTION_HEADER
 
typedef struct vm::_IMAGE_SECTION_HEADERPIMAGE_SECTION_HEADER
 
typedef struct vm::_IMAGE_BASE_RELOCATION IMAGE_BASE_RELOCATION
 
typedef struct vm::_IMAGE_BASE_RELOCATIONPIMAGE_BASE_RELOCATION
 

Enumerations

enum class  calls : u32 { get_hello = 0xbffd6fa5 , get_world = 0xbffd6f49 }
 

Functions

 __declspec (align(1)) struct _gen_data
 
 __declspec (allocate(".xmp2")) inline _gen_data gen_data
 
template<calls e_call, class T , class... Ts>
auto call (const Ts... args) -> T
 

Variables

constexpr u8 IMAGE_DIRECTORY_ENTRY_BASERELOC = 5
 
constexpr u8 IMAGE_REL_BASED_ABSOLUTE = 0
 
constexpr u8 IMAGE_REL_BASED_DIR64 = 10
 
constexpr auto entry_rva = 0xcd9d
 
_pair_t< u8, callscall_map [2]
 

Typedef Documentation

◆ __vmcall_t

using vm::__vmcall_t = typedef void *( * )( ... )

◆ IMAGE_BASE_RELOCATION

◆ IMAGE_DATA_DIRECTORY

◆ IMAGE_DOS_HEADER

◆ IMAGE_FILE_HEADER

◆ IMAGE_NT_HEADERS64

◆ IMAGE_OPTIONAL_HEADER64

◆ IMAGE_SECTION_HEADER

◆ PIMAGE_BASE_RELOCATION

◆ PIMAGE_DATA_DIRECTORY

◆ PIMAGE_DOS_HEADER

◆ PIMAGE_FILE_HEADER

◆ PIMAGE_NT_HEADERS64

◆ PIMAGE_OPTIONAL_HEADER64

◆ PIMAGE_SECTION_HEADER

◆ s16

using vm::s16 = typedef signed short

◆ s32

using vm::s32 = typedef signed int

◆ s64

using vm::s64 = typedef signed long long

◆ s8

using vm::s8 = typedef signed char

◆ u16

using vm::u16 = typedef unsigned short

◆ u32

using vm::u32 = typedef unsigned int

◆ u64

using vm::u64 = typedef unsigned long long

◆ u8

using vm::u8 = typedef unsigned char

Enumeration Type Documentation

◆ calls

enum vm::calls : u32
strong
Enumerator
get_hello 
get_world 

Function Documentation

◆ __declspec() [1/2]

vm::__declspec ( align(1)  )

◆ __declspec() [2/2]

vm::__declspec ( allocate(".xmp2")  )

◆ call()

template<calls e_call, class T , class... Ts>
auto vm::call ( const Ts...  args) -> T

Variable Documentation

◆ call_map

_pair_t< u8, calls > vm::call_map[2]
inline
Initial value:
= {
{ 0, calls::get_hello },
{ 1, calls::get_world },
}

◆ entry_rva

constexpr auto vm::entry_rva = 0xcd9d
constexpr

◆ IMAGE_DIRECTORY_ENTRY_BASERELOC

constexpr u8 vm::IMAGE_DIRECTORY_ENTRY_BASERELOC = 5
constexpr

◆ IMAGE_REL_BASED_ABSOLUTE

constexpr u8 vm::IMAGE_REL_BASED_ABSOLUTE = 0
constexpr

◆ IMAGE_REL_BASED_DIR64

constexpr u8 vm::IMAGE_REL_BASED_DIR64 = 10
constexpr