[Ниже для режима ядра].
В 32-разрядных средах KeServiceDescriptorTable экспортируется NTOSKRNL, и, таким образом, вы можете получить адрес с помощью MmGetSystemRoutineAddress .
Однако в 64-битных средах вам нужно найти KeServiceDescriptorTable самостоятельно при сканировании памяти, поскольку NTOSKRNL не будет экспортироваться. Это довольно просто, когда вы выяснили, где используется таблица в ядре Windows, проверьте процедуры, связанные с внутренним системным вызовом, в NTOSKRNL.
Примечание: вам потребуется сдвиг байтов при извлечении адреса в 64-битной среде.
Теперь, когда у вас есть адреса, вы можете выполнить сравнение, чтобы определить, находятся ли адреса в определенном диапазоне в памяти, и попытаться определить, является ли адрес неправильным (например, был ли он манипулирован). Вы также можете выполнить экспертизу операндов в памяти для углубленного анализа.