@ -21,10 +21,56 @@ The repo contains the following notable folders and files:
### Usage Requirements
### Usage Requirements
In order to use the virtual instruction assembler you must first have a few values at hand. The required values are listed below:
In order to use the virtual instruction assembler you must first have a few values at hand. You must have an unpacked vmprotect 2 binary. This file cannot be a dump, it must be unpacked. Second, you must know the RVA to the vm entry address of the first push instruction. This first push instruction must not be `push contant_value`, it must be of type `push reg` as the constant values are pushed onto the stack by the generated c++ header file. The last thing you need is a virtual instruction assembly file. You can make one of these easily. Simply open a text editor and create your first label:
* `vm_entry rva` - relative virtual address to a vm_entry...
* `image base` - image base value from optional headers...
***Note: you can use ANY virtual instruction which is defined by vmprofiler... you can see them all [here]()***
* a path to a vasm file is required...
* `advancement` - which way the virtual instruction pointer advances...
```
* `out path` - a path to where the vmasm file will be stored...