call dword [ExitProcess] вместо call ExitProcess
можно использовать давно опробованный способ - взять адрес любой функции ядра и листать страницами вниз до MZ-PE заголовка. хотя это както не...
не помню) надо посмотреть. но, вроде бы rva
это сервис BIOS. А есть сервис DOS (int 21h): AH = 10 (0ah) - Выполнить буферизированный ввод с клавиатуры Входные параметры: DS:DX - адрес...
найти в экспорте ядра на диске точку входа, сложить с базой реального ядра в памяти и радоваться жизни
хм.. ядерный отладчик это уже интересно) могу присоедениться к разработке.
а еще можно создать объект Section и его проецировать. вариантов много вообще +)
ну вот пускай он отпишется, что за зверя он собрался выгружать
а вдруг мы выгружаем не "нормальный" драйвер?))
не должно. давай вывод !analyze -v для крешдампа и дизассемблерный листинг сбойного участка кода
ExAllocatePoolWithTag - выделение памяти ядра, указывай пул NonPagedPool (пул неподкачиваемой памяти) IoAllocateMdl выделяет структуру Memory...
Использовать общую область памяти - ядро выделяет ядерную неподкачиваемую память и проецирует вторую проекцию на пользовательское пространство....
давайте устроим конкурс на самый извращенный метод +)
Цитирую fasm.pdf:
ааа, так он хидер найти не может... блин так бы и сказал. тогда прописывай полный путь
хм.. а попродробнее? зы. попробуй удалить fasmw.ini
ЗЫ. Я не имел в виду PnP-драйвера, с ними ситуация немного другая.
Ну во-первых, если драйвер создал или занял какие-то ресурсы, их нужно освободить. Можно найти его DRIVER_OBJECT, записать в поле DriverUnload...
два подчеркивания - это такой дурацкий стиль M$ =) всякие _emit, _stdcall, _cdecl, _asm и другие ключевые слова обычно используются с одним...
Не будет
Имена участников (разделяйте запятой).