From 01cd5dc8aee5cc66e706cf77a6b2e67e6323b959 Mon Sep 17 00:00:00 2001 From: _xeroxz Date: Sun, 13 Jun 2021 01:59:42 +0000 Subject: [PATCH] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e496030..76d6bf1 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ VMProfiler is a c++ library which is used to statically analyze VMProtect 2 poly ### 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. +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. ```cpp vm::ctx_t vmctx( module_base, image_base, image_size, vm_entry_rva );