阅读:1598回复:4
问一个ApiHook的问题
我在www.vchelp.net上下载了一个ApiHook的源程序,
http://www.vchelp.net/vchelp/zsrc/apihook.asp?type_id=25&class_id=1&cata_id=2&article_id=457 自己用的时候发现有点BUG。 老是死。不知道这儿有没有人用过 里面有一段代码是将指定的虚拟内存对用户级可见,不是很明白。 有没有兄弟能讲解一下呢,非常感谢 |
|
沙发#
发布于:2003-08-05 12:50
我现在发现我遇到的问题就是:
如何使在驱动中分配的内存,让所有的用户层可读。 驱动里面分配的内存地址都是在 0x80000000上的, 大侠们提点建议吧 |
|
板凳#
发布于:2003-08-05 13:54
这个问题以前讨论过很多了:
可以参考MSDN中的文章: HOWTO: Map Adapter RAM into Process Address Space Q189327 HOWTO: Share Memory Between User Mode and Kernel Mode Q191840 SAMPLE: Section.exe on Sharing Memory Between Kernel & User Mode Q194945 在NT DDK 中有一个例子 MAPMEM (C:\\DDK\\src\\general\\mapmem) |
|
|
地板#
发布于:2003-08-05 18:05
但我这儿情况比较特殊。我不是与我自己写的应用程序来通信。
我在驱动里面申请的内存地址在0x80000000以上,然后在这里面存放相关的代码, 然后我修改了MessageBoxW地址开始处的指令,让他跳转到我申请的内存处, 当其他应用程序(不属于我控制的), 调用MessageBox的时候,指令将跳到 0x8000000以上的内存处, 这时候就会出现访问冲突了。 |
|
地下室#
发布于:2003-08-06 18:39
KERNEL MODE ADDRESS SPACE IS NOT READABLE FROM USER MODE.
|
|
|