怎样取得WIN98、WIN2000下CR3的值?请高手解疑后付上原代码,谢谢
解决方案 »
- 如何将该C++结构体转换为Delphi语法格式
- 数据类型能不能这样在转换?
- ◆◆◇◇★★★★★★★请问如何把一个dll文件当作资源文件放入程序中★★★★★★◇◇◆◆
- 急急急,如何判断 一行中的某个位置,是一个字的上半字符,还是下半字符?sos
- synedit如何解决加入语法高亮后,部分中文显示为乱码的问题?
- 如何将很多小数点只保留二位,比如:0.45667->0.45,不用copy,急,在线等
- 很奇怪的问题!重装系统后,程序某部分的功能运行时就出错了!(没有改任何源代码)
- 同志们,帮忙查看这个错误信息!!!!!
- How to get the Screen saver name setting in Control Panel?
- 如果将一256色的BMP文件转换成16色。
- 有关DBGRID的使用的问题
- rave 5.1 和5.0 的问题 我已经没有分了
15分就想这个问题的答案????!!!Win98的就不说了,Delphi中用ASM进入Ring0 Mov EAX, CR3就出来了
2000的就不容易了
Tips:ZwQuerySystemInformation获得系统内核对象
其OffSet=0X18就是CR3的虚拟地址,换为物理地址,直接对RAM就可以了
<<< Linear Address to Physical Address Translation >>>
Total System Handle = 7272
Current Process ID = $00000CA4
Open Current PID Handle = $000000AC
Object EProcess virtual address = $81930D20
> PDE/PDBR/CR3 virtual address = EProcess + $18
PDE/PDBR/CR3 virtual address = $81930D38
PDE/PDBR/CR3 = $02CF9000当然你在2000下用驱动是Easy Job了
也可以是建立CallGate通过Far Call,进入Ring0,读CR3就很容易了哈哈:)