1 / 9

WIN2K Mirror Driver Developing

WIN2K Mirror Driver Developing. 目前状况. 熟悉编译环境和调试工具 SoftICE 的使用; 对内核驱动程序加深了理解; 对联想、 QUARTICS 、 VNC 的驱动反编译 内核编程的内存申请和使用未明确; 内存共享及映射问题未明确; VNC 的驱动程序层次实现方法未明确;. DDK 与 DDI 的联合工作. 在编译中,分开编译避免头文件互相包含 解决了内核内存申请、 MDL 申请、绑定、映射等内核态函数的调用; 在 DDI 环境中调用 VIDEO 函数,可以得到 PCI 基地址,这样可以完成内存映射问题;

ivrit
Download Presentation

WIN2K Mirror Driver Developing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. WIN2K Mirror DriverDeveloping

  2. 目前状况 • 熟悉编译环境和调试工具SoftICE的使用; • 对内核驱动程序加深了理解; • 对联想、QUARTICS、VNC的驱动反编译 • 内核编程的内存申请和使用未明确; • 内存共享及映射问题未明确; • VNC的驱动程序层次实现方法未明确;

  3. DDK与DDI的联合工作 • 在编译中,分开编译避免头文件互相包含 • 解决了内核内存申请、MDL申请、绑定、映射等内核态函数的调用; • 在DDI环境中调用VIDEO函数,可以得到PCI基地址,这样可以完成内存映射问题; • 由于在内核态下要对传入的参数以及视频的存储分别申请内存,所以非分页内存申请的大小问题需要解决; • 调试中发现,如果不申请内核空间情况下进行METHOD_BUFFERED通信,造成缺页故障。

  4. softICE的使用 • 可以实现对用户态、核心态的程序进行源码级跟踪; • 调试前需要编译为CHECK模式,打开、转换、加载后设置断点; • 对miniport驱动的调试,则在安装时以及与用户通信时可以捕获到对应的断点; • 可以观察CPU寄存器以及某符号变量的值; • 具有最高的优先级,调试期间对CPU绝对独占;

  5. 内核驱动程序的认识 • 内核态下存储空间的操作要谨慎,使用完要释放; • 内核驱动程序与用户程序的通信的方式,我们选择使用符号连接和I/O控制的方法; • 使用method_buffered的模式进行I/O控制操作的一系列问题,如参数空间申请和释放 • 对内核态下的函数缺乏系统的掌握; • DriverEntry例程的参数,Display与WDM的区别

  6. 对联想镜像驱动反编译 • 并没有使用内存映射直接操作的方法,而是使用的Bitblt以及分块检测; • 镜像驱动基本和微软功能一致,并不高效; • 对小运动区域捕捉快速,对大幅图像则效率很低

  7. 对QUARTICS驱动的反编译 • 未使用DeviceIoControl以及符号连接来打开驱动程序; • 使用了镜像驱动的直接内存映射和操作; • 如何在用户态程序中读取该内存镜像不明确; • 使用了虚拟DISPLAY,将镜像内存搬移到虚拟内存中进行显示; • 虚拟驱动下全屏视频为何流畅的方法未知;

  8. 对VNC驱动的反编译 • 其使用符号连接及I/O控制方法进行通信; • 在miniport驱动上层覆盖一个过滤驱动,负责与用户态程序的通信; • 在miniport中如何得到基址未知; • 该过滤驱动程序的如何设计未知;

  9. 当前亟需解决问题 • 过滤驱动程序的原理及与主驱动通信方法 • 或其他的用户与视频miniport驱动通信方法

More Related