首页
社区
课程
招聘
[求助]ZwMapViewOfSection怎么会这样?
发表于: 2009-6-26 21:43 10278

[求助]ZwMapViewOfSection怎么会这样?

2009-6-26 21:43
10278
void OpenKernelFile()
{
        NTSTATUS status;
        HANDLE fileHandle;
        UNICODE_STRING usDllName;
        IO_STATUS_BLOCK  IoStatusBlock;

        RtlInitUnicodeString(&usDllName, L"\\Device\\HarddiskVolume1\\Windows\\System32\\ntdll.dll");

       
        OBJECT_ATTRIBUTES oa = {sizeof oa, 0, &usDllName, OBJ_CASE_INSENSITIVE};
       
        status = ZwOpenFile(&fileHandle, FILE_EXECUTE | SYNCHRONIZE, &oa, &IoStatusBlock, FILE_SHARE_READ, FILE_SYNCHRONOUS_IO_NONALERT);

        HANDLE SectionHandle;
        oa.ObjectName = NULL;

        #define SEC_IMAGE    0x01000000

        status =  ZwCreateSection(&SectionHandle, SECTION_ALL_ACCESS, &oa, 0, PAGE_EXECUTE_READ, SEC_IMAGE, fileHandle);

        PVOID BaseAddress = NULL;
        ULONG size = 0;

        status =  ZwMapViewOfSection(SectionHandle, NtCurrentProcess(), &BaseAddress, 0, 1000, 0, &size, (SECTION_INHERIT)1, MEM_TOP_DOWN, PAGE_READWRITE);

        ZwClose(fileHandle);
        ZwClose(SectionHandle);

}

这段代码是在R0下运行,
可是BaseAddress得到的地址值(也就是映射的基址)非常小0x001f0000
这可是在R0没法访问的,
有哪位达人能告诉我怎么做呢

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (10)
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
2
谁说不能访问的。。。
2009-6-26 22:13
0
雪    币: 231
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
访问这段内存会蓝屏
2009-6-26 22:27
0
雪    币: 129
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
可以访问的

你访问前先得确定这段内存是否被映射,然后确定这段内存是否可读写.不可读写直接访问要蓝的..
2009-6-26 22:38
0
雪    币: 231
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
ZwMapViewOfSection的返回值是0x40000003=STATUS_IMAGE_NOT_AT_BASE
size=0x8b000,确定是映射成功的

if ( MmIsAddressValid(BaseAddress) )
{
永远不会进入这里
...............
}
2009-6-26 22:57
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
6
不要用MmIsAddressValid,用户内存用try_except访问
2009-6-27 00:37
0
雪    币: 38
活跃值: (536)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
7
从大牛身上吸取精华
2009-6-27 00:48
0
雪    币: 231
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
牛牛们谁帮忙弄下,卡住了
没法进行下去了
2009-6-27 11:24
0
雪    币: 238
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
call ProbeForRead inside a try/except block
2009-6-28 13:16
0
雪    币: 341
活跃值: (1005)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
多谢分享。
2019-11-5 17:32
0
雪    币: 2065
活跃值: (500)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
11
如六楼所诉
用户内存用try_except+ProbeForRead访问
2019-11-19 10:04
0
游客
登录 | 注册 方可回帖
返回
//