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.
Classes | Namespaces | Typedefs | Enumerations | Variables
vmprofiles.hpp File Reference
#include <transform.hpp>

Go to the source code of this file.

Classes

struct  vm::handler::profile_t
 pre defined vm handler profile containing all compiled time known information about a vm handler... More...
 

Namespaces

 vm
 
 vm::handler
 contains all information pertaining to vm handler identification...
 
 vm::handler::profile
 contains all profiles defined, as well as a vector of all of the defined profiles...
 

Typedefs

using vm::handler::zydis_callback_t = std::function< bool(const zydis_decoded_instr_t &instr) >
 zydis callback lambda used to pattern match native instructions... More...
 

Enumerations

enum  vm::handler::mnemonic_t {
  vm::handler::INVALID , vm::handler::LRFLAGS , vm::handler::PUSHVSP , vm::handler::MULQ ,
  vm::handler::DIVQ , vm::handler::CALL , vm::handler::JMP , vm::handler::VMEXIT ,
  vm::handler::LVSP , vm::handler::SREGQ , vm::handler::SREGDW , vm::handler::SREGW ,
  vm::handler::LREGQ , vm::handler::LREGDW , vm::handler::LCONSTQ , vm::handler::LCONSTBZXW ,
  vm::handler::LCONSTBSXQ , vm::handler::LCONSTBSXDW , vm::handler::LCONSTDWSXQ , vm::handler::LCONSTWSXQ ,
  vm::handler::LCONSTWSXDW , vm::handler::LCONSTDW , vm::handler::LCONSTW , vm::handler::READQ ,
  vm::handler::READDW , vm::handler::READW , vm::handler::WRITEQ , vm::handler::WRITEDW ,
  vm::handler::WRITEW , vm::handler::WRITEB , vm::handler::ADDQ , vm::handler::ADDDW ,
  vm::handler::ADDW , vm::handler::SHLQ , vm::handler::SHLDW , vm::handler::SHLDQ ,
  vm::handler::SHLDDW , vm::handler::SHLD_W , vm::handler::SHLDB , vm::handler::SHRQ ,
  vm::handler::SHRW , vm::handler::NANDQ , vm::handler::NANDDW , vm::handler::NANDW
}
 vm handler mnemonic... so you dont need to compare strings! More...
 
enum  vm::handler::extention_t { vm::handler::none , vm::handler::sign_extend , vm::handler::zero_extend }
 how sign extention is handled... More...
 

Variables

vm::handler::profile_t vm::handler::profile::sregq
 
vm::handler::profile_t vm::handler::profile::sregdw
 
vm::handler::profile_t vm::handler::profile::sregw
 
vm::handler::profile_t vm::handler::profile::lregq
 
vm::handler::profile_t vm::handler::profile::lregdw
 
vm::handler::profile_t vm::handler::profile::lconstq
 
vm::handler::profile_t vm::handler::profile::lconstdw
 
vm::handler::profile_t vm::handler::profile::lconstw
 
vm::handler::profile_t vm::handler::profile::lconstbzxw
 
vm::handler::profile_t vm::handler::profile::lconstbsxdw
 
vm::handler::profile_t vm::handler::profile::lconstbsxq
 
vm::handler::profile_t vm::handler::profile::lconstdwsxq
 
vm::handler::profile_t vm::handler::profile::lconstwsxq
 
vm::handler::profile_t vm::handler::profile::lconstwsxdw
 
vm::handler::profile_t vm::handler::profile::addq
 
vm::handler::profile_t vm::handler::profile::adddw
 
vm::handler::profile_t vm::handler::profile::addw
 
vm::handler::profile_t vm::handler::profile::shlq
 
vm::handler::profile_t vm::handler::profile::shldw
 
vm::handler::profile_t vm::handler::profile::shlddw
 
vm::handler::profile_t vm::handler::profile::nandq
 
vm::handler::profile_t vm::handler::profile::nanddw
 
vm::handler::profile_t vm::handler::profile::nandw
 
vm::handler::profile_t vm::handler::profile::nandb
 
vm::handler::profile_t vm::handler::profile::writeq
 
vm::handler::profile_t vm::handler::profile::writedw
 
vm::handler::profile_t vm::handler::profile::writeb
 
vm::handler::profile_t vm::handler::profile::readq
 
vm::handler::profile_t vm::handler::profile::readdw
 
vm::handler::profile_t vm::handler::profile::shrq
 
vm::handler::profile_t vm::handler::profile::shrw
 
vm::handler::profile_t vm::handler::profile::lrflags
 
vm::handler::profile_t vm::handler::profile::call
 
vm::handler::profile_t vm::handler::profile::pushvsp
 
vm::handler::profile_t vm::handler::profile::mulq
 
vm::handler::profile_t vm::handler::profile::divq
 
vm::handler::profile_t vm::handler::profile::jmp
 
vm::handler::profile_t vm::handler::profile::lvsp
 
vm::handler::profile_t vm::handler::profile::vmexit
 
std::vector< vm::handler::profile_t * > vm::handler::profile::all
 a vector of pointers to all defined vm handler profiles... More...