Ядро Windows: получение адресов функций внутри модулей - PullRequest
0 голосов
/ 20 октября 2018

Я пытаюсь вызвать функцию в ядре, которая находится в модуле win32kfull.sys.Я получил базовый адрес модуля, используя ZwQuerySystemInformation.Теперь я хочу узнать смещение функции NtUserSendInput, расположенной в модуле win32kfull.sys.Когда я открываю win32kfull.sys в IDA Pro и открываю функцию, я получаю два адреса: IDA Pro location of NtUserSendInput

К сожалению, я не знаю, как добавить смещения к базовому адресуwin32kfull.sys, чтобы получить адрес функции.

Я был бы признателен, если бы кто-то мог объяснить мне, как я могу действовать сейчас.

1 Ответ

0 голосов
/ 16 декабря 2018

Поскольку NtUserSendInput является экспортируемой функцией, это означает, что формат PE изображения (в частности, каталога экспорта) позволит вам узнать адрес функции, если вы проанализируете ее правильно.

ЭтоЛучшее решение: получить смещение из IDA Pro даст вам адрес для конкретной версии , что означает, что мне придется получать смещение для каждой сборки win32kfull.sys, и каждый раз, когда у вас будет новая версия, у вас будетобновить драйвер.

Итак, если у вас есть базовый адрес win32kfull.sys, вы можете рассматривать его как начальный адрес для структуры PE и анализировать его, в Интернете есть множество учебных пособий о том, как это сделать..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...