社区
驱动开发/核心开发
帖子详情
关于Ring0 地址的问题
FrSysD
2012-01-21 10:52:30
RT
1.请问ProbeForRead的第三个参数是什么意思?
(msdn上没看懂)
2.请问ProbeForRead是只对Ring3的地址有用吗?(貌似是的?)
用try except进行异常处理就行?
...全文
86
7
打赏
收藏
关于Ring0 地址的问题
RT 1.请问ProbeForRead的第三个参数是什么意思? (msdn上没看懂) 2.请问ProbeForRead是只对Ring3的地址有用吗?(貌似是的?) 用try except进行异常处理就行?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
FrSysD
2012-01-29
打赏
举报
回复
谢谢……
已解决。
windows确实是一字节对其的……
jzxsasch
2012-01-23
打赏
举报
回复
请问ProbeForRead的第三个参数是描述该段内存是以多少字节对齐的,这函数描述内存是否可读,不可读就抛出异常,用SEH捕获作相应的处理。
FrSysD
2012-01-22
打赏
举报
回复
还有,ddk默认是几字节对齐?
FrSysD
2012-01-22
打赏
举报
回复
貌似第三个参数是对齐的字节数?还是要求的大小(那第二个参数是什么?)?wrk中第三个参数一般都是sizeof(ULONG)……
还有,Windows的struct都是一字节对齐的吧?
woshi_ziyu
2012-01-22
打赏
举报
回复
没接触过
不过看MSDN最好的解决方法 结合代码 理解就快一些
woshi_ziyu
2012-01-22
打赏
举报
回复
没接触过
不过看MSDN最好的解决方法 结合代码 理解就快一些
FrSysD
2012-01-21
打赏
举报
回复
自己顶顶。
看到wrk中还有一些 ProbeForReadSmallStructure 等等,也是和ProbeForRead 差不多吗?
CPU将特权级别分为4个级别:
RING0
,RING1,RING2,RING3是什么呢?
百度百科:
ring0
以及其他 ring:包围; 环绕; 通俗讲就是一圈一圈的,离得近的标号为:0。其次为,1。以此类推。 Windows 的内存可以被分为两个层面:物理内存和虚拟内存。 其中,物理内存比较复杂,需要进入 Windows 内核级别
ring0
才能看到。 通常,在用户模式下,我们用调试器看到的内存
地址
都是虚拟内存。 与此无关的一个图: ...
ring0
调用ring3-apc
最近一段时间都在解决
ring0
调用ring3函数的
问题
因为想在驱动中间实现启动一个应用程序,这个应用程序有可能是exe也有可能是dll,但是在核心层没有像WinExec或者LoadLibrary这样的API可供我们调用,并且驱动程序和应用程序的
地址
空间不同,一个是在高
地址
空间,一个在低
地址
空间,如何才能实现
ring0
调用ring3的函数呢,肯定是不能直接在驱动的
地址
空间中间执行,因为这些函数在
从进程到内核---ring3到
ring0
这次我们用中断来实现从ring3到
ring0
的跳转,当我们用中断门实现从ring3到
ring0
的转移时,会从TSS加载
ring0
的堆栈STACKR0,然后将调用者ring3的ss、esp压入新堆栈STACKR0,然后EFLAGS压入堆栈,然后将当前ring3的cs和ip入栈,然后加载调用门中的新的cs和ip,使IF=0,开始执行中断服务函数。 那么首先我们要准备TSS,其结构如下: typed
在
ring0
调用Ring3的代码
作者:VXK/CVC.GB时间:2005-02-05 每次上driverdevelop总看到有人问怎么在
Ring0
下调用Ring3的代码——Ring3使用
Ring0
已经是地球人全知道的事情了,但是
ring0
下使用ring3的代码恐怕很少有人知道,Ratter和Benny这两个高人以及Elzc的作者Elzcor各自提出过一种方法。总结起来就是三种方法,Zombie在2004年也提出过一个方法看起来像
让程序进入
ring0
级执行
让程序进入
ring0
级执行
驱动开发/核心开发
21,595
社区成员
21,709
社区内容
发帖
与我相关
我的任务
驱动开发/核心开发
硬件/嵌入开发 驱动开发/核心开发
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章