首页
社区
课程
招聘
Windows内核-进程线程(四)
发表于: 2022-8-10 22:33 9917

Windows内核-进程线程(四)

2022-8-10 22:33
9917

1.Project-->New Project-->选择wrk目录-->ok

2.Add and Remove Project Files--->选中四个文件-->Add Tree

3.搜索


kpcr:cpu核控制块,cpu一个核一个kpcr结构

fs=0x30 在内核中的时候,指向的是kpcr结构

fs=0x3b 在应用层的时候,指向的是当前线程的TEB

1.kpcr结构

2.KiProcessorBlock

KiProcessorBlock:cpu控制扩展块数组,指向的是KPCR的0x120位置

KeNumberProcessors:核数量

扩展块

3.+0x000 NtTib

Windows是微内核,分内核结构和执行体结构

内核结构:只在内核中使用(KPROCESS属于内核结构)

执行体结构:专门用于和R3打交道 (EPROCESS属于执行体)

函数类型

Ex:执行体函数,进程、线程、链表、对象属性、赋值、取值、加锁相关

Ke:内核函数,大部分是导出

Ki:微内核函数,不导出,内部自己使用。进程、线程、cpu、调度相关

Ps:执行体函数,进程、线程相关

Mm:内存相关函数,一般导出

Mi:内存相关函数,Mm函数底层就是调用Mi,不导出

Io:文件、设备相关,导出

CC:文件缓存

Rtl:导出函数,一般是运行库,字符串操作等

Zw:SSDT,但是Zw不需要修改线程的先前模式

Nt:Zw函数会调用到Nt,本身Zw函数不实现功能

CM:注册表

hal:硬件函数

Ob:对象管理器,句柄,创建内核对象,查询内核对象等

Pnp:电源管理

Psp:执行体函数,进程、线程。Ps函数实现复杂功能的时候,都是调用Psp

KPROCESS

EPROCESS有一个对象头object_header,在减18位置

位置:-0x18,

Flags:修改OBJECT_HEADER的Flags为4可以保护进程

DriverEntry.c

DriverEntry.c

KTHREAD

dt nt!_KPRCB

KiFindReadyThread函数逆向分析,首先按x,进到KiSerachForNewThread,找到KiFindReadyThread的三个参数



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

最后于 2022-8-14 14:57 被zhang_derek编辑 ,原因:
收藏
免费 8
支持
分享
最新回复 (7)
雪    币: 239
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
请问这是哪本书上的实验吗
2022-8-11 17:05
0
雪    币: 164
活跃值: (86)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
请问这是哪个老师的教程
2022-8-15 09:52
0
雪    币: 6982
活跃值: (9179)
能力值: ( LV10,RANK:160 )
在线值:
发帖
回帖
粉丝
4
滴水
2022-8-15 14:14
0
雪    币: 229
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
谢谢分享
2022-8-17 14:27
0
雪    币: 14488
活跃值: (17488)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
6
zhang_derek 滴水
我好像还有滴水的教程,要不我分享一下?
2022-8-22 11:03
0
雪    币: 5332
活跃值: (3397)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
请问这是滴水哪一期的教程呢?
2023-3-22 10:42
0
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
5期
2023-6-19 19:46
0
游客
登录 | 注册 方可回帖
返回
//