You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
vmprofiler/README.md

17 lines
1.4 KiB

4 years ago
<div align="center">
<div>
<img src="https://githacks.org/uploads/-/system/project/avatar/374/icon-5.png"/>
</div>
</div>
3 years ago
### VMProfiler - Library To Profile VMProtect 2 Virtual Machines
4 years ago
3 years ago
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. This is the base project for all other VMProtect 2 projects inside of this group on githacks/vmp2.
### Basic Usage - vm::ctx_t instantiation
3 years ago
In order to use VMProfiler you must create a `vm::ctx_t`. In order to instantiate a new instance of the `vm::ctx_t` class, you must first have a protected binary loaded into memory. You must also know its image base which can be located by parsing it from [IMAGE_OPTIONAL_HEADER64](https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-image_optional_header64) structure. The next bit of information you will need is the size of the image in memory which you can also get from [IMAGE_OPTIONAL_HEADER64](https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-image_optional_header64) structure. The last bit of information you will need to know is the relative virtual address (from the base of the module in memory) to a vm entry. This must include the push encrypted rva. Now you are ready to create your first `vm::ctx_t` object.
3 years ago
```cpp
vm::ctx_t vmctx( module_base, image_base, image_size, vm_entry_rva );
```