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.
17 lines
1.4 KiB
17 lines
1.4 KiB
<div align="center">
|
|
<div>
|
|
<img src="https://githacks.org/uploads/-/system/project/avatar/374/icon-5.png"/>
|
|
</div>
|
|
</div>
|
|
|
|
### VMProfiler - Library To Profile VMProtect 2 Virtual Machines
|
|
|
|
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
|
|
|
|
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 informationy 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.
|
|
|
|
```cpp
|
|
vm::ctx_t vmctx( module_base, image_base, image_size, vm_entry_rva );
|
|
``` |