BlackBone
Windows memory hacking library
|
Public Types | |
typedef std::list< ModuleData > | listModules |
Public Member Functions | |
BLACKBONE_API | Native (HANDLE hProcess, bool x86OS=false) |
BLACKBONE_API const Wow64Barrier & | GetWow64Barrier () const |
virtual NTSTATUS | VirualAllocExT (ptr_t &lpAddress, size_t dwSize, DWORD flAllocationType, DWORD flProtect) |
Allocate virtual memory More... | |
virtual NTSTATUS | VirualFreeExT (ptr_t lpAddress, size_t dwSize, DWORD dwFreeType) |
Free virtual memory More... | |
virtual NTSTATUS | VirtualProtectExT (ptr_t lpAddress, DWORD64 dwSize, DWORD flProtect, DWORD *flOld) |
Change memory protection More... | |
virtual NTSTATUS | ReadProcessMemoryT (ptr_t lpBaseAddress, LPVOID lpBuffer, size_t nSize, DWORD64 *lpBytes=nullptr) |
Read virtual memory More... | |
virtual NTSTATUS | WriteProcessMemoryT (ptr_t lpBaseAddress, LPCVOID lpBuffer, size_t nSize, DWORD64 *lpBytes=nullptr) |
Write virtual memory More... | |
virtual NTSTATUS | VirtualQueryExT (ptr_t lpAddress, PMEMORY_BASIC_INFORMATION64 lpBuffer) |
Query virtual memory More... | |
virtual NTSTATUS | VirtualQueryExT (ptr_t lpAddress, MEMORY_INFORMATION_CLASS infoClass, LPVOID lpBuffer, size_t bufSize) |
Query virtual memory More... | |
virtual NTSTATUS | QueryProcessInfoT (PROCESSINFOCLASS infoClass, LPVOID lpBuffer, uint32_t bufSize) |
Call NtQueryInformationProcess for underlying process More... | |
virtual NTSTATUS | SetProcessInfoT (PROCESSINFOCLASS infoClass, LPVOID lpBuffer, uint32_t bufSize) |
Call NtSetInformationProcess for underlying process More... | |
virtual NTSTATUS | CreateRemoteThreadT (HANDLE &hThread, ptr_t entry, ptr_t arg, CreateThreadFlags flags) |
Creates new thread in the remote process More... | |
virtual NTSTATUS | GetThreadContextT (HANDLE hThread, _CONTEXT64 &ctx) |
Get native thread context More... | |
virtual NTSTATUS | GetThreadContextT (HANDLE hThread, _CONTEXT32 &ctx) |
Get WOW64 thread context More... | |
virtual NTSTATUS | SetThreadContextT (HANDLE hThread, _CONTEXT64 &ctx) |
Set native thread context More... | |
virtual NTSTATUS | SetThreadContextT (HANDLE hThread, _CONTEXT32 &ctx) |
Set WOW64 thread context More... | |
virtual ptr_t | getPEB (_PEB32 *ppeb) |
Get WOW64 PEB More... | |
virtual ptr_t | getPEB (_PEB64 *ppeb) |
Get native PEB More... | |
virtual ptr_t | getTEB (HANDLE hThread, _TEB32 *pteb) |
Get WOW64 TEB More... | |
virtual ptr_t | getTEB (HANDLE hThread, _TEB64 *pteb) |
Get native TEB More... | |
BLACKBONE_API size_t | EnumRegions (std::list< MEMORY_BASIC_INFORMATION64 > &results, bool includeFree=false) |
Enumerate valid memory regions More... | |
BLACKBONE_API size_t | EnumModules (listModules &result, eModSeachType search=LdrList, eModType mtype=mt_default) |
Enumerate process modules More... | |
BLACKBONE_API ptr_t | minAddr () const |
Get lowest possible valid address value More... | |
BLACKBONE_API ptr_t | maxAddr () const |
Get highest possible valid address value More... | |
BLACKBONE_API uint32_t | pageSize () const |
Get page size More... | |
Protected Attributes | |
HANDLE | _hProcess |
Wow64Barrier | _wowBarrier |
uint32_t | _pageSize |
|
virtual |
Creates new thread in the remote process
hThread | Created thread handle |
entry | Thread entry point |
arg | Thread argument |
flags | Creation flags |
Reimplemented in blackbone::NativeWow64.
size_t blackbone::Native::EnumModules | ( | listModules & | result, |
eModSeachType | search = LdrList , |
||
eModType | mtype = mt_default |
||
) |
Enumerate process modules
result | Found modules |
mtype | Module type: x86 or x64 |
size_t blackbone::Native::EnumRegions | ( | std::list< MEMORY_BASIC_INFORMATION64 > & | results, |
bool | includeFree = false |
||
) |
Enumerate valid memory regions
results | Found regions |
includeFree | If true - non-allocated regions will be included in list |
|
virtual |
Get WOW64 PEB
ppeb | Retrieved PEB |
Reimplemented in blackbone::NativeWow64, and blackbone::x86Native.
|
virtual |
Get native PEB
ppeb | Retrieved PEB |
Reimplemented in blackbone::NativeWow64, and blackbone::x86Native.
|
virtual |
Get WOW64 TEB
ppeb | Retrieved TEB |
Reimplemented in blackbone::NativeWow64, and blackbone::x86Native.
|
virtual |
Get native TEB
ppeb | Retrieved TEB |
Reimplemented in blackbone::NativeWow64, and blackbone::x86Native.
|
virtual |
Get native thread context
Reimplemented in blackbone::NativeWow64, and blackbone::x86Native.
|
virtual |
Get WOW64 thread context
Reimplemented in blackbone::NativeWow64, and blackbone::x86Native.
|
inline |
Get highest possible valid address value
|
inline |
Get lowest possible valid address value
|
inline |
Get page size
|
virtual |
Call NtQueryInformationProcess for underlying process
infoClass | Information class |
lpBuffer | Output buffer |
bufSize | Buffer size |
Reimplemented in blackbone::NativeWow64.
|
virtual |
Read virtual memory
lpBaseAddress | Memory address |
lpBuffer | Output buffer |
nSize | Number of bytes to read |
lpBytes | Mumber of bytes read |
Reimplemented in blackbone::NativeWow64.
|
virtual |
Call NtSetInformationProcess for underlying process
infoClass | Information class |
lpBuffer | Input buffer |
bufSize | Buffer size |
Reimplemented in blackbone::NativeWow64.
|
virtual |
Set native thread context
Reimplemented in blackbone::NativeWow64, and blackbone::x86Native.
|
virtual |
Set WOW64 thread context
Reimplemented in blackbone::NativeWow64, and blackbone::x86Native.
|
virtual |
Change memory protection
lpAddress | Memory address. |
dwSize | Region size |
flProtect | New protection. |
flOld | Old protection |
Reimplemented in blackbone::NativeWow64.
|
virtual |
Query virtual memory
lpAddress | Address to query |
lpBuffer | Retrieved memory info |
Reimplemented in blackbone::NativeWow64, and blackbone::x86Native.
|
virtual |
Query virtual memory
lpAddress | Address to query |
lpBuffer | Retrieved memory info |
Reimplemented in blackbone::NativeWow64.
|
virtual |
Allocate virtual memory
lpAddress | Allocation address |
dwSize | Region size |
flAllocationType | Allocation type |
flProtect | Memory protection |
Reimplemented in blackbone::NativeWow64.
|
virtual |
Free virtual memory
lpAddress | Memory address |
dwSize | Region size |
dwFreeType | Memory release type. |
Reimplemented in blackbone::NativeWow64.
|
virtual |
Write virtual memory
lpBaseAddress | Memory address |
lpBuffer | Buffer to write |
nSize | Number of bytes to read |
lpBytes | Mumber of bytes read |
Reimplemented in blackbone::NativeWow64.