| 171 | } |
| 172 | |
| 173 | PVOID GetModuleBaseAddress(const wchar_t* moduleName) { |
| 174 | PPEB peb = GetPEB(); |
| 175 | PLIST_ENTRY moduleList = &peb->Ldr->InLoadOrderModuleList; |
| 176 | |
| 177 | for (PLIST_ENTRY entry = moduleList->Flink; entry != moduleList; entry = entry->Flink) { |
| 178 | PLDR_DATA_TABLE_ENTRY module = CONTAINING_RECORD(entry, LDR_DATA_TABLE_ENTRY, InLoadOrderLinks); |
| 179 | if (wcscmp(module->BaseDllName.Buffer, moduleName) == 0) { |
| 180 | return module->DllBase; |
| 181 | } |
| 182 | } |
| 183 | return nullptr; |
| 184 | } |
| 185 | |
| 186 | int Partition(std::vector<SYSCALL_ENTRY>& arr, int low, int high) { |
| 187 | auto pivot = arr[high]; |