广东省建设厅投诉网站服务器网站过多对排名
news/
2025/9/28 17:48:39/
文章来源:
广东省建设厅投诉网站,服务器网站过多对排名,泉州网站建设培训,石家庄商标设计无符号文件的驱动中断DriverEntry方法
当我们调试有符号的windows驱动时#xff0c;通常可以使用bu module!DriverEntry, 在模块的DriverEntry位置打上断点。 那么对于无符号驱动#xff0c;应该如何找到DriverEntry函数的位置呢#xff1f;
从正常的DriverEntry的调用栈…无符号文件的驱动中断DriverEntry方法
当我们调试有符号的windows驱动时通常可以使用bu module!DriverEntry, 在模块的DriverEntry位置打上断点。 那么对于无符号驱动应该如何找到DriverEntry函数的位置呢
从正常的DriverEntry的调用栈栈中可以看到驱动加载的调用路径基本上如下所示。 nt!IopLoadDriver-nt!PnpCallDriverEntry-module!DriverEntry 虽然每个系统的实现可能存在差异但是基本上都会调用到IopLoadDriver函数。 因此我们可以使用uf nt!IopLoadDriver命令查找 nt!IopLoadDriver的下层调用。 上图中可以看到在pe文件后又通过nt!PnpCallDriverEntry进入了下层函数。 然后在反汇编窗口中可以发现这里通过CFG的派遣调用方式执行了RAX指向的函数。 因此我们在上图红色位置打下断点等待内核执行到这里查看RAX的地址。即驱动的DriverEntry入口点。 _guard_dispatch_icall 描述_guard_dispatch_icall是CFG机制的派遣函数。 在内核中许多函数都需要进行间接调用出于安全性考虑避免目标地址被控制因此不会直接CALL目标地址而是先通过_guard_dispatch_icall检查地址合法性并由其进行调用如果地址合法它的作用相当于「CALL RAX」。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/920930.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!