'How to locate address of a function using base address of the executable?
OK so I have the base address of ntoskrnl.exe and want to locate the address of an internal function that is neither exported or imported. How can this be done in kernel mode ?
Solution 1:[1]
You can pattern scan for the function, or it has a static RVA. There are many ways, but the easiest is by creating a signature (for example with SigMaker in IDA Pro) and scanning for it inside your module.
For exported routines this is much easier:
https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/nf-wdm-mmgetsystemroutineaddress
For within a specific module, you can manually walk the EAT (Export Address Table).
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Lucas Breeden |
