| 67 | } |
| 68 | |
| 69 | bool Memory::GetModuleBaseAddressFromKernel(int processID, const char* moduleName, uint64_t* baseAddress) |
| 70 | { |
| 71 | Communication request = {}; |
| 72 | SecureZeroMemory(&request, sizeof(Communication)); |
| 73 | request.request = Request::GETMODULEBASE; |
| 74 | request.key = COMMUNICATION_KEY; |
| 75 | request.processID = processID; |
| 76 | request.moduleName = moduleName; |
| 77 | request.buffer = 0; |
| 78 | NtUserCloseWindowStation(&request); |
| 79 | |
| 80 | *baseAddress = request.buffer; |
| 81 | return (request.buffer != NULL); |
| 82 | } |
| 83 | |
| 84 | |
| 85 | bool Memory::ReadMemoryFromKernel(int processId, uint64_t address, void* buffer, size_t size) |
nothing calls this directly
no outgoing calls
no test coverage detected