|
|
[讨论][讨论]问个没人知道的
如同前面所述,CPU硬件实现: 如果当前内存采用了分页机制(CR0第31位),那么CPU读取到的内存地址则是虚拟地址,此时执行内存操作指令时,CPU会根据页目录和页表结构,自动将虚拟地址转换到物理地址,最终完成该指令。也就是整个物理内存的定位过程是CPU内部实现的! |
|
|
[求助]求教,C语言表达式出乎意外
怎么可能一样! dwMask & 1 是取dwMask的最低位,表达式的值完全取决于dwMask的最低的1位。 dwMask && 1 若是这样就完全一样! &是按位与,把 & 和 && 区别搞清楚就会自然明了~! |
|
|
[讨论][讨论]问个没人知道的
你是想了解CPU由虚拟地址定位到物理地址这个过程 ? 是通过页表进行虚拟地址和物理地址之间的映射的。google之~! |
|
|
[讨论]访问win32k.sys 这样可以不!
不可以,因为System(系统)进程中页表并没有映射Win32k.sys,即System进程的虚拟地址空间中并没有“加载”Win32k.sys,你再怎么改也白扯~ |
|
|
[求助]用驱动写内存,代码段无法写
首先,第2条和你现在说的跟修改页属性(LZ所问)没有任何联系,答非所问。 再者,你既然知道这个原理,何不在ring0通过ntoskrnl.exe导出的Zw*来获取Nt*在SSDT中的索引号?ring3获得了有啥意义,不一样还得传到ring0?多此一举~ |
|
|
[求助]用驱动写内存,代码段无法写
不清楚这段话是你自己总结的,还是网上查到的。第2点说的根本就是错的,误导人! ntdll.dll是ring3层的模块,导不导出函数也都是给ring3调用的,只是ring3进入ring0的接口,除此之外,跟内核调用没有任何直接联系。修改页属性的常规方法就是在ring0使用第1和3两个方法。 |
|
|
[求助]进程用户部份获取不到
提高权限试试~ |
|
|
|
|
|
[求助]搞了12小时 还是打不开设备 求指点
你在driver中处理IRP_MJ_CREATE和IRP_MJ_CLOSE了没 ? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
勋章
兑换勋章
证书
证书查询 >
能力值