Полная задача такова 1 найти процесс explorer.exe 2 от его имени показать MessageBox(...This mess from kernel..). процесс нахожу, но вот как от имени explorer.exe показать сообщение из драйвера не знаю. Есть ли в kernel mode аналог функций GetModuleHandle and GetProcAddress?
таких апи нет, но можно вручную найти все, поиск по форуму даст тебе готовые самопальные функции. Но сам MessageBox ты не вызовешь напрямую с ядра, можно через APC зделать, если повесить на все потоки то думаю с вероятностью в 99.9% цель будет достугнута.
поиск "АРС" по форуму выводит на смежные вопросы, восновном все говорят мол поищи про АРС. Если можно дайте пожалуйста ссылку на конкретную ветку про АРС (в kernel mode делаю первые шаги, в user mode давно, очень не хватает Win32 API в kernel mode).
немного непонятно где (как) я должен описать код функции, которую я хочу вызвать в user mode application, по идее я должен выделить в нужном процессе память через ZwAllocateVirtualMemory() : (уже получается) записать туда строки - значения параметров функции MessageBoxExA только вот как вызвать этот мессаджбокс и скормить ему выделенную память как параметры или прототип функции которую я хочу вызвать надо описать в драйвере?
pavel_zp тебе нужно написать базонезависимый код, тоесть найти адресса всех функций вручную, проверить загружен ли user32.dll если нет то загрузить, найти в ней MessageBoxA, и вызвать с параметрами которые ты пропишешь в коде. Как это зделать на примере смотри по ссылке что дали выше, или на http://www.codeproject.com/useritems/KernelExec.asp