shihoda В первом способе смотри на возвращаемые функциями значения и GetLastError`ы. Вероятнее всего не закрываешь какой-нибудь хендл
FILE_FLAG_WRITE_THROUGH | FILE_FLAG_NO_BUFFERING
Не совсем не зависимым. Например, обработчик IRP_MJ_CREATE (остальные аналогично): NTSTATUS DispatchCreate(PDEVICE_OBJECT devobj, PIRP irp) { if...
Почему первый параметр esi, а не eax?
TOR Статейка мощная :)) Раньше про колхозниц и пахарей такие писали, теперь про вирусных аналитиков :))) Гостев, даешь 300 норм вирусов в...
IrpStack = Irp->Tail.Overlay.CurrentStackLocation + (Irp->StackCount - Irp->CurrentLocation) ЗЫ: Верхний драйвер в стеке и будет источником пакета
Win64
Согласен, действительно не внимательно прочитал Windows 2000, код NtShutdownSystem начинается с "mov eax, [esp + 0x4]". Ладно, это решаемо,...
Deyton Все это конечно офигительно. Только рекомендую немного почитать про различие между хукингом SDT и сплайсингом. А не надо писать дрова,...
Элементарно: InterlockedExchange(&address_of_hooked_sdt_entry, original_function_sdt_entry); Хук функции вообще-то вещь не документированная и...
Основная цель изоляции ассемблера - обеспечить переносимость и удобочитаемость кода, а для этого годится любой из кучи предложенных выше способов....
Deyton Если установка/снятие хуков реализованы корректно, то ни свои, ни чужие хуки "убиваться" не будут. Ну а если они сделаны через ж..., то...
Но ни в одном нормально написанном на Сях драйвере ассемблер не нужен. Для его исключения можно использовать функции HAL и, в крайнем случае,...
Megazu Проблема в том, что драйвер, который зарегистрировал notify routine нельзя выгружать :) (см. в DDK PsSetCreateProcessNotifyRoutine: "Any...
EvilTwin stack location`ы можно посмотреть
Из WinDDK: The driver failed to cancel lookaside lists, DPCs, worker threads, or other such items before unloading. Вывод: надо канселить или...
reiser Это я видел :) Следствием из этой фразы является, что эта инструкция _может_ поддерживаться на новых процах. У amd тоже что-то типа этого...
Программа пишется для процесоров Intel Pentium и старше и AMD K6 и старше. Можно ли полагать, что эта инструкция поддерживается процессором, или...
IRP_MJ_CREATE просто создает FileObject для файла, попутно проверяя правильность пути, права доступа и так далее. Реальный ввод/вывод производится...
Простейший вариант (да и самый разумный вероятно) создать динамический массив структур с описанием. Что-то типа: struct file { unsigned int...
Имена участников (разделяйте запятой).