【发布时间】:2015-03-01 22:37:56
【问题描述】:
我正在从用户空间读取地址并使用 RtlCopyMemory() 将数据复制到我的输出缓冲区,虽然我可以正常工作,但它缺乏任何防止读取无效地址的安全措施,这将在我的脸。
我知道我需要使用 SEH 来执行此操作,但我不确定我需要处理哪些异常,或者 RtlCopyMemory 是否会引发任何异常。如果没有,在将地址传递给 RtlCopyMemory() 之前如何检查地址是否有效?
【问题讨论】:
我正在从用户空间读取地址并使用 RtlCopyMemory() 将数据复制到我的输出缓冲区,虽然我可以正常工作,但它缺乏任何防止读取无效地址的安全措施,这将在我的脸。
我知道我需要使用 SEH 来执行此操作,但我不确定我需要处理哪些异常,或者 RtlCopyMemory 是否会引发任何异常。如果没有,在将地址传递给 RtlCopyMemory() 之前如何检查地址是否有效?
【问题讨论】:
阅读有关 ProbeForRead 和 ProbeForWrite,另外我建议您阅读以下内容:
和
http://www.codeproject.com/Articles/9575/Driver-Development-Part-Introduction-to-Implemen
【讨论】: