阅读:1621回复:9
KeBugCheckEx的 问题
呵呵,我的 Display Driver 放到了 Driver Chain 中,
在 我 的 Driver中 EngLoadImage 原来的 dislplay driver, 我 根据 其 Module information 最后 得出 原来 display driver 的 Entry Point 可是 我在调用 该入口 的时候 怎么 能出现 CheckCode 为7F的 异常呢? 我得到 的Module 地址好象 也没错啊,因为 在 我在 取其Entry Point 是,在IMAGE_OPTIONAL_HEADER32 中 AddressOfEntryPoint 的RVA 与静态分析 的是一样的,DrvEnableDriver 就是 Display Driver 的入口 吧 还有 我想获得 DrvEnableDriver 的地址 还有什么方法? 谢谢 |
|
沙发#
发布于:2004-09-10 10:07
还有,就现在的问题 不是 入口 是否 真确的 问题,我 调试的时候 跟踪 过了,进入 原来的显示 驱动能 正确的 初始化,
怎么我的 显示 驱动 初始化 了两次,第一次没错,就是第二次的时候 在 Win32k.sys 里一个地方 抛出7F的 CheckCode 的异常 我还没仔细 看 在什么地方 出现的,有经验的大哥,什么情况下 会有CheckCode 为7F的 Exception 出现呢,DDK 的 BugCode.h 说的 与硬件 相关,到底是怎么回事呢? 谢谢! |
|
板凳#
发布于:2004-09-10 13:05
问题 怎么好象 是 softice 的 siwvid.sys 驱动 引起的呢?
跳到 siwvid.sys 中,引起 一个 死 loop 我 反汇编 看 DrvEnablePDEV 入口处 很归整,push ebp,mov ebp,esp ,sub esp,130h 但是 jawsid.dll就没问题,不知道 怎么搞的! 那位 仁兄 过来 支支 招啊! |
|
地板#
发布于:2004-09-10 21:25
hRealDriver = EngLoadImage("RealDriverName");
pDrvEnableDriver = EngFindImageProcAddress(hRealDriver, "DrvEnableDriver"); |
|
地下室#
发布于:2004-09-10 21:34
"我的 Display Driver 放到了 Driver Chain 中"
是什么意思? |
|
5楼#
发布于:2004-09-10 23:45
DrvEnableDriver 没有导出的 ,你这样是取不到 的,只能是 通过 zwXXX获得 模块基址, pe 文件头 取 入口也!
不过仍然 谢谢 大哥啊! 其实 我的没有 问题,我反汇编 了 我的显示驱动,我取得 的 DrvXXX的地址没错 ,启动时 调试 也是对的,就是 进了 siwvid.sys 的调试 中断 例程后 堆栈 平不了衡了! |
|
6楼#
发布于:2004-09-11 10:33
早说过了,用HOOK,ZWSETSYSTEMINFORMATION的方法在启动时来挂接所有显卡驱动.显卡加载的时候会调用这个函数
ZwSetSystemInformation(nType, pSystemInfo, nSizeSystemInfo 当nType为ZWSYSINFO_LOADIMAGE检测加载的是否为显示驱动,如是就进行HOOK |
|
|
7楼#
发布于:2004-09-11 11:32
wowocock 大哥,呵呵,谢谢了
|
|
8楼#
发布于:2004-09-11 16:25
ddk上说:
“DrvEnableDriver must be implemented in all graphics drivers. If you use the DDK build tools, and have set TARGETTYPE to GDI_DRIVER (see Building a Printer Graphics DLL), this function must be named DrvEnableDriver. This is the only display driver function that must be accessed by name. ” This is the only display driver function that must be accessed by name. OS也应该是通过name来获得display driver的这个函数的,你怎么确定没有export DrvEnableDriver? 你有试验过不行的吗? |
|
9楼#
发布于:2004-09-15 22:02
tornadohf 兄
你那样用也 能行,我试了,我以前用过一次,好象没成,后来看 export table,也没有 该函数,就没有 这样 用了,谢谢! |
|