首页
社区
课程
招聘
[原创]浅谈之重读老文章之那些年我们追过的gdt hook
发表于: 2014-4-27 02:22 9182

[原创]浅谈之重读老文章之那些年我们追过的gdt hook

2014-4-27 02:22
9182
好久不见啊大伙,大一下学期更加的忙碌,每天就是上课,敲代码,敲代码,泡妞,泡不成,换一个接着泡,感觉就像吃泡椒,泡太久了,味道太重,泡不久呢,又没味道。
1.闲话少说,接着今晚的 GDT HOOK
(1).概念请百度。
就说关键部分。
typedef struct CALLGATE_DESCRIPTOR
{
	USHORT  offset_0_15; (2)
	USHORT selector;
    UCHAR    param_count : 4;
	UCHAR    some_bits   : 4;
    UCHAR    type        : 4;
	UCHAR    app_system  : 1;
	UCHAR    dpl         : 2;
	UCHAR    present     : 1;
    USHORT  offset_16_31(3);

2.我们来说说这个的结构(2)(3)我就不说了,首先是 DPL(Descriptor Privilege Lebel)权力等级描述,我们是为了让r3访问这个全局描述符所以我们要把DPL=3.
3.param_count 表示你建立的new pro 的参数有几个;
4.selector 选择段,我们要写0x8(windows)下都是;
5.type        类型:调用门的类型是0xc;

6.先贴代码在解释~ ~.
(1.)要先得到人家的地址,
ULONG  Gdtbase()
{
	char gdt[6] ;
	ULONG base;
	__asm sgdt gdt;
	base=*(ULONG *)(&gdt[2]);
	DbgPrint("base 0x%x\n",base);
	return base;	
}

(2.)接着要初始化人家:
CALLGATE_DESCRIPTOR cg;
  cg.selector=0x8;
  cg.param_count=0;
  cg.type=0x3;
  cg.dpl=0x3;
  cg.offset_0_15=0xffff&Address;
  cg.offset_16_31=Address>>16;
  return cg;

(3.)接着要hook 人家(好害羞)
Void  Hook(CALLGATE_DESCRIPTOR cg)
{
PSEG_DESCRIPTOR gdt;
PSEG_DESCRIPTOR  gdtEntry;
PCALLGATE_DESCRIPTOR old;
CALLGATE_DESCRIPTOR  oldcg;
int i=0;
gdt=(PSEG_DESCRIPTOR)Gdtbase();
old=(PCALLGATE_DESCRIPTOR)&(gdt[60]);
DbgPrint("0x%x\n",sizeof(CALLGATE_DESCRIPTOR));
for (i=0;i<=0x1F;i++)
{
	DbgPrint("0x%x\n",&(gdt[i]));
}
oldcg=*old;
gdtEntry=(PSEG_DESCRIPTOR)&cg;
gdt[60]=*gdtEntry;

}

7.下面解释hook idt

typedef struct SEG_DESCRIPTOR{
	UINT32 base:32;        
	UINT32 seg_limit:20;   
	UINT32 g:1;        
	UINT32 d_b:1;      
	UINT32 unused:1;   
	UINT32 avl:1;      
	UINT32 p:1;        
	UINT32 dpl:2;      
	UINT32 s:1;        
	UINT32 type:4;     
}SEG_DESCRIPTOR,*PSEG_DESCRIPTOR;

首先人家这个结构占了8个空间,so 数字下表也就是往前面+8x,系统一边段选择被试用0x1-0x1f;你想XX也可以每人拦你,你想插入新的每人管你,甚至我们可以改变他们的权利等级.
8.好像扯来扯去,都没说概念,测试一下
9.这个很重要,cpu KeSetSystemAffinityThread 设置一下线程只绑定第x个cpu那。
Super-Rootkis 121157016 欢迎你的到来
好多牛都在你们,最近群的活跃度不太好,进来后请看群规定.


                                 

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

上传的附件:
收藏
免费 5
支持
分享
最新回复 (12)
雪    币: 40
活跃值: (627)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
沙发 哈哈 基佬乃好
2014-4-27 02:25
0
雪    币: 248
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼主受一枚,鉴定完毕
2014-4-27 10:04
0
雪    币: 219
活跃值: (738)
能力值: (RANK:290 )
在线值:
发帖
回帖
粉丝
4
←_←忘记丢附件了!上课回去搞
2014-4-28 10:14
0
雪    币: 138
活跃值: (306)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
5
看标题我还以为是老V
2014-4-28 13:24
0
雪    币: 219
活跃值: (738)
能力值: (RANK:290 )
在线值:
发帖
回帖
粉丝
6
让你失望了~ ~ 忙了一晚上
2014-4-28 21:52
0
雪    币: 2177
活跃值: (2045)
能力值: (RANK:400 )
在线值:
发帖
回帖
粉丝
7
还是读书那会最舒服啊。
2014-5-1 23:22
0
雪    币: 257
活跃值: (67)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
隐藏IDT hook的绝招啊
2014-5-1 23:43
0
雪    币: 151
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
真是羡慕这些读书的学生啊
2014-5-2 00:50
0
雪    币: 18
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
这个开起来很厉害的样子
2014-5-2 02:18
0
雪    币: 3836
活跃值: (4142)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
这方法论坛上早就有了。。。。。。。
2014-5-2 09:47
0
雪    币: 341
活跃值: (85)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
12
真以为是老V = =
2014-5-3 10:50
0
雪    币: 253
活跃值: (46)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
13
每次看楼主发的帖子都感觉到真心蛋痛。。。
2014-5-4 09:51
0
游客
登录 | 注册 方可回帖
返回
//