1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

изменение _FLT_FILTER в рантайме

Тема в разделе "WASM.NT.KERNEL", создана пользователем vx1d, 14 авг 2018.

  1. vx1d

    vx1d Member

    Публикаций:
    0
    Регистрация:
    13 дек 2016
    Сообщения:
    119
    Через FltEnumerateFilters получаю указатель на структуру _FLT_FILTER моего драйвера минифильтра файловой системы,

    Код (Text):
    1.  
    2. kd> dt fltmgr!_FLT_FILTER
    3.    +0x000 Base             : _FLT_OBJECT
    4.    +0x020 Frame            : Ptr64 _FLTP_FRAME
    5.    +0x028 Name             : _UNICODE_STRING
    6.    +0x038 DefaultAltitude  : _UNICODE_STRING
    7.    +0x048 Flags            : _FLT_FILTER_FLAGS
    8.    +0x050 DriverObject     : Ptr64 _DRIVER_OBJECT
    9.    +0x058 InstanceList     : _FLT_RESOURCE_LIST_HEAD
    10.    +0x0d8 VerifierExtension : Ptr64 _FLT_VERIFIER_EXTENSION
    11.    +0x0e0 VerifiedFiltersLink : _LIST_ENTRY
    12.    +0x0f0 FilterUnload     : Ptr64     long
    13.    +0x0f8 InstanceSetup    : Ptr64     long
    14.    +0x100 InstanceQueryTeardown : Ptr64     long
    15.    +0x108 InstanceTeardownStart : Ptr64     void
    16.    +0x110 InstanceTeardownComplete : Ptr64     void
    17.    +0x118 SupportedContextsListHead : Ptr64 _ALLOCATE_CONTEXT_HEADER
    18.    +0x120 SupportedContexts : [6] Ptr64 _ALLOCATE_CONTEXT_HEADER
    19.    +0x150 PreVolumeMount   : Ptr64     _FLT_PREOP_CALLBACK_STATUS
    20.    +0x158 PostVolumeMount  : Ptr64     _FLT_POSTOP_CALLBACK_STATUS
    21.    +0x160 GenerateFileName : Ptr64     long
    22.    +0x168 NormalizeNameComponent : Ptr64     long
    23.    +0x170 NormalizeNameComponentEx : Ptr64     long
    24.    +0x178 NormalizeContextCleanup : Ptr64     void
    25.    +0x180 KtmNotification  : Ptr64     long
    26.    +0x188 Operations       : Ptr64 _FLT_OPERATION_REGISTRATION
    27.    +0x190 OldDriverUnload  : Ptr64     void
    28.    +0x198 ActiveOpens      : _FLT_MUTEX_LIST_HEAD
    29.    +0x1e8 ConnectionList   : _FLT_MUTEX_LIST_HEAD
    30.    +0x238 PortList         : _FLT_MUTEX_LIST_HEAD
    31.    +0x288 PortLock         : _EX_PUSH_LOCK
    32.  
    хочу изменить указатели на функции, котрые вызываются при различных IRP_MJ* (+0x188 Operations : Ptr64 _FLT_OPERATION_REGISTRATION) , указатели заменяю в отладчике, но ОС вызывает попрежнему функции по старым указателям
    Как правильно нужно сделать?