· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Kernel-mode. Как изменить атрибуты защиты страниц?

<< . 1 . 2 .

Посл.отвђт Сообщенiе


Дата: Авг 13, 2004 03:34:26

Так а зачем атрибуты то менять? Тебе же картинки читать надо будет. Так и отображай себе спокойно.
try {

    pMdl = IoAllocateMdl( Address, cb, FALSE, FALSE, NULL );
    if ( pMdl != NULL ) {

        MmProbeAndLockPages( pMdl, KernelMode, IoReadAccess );
                
        pBuffer = MmGetSystemAddressForMdlSafe( pMdl, NormalPagePriority );
        if ( pBuffer != NULL ) {

            Value = * (ULONG*) pBuffer;

            MmUnlockPages( pMdl );

            Status = STATUS_SUCCESS;
        }

        IoFreeMdl( pMdl );
    }

} except(EXCEPTION_EXECUTE_HANDLER) {

    if ( pMdl != NULL ) {

        IoFreeMdl( pMdl );
    }

    Status = GetExceptionCode();
}


Странно, что MmProbeAndLockPages у тя бсодит. Точно я не уверен, но вроде при любом из флагов IoWriteAccess или IoModifyAccess она тоже самое делает. А именно ProbeForWrite. А это должно обрабатываться SEH, иначе можно было бы любому драйверу послать контрол с METHOD_OUT_DIRECT и указателем на read-only буфер... и кирдык, даже не доходя до драйвера.


Дата: Авг 13, 2004 12:29:11 · Поправил: rsrc

Four-F

CПАСИБО!
CПАСИБО!
CПАСИБО!

MmProbeAndLockPages(,,IoReadAccess) уже c этим флагом не бсодит и что самое интересное так это то, что можно даже и писАть в read-only user-mode страницы закрепленные с таким IoReadAccess флагом!


Дата: Авг 13, 2004 16:26:02

Ну да. Та же получаешь свою собственную проекцию в ядре. А они по умолчанию всегда RW, вроде.

<< . 1 . 2 .


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.037