首页
社区
课程
招聘
[原创] 巧妙利用ptehook的特性重建创建调试的调试通道
发表于: 5天前 960

[原创] 巧妙利用ptehook的特性重建创建调试的调试通道

5天前
960

前几天不是发了一个利用npt hook重建调试通道的文章:https://bbs.kanxue.com/thread-292825.htm
虽然是老掉牙的技术,但是反响意外的还不错
为了脱壳,这几天在研究创建调试时,发现npt hook一个不可避免的事情,效率太差了,尤其是在虚拟机里。。。
创建调试需要hook两个及其高频的函数:
NtCreatUserProcess,DbgkCreateThread
前者还好,是ssdt里的函数,我们可以用etw hook,效率还行
DbgkCreateThread就糟糕了,他不是ssdt里的函数,而且创建线程这种这种事情几乎是无时无刻不在发生,一hook就卡的系统不能用,我只能另寻其他hook
因为有pg,能够hook这些未导出的内核函数的hook太少了,可以的话我还是不希望搞打pg这么麻烦的事
有没有一种只能针对一个进程的内核函数hook呢?这样子还能避免高频调用导致的系统卡顿
于是我想到ptehook

参考:227K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6^5P5W2)9J5k6h3q4D9K9i4W2#2L8W2)9J5k6h3y4G2L8g2)9J5c8X3&6W2N6%4y4Q4x3V1j5I4z5o6V1&6z5b7`.`.
值针对一个进程,不会pg。。。ptehook就是一种挺完美的办法。。吗?
让我们回忆创建调试,调试器调用完NtCreatUserProces,把创建的进程的第一次线程放入等待队列,然后就跑路了,此时是等待cpu去第一次调度
但是对于被调试进程,我们至少要hook DbgkpQueueMessage DbgkForwardException KiDispatchException,难道说我们要抢先cpu第一次调度之前去hook?这显然不可能
但是我突然想起之前调试ptehook时发现的奇怪现象:
我们hook explorer进程的NtCreateFile给hook了,如果检查到参数是tips.txt,就会返回无权限
也就是我们无法打开tips.txt了
我们隔离了exploere.exe,用他打开tips.txt。。。打不开,超级正常
但是我们在桌面双击启动我安装好的notpad++,然后把tips.exe打开。。。打不开????
我们在windbg里切换到notpad++的上下文,使用命令u NtCreateFile,竟然第一条时jmp!这不是明显给hook过了
但是假如你在hook前提前启动一个cmd,然后装载驱动,然后用cmd启动notpad++,欸嘿,正常打开
后来拷打ai发现其原因是:
pml4t具有继承关系,注意我们“在桌面”启动,这时候其实就是explorer启动了notpad++,操作系统为了速度,直接复制了启动者高位的pml4e给他,导致他的也继承了hook了
这太好了,这样子我们的调试器调用NtCreatUserProces创建进程时,也会继承我们的hook
于是我拷打ai,烹饪出来成品:


传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!!

最后于 5天前 被Qmeimei10086编辑 ,原因:
收藏
免费 43
打赏
分享
最新回复 (27)
雪    币: 6
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
感谢分享
5天前
0
雪    币: 3529
活跃值: (7734)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
看看
5天前
0
雪    币: 1
活跃值: (468)
能力值: ( LV2,RANK:11 )
在线值:
发帖
回帖
粉丝
4
感谢分享
4天前
0
雪    币: 82
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
看看
4天前
0
雪    币: 0
活跃值: (339)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
看看
4天前
0
雪    币: 220
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
牛逼
4天前
0
雪    币: 153
活跃值: (1633)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
牛逼
4天前
0
雪    币: 113
活跃值: (2095)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
look look
4天前
0
雪    币: 188
活跃值: (1148)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
NB
4天前
0
雪    币: 687
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
学习学习
4天前
0
雪    币: 1999
活跃值: (366)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
学习学习
3天前
0
雪    币: 97
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13
mark
3天前
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
14
666
3天前
0
雪    币: 2790
活跃值: (6916)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
15
感谢你分享
3天前
0
雪    币: 12
活跃值: (870)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
学习学习
3天前
0
雪    币: 29
活跃值: (1120)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
6666666666
3天前
0
雪    币: 255
活跃值: (982)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
6666666666
3天前
0
雪    币: 0
活跃值: (4790)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
look look
2天前
0
雪    币: 353
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
20
感谢分享
2天前
0
雪    币: 1908
活跃值: (7463)
能力值: ( LV7,RANK:118 )
在线值:
发帖
回帖
粉丝
21
1
2天前
0
雪    币: 25
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
22
6666666666666666666666
1天前
0
雪    币: 144
活跃值: (2703)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
666
1天前
0
雪    币: 290
活跃值: (180)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
24
6
1天前
0
雪    币: 2873
活跃值: (3443)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
66666666
1天前
0
游客
登录 | 注册 方可回帖
返回