首页
社区
课程
招聘
[求助]关于ring3无驱进ring0的问题
发表于: 2007-10-20 22:16 10378

[求助]关于ring3无驱进ring0的问题

2007-10-20 22:16
10378
EnterRing0(PXDT_GATE_DESCRIPTOR gdt)
{
        DWORD CodeIndex, GateIndex;
        WORD CallGate[3];

        //
        // Find and initialize GDT descriptors for code segment and call gate
        //

        CodeIndex = 10;
        while (gdt[CodeIndex].Attributes & 0xf000)
                CodeIndex++;
        gdt[CodeIndex] = gdt[1];
       
        GateIndex = CodeIndex + 1;
        while (gdt[GateIndex].Attributes & 0xf000)
                GateIndex++;

        gdt[GateIndex].OffsetLo = (WORD) ((DWORD) &Ring0Startup);
        gdt[GateIndex].Selector = CodeIndex << 3;
        gdt[GateIndex].Attributes = 0xec00;
        gdt[GateIndex].OffsetHi = (WORD) ((DWORD) &Ring0Startup >> 16);

        UnmapViewOfFile(gdt);

        CallGate[2] = (GateIndex << 3) | 3;
        asm("lcall   *%0" : : "m" (CallGate[0]), "c" (GateIndex));
}
以上函数为取得gdt中的空表项,然后构造调用门,大致作用知道,但一些细节问题还搞不清楚。
搜索gdt的空表项为什么要用两个索引项CodeIndex,GateIndex,他们有什么作用?
还有就是CallGate[3]中的CallGate[0]和CallGate[1]都没有附值,他们是怎么与调用门联系的?
请各位高手给予解答,小弟先谢了。

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
2
这个好旧了,大概是WIN 9X上才能用的那个技巧吧。WIN NT的无驱动进R0,是别的方法
2007-10-21 21:23
0
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
3
举个例子的说...
2007-10-22 09:55
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
还是用驱动吧
2007-10-29 18:54
0
雪    币: 321
活跃值: (271)
能力值: ( LV13,RANK:1050 )
在线值:
发帖
回帖
粉丝
5
具体的办法是:
1。windows提供了一个无力内存可操作的对象\\Device\\PhysicalMemory,可以通过他直接操作无力内存。
2。windows ring0下的GDT映射的线性地址,我们可以通过softice获得。
3。根据保护模式内存映射,我们可以找出该线性地址对应的物理映射地址。
4。给该物理地址赋予写的权限。
5。直接在物理地址中增加一个ring3门。
6。这样就ring3下程序就可以通过这个门进入内核了。
2007-10-30 13:07
0
雪    币: 14
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
都看不懂,说的是什么?
2008-1-25 00:27
0
雪    币: 200
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
有那么复杂嘛?简单的20行代码就搞定的事情,你为什么非要弄个光盘,还卖650块钱呢?
2008-1-26 22:44
0
雪    币: 107
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
\\Device\\PhysicalMemory 过期了,打了SP就无效了
2008-2-5 16:31
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
9494 好象不行了
2008-2-5 17:48
0
雪    币: 442
活跃值: (107)
能力值: ( LV9,RANK:350 )
在线值:
发帖
回帖
粉丝
10
请参考我的blog其中提到了3种方法。
2008-2-7 13:56
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
这段程序能有什么用处
2008-2-7 15:56
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
BLOG在哪?
2008-3-20 11:52
0
雪    币: 145
活跃值: (85)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
13
侯配...你都不认识/
2008-3-20 12:52
0
游客
登录 | 注册 方可回帖
返回
//