MCPcopy Create free account
hub / github.com/SamuelTulach/RwxMeme / HandleModuleQuery

Method HandleModuleQuery

RwxMeme/RwxMeme/src/driver/memory.cpp:59–92  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

57}
58
59void memory::HandleModuleQuery(volatile ControlData* data)
60{
61 ProtectMutate();
62 wchar_t* moduleName = reinterpret_cast<wchar_t*>(data->Data[0]);
63 uint64_t modBaseAddr = 0;
64 HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE | TH32CS_SNAPMODULE32, memory_helper::targetPid);
65 if (snapshot != INVALID_HANDLE_VALUE)
66 {
67 MODULEENTRY32W modEntry;
68 modEntry.dwSize = sizeof(modEntry);
69 if (Module32FirstW(snapshot, &modEntry))
70 {
71 do
72 {
73 if (!_wcsicmp(modEntry.szModule, moduleName))
74 {
75 modBaseAddr = reinterpret_cast<uint64_t>(modEntry.modBaseAddr);
76 break;
77 }
78 } while (Module32NextW(snapshot, &modEntry));
79 }
80 }
81 CloseHandle(snapshot);
82
83 *reinterpret_cast<uint64_t*>(data->Data[1]) = modBaseAddr;
84 if (!modBaseAddr)
85 {
86 data->Status = StatusError;
87 return;
88 }
89
90 data->Status = StatusDone;
91 ProtectEnd();
92}
93
94memory::ActionStatus memory::PerformAction(ActionType type, uint64_t data1, uint64_t data2, uint64_t data3,
95 uint64_t data4, uint64_t data5)

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected