From 59511365c445187fd39ba03e1709803d2318b9e9 Mon Sep 17 00:00:00 2001 From: _xeroxz Date: Wed, 16 Jun 2021 20:57:04 +0000 Subject: [PATCH] Update ADD_VMP2_INSTR.md --- ADD_VMP2_INSTR.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ADD_VMP2_INSTR.md b/ADD_VMP2_INSTR.md index 383dc7a..3ad33cc 100644 --- a/ADD_VMP2_INSTR.md +++ b/ADD_VMP2_INSTR.md @@ -6,6 +6,8 @@ This page contains the steps needed to add additional VMProtect 2 virtual instru Consider the `ADDQ` profile which is displayed below which can be found inside of `add.cpp`. Notice that not every single instruction of the vm handler needs to be declared inside of the zydis lambda vector, however you will be required to be as explicit as it requires for each vm handler to have a unique signature. +#### Step 1, Define The Profile + ```cpp vm::handler::profile_t addq = { // ADD [RBP+8], RAX @@ -33,6 +35,8 @@ vm::handler::profile_t addq = { Inside of `vmprofiles.hpp` you can see a list of these profiles marked as `extern`. +#### Step 2, Declare It Extern Inside `vmprofiles.hpp` + ```cpp namespace profile { @@ -61,6 +65,8 @@ namespace profile Lastly the `addq` variable is added to a vector of `vm::handler::profile_t*`'s. +#### Step 3, Add The Variable To `vm::handler::profile::all` + ```cpp inline std::vector< vm::handler::profile_t * > all = { &sregq, &sregdw, &sregw, &lregq, &lregdw, &lconstq,