|
[讨论]关于文件系统IRP_MJ_CREATE
答案是Volume1,至于原理还是看看windows I/O系统的内容吧。另外,想要CDO收到IRP_MJ_CREATE,那需要通过CDO设备名称进行打开操作。 |
|
[求助]TDI过滤驱动老是蓝屏
问题不是调用了IoCallDriver导致的,我估计应该是你构造的IRP,或者传入的IRP有问题,导致了下层驱动处理的产生了问题。其实tdifw源代码写的都很清楚了,好好对比一下自己的代码和tdifw源代码,应该能够找到问题了。把tdifw好好研究一下,有道是:磨刀不误砍柴工。 PS:我感觉出问题的代码应该是从下面开始的,不知道你这是什么逻辑。 这个完成函数里,IRQL都是dispatch级别,所以无论IoCallDriver返回的结果是不是STATUS_SUCCESS,这个获取请求都应该结束了,正常的释放相关MDL内存。并且需要对PIRP Query执行完成操作。 最直接的方法就是完全照搬tdifw,等你自己真的明白的tdifw的每一行代码了,再来慢慢改写吧。 if(status!=STATUS_PENDING&&!NT_SUCCESS(status)){ if(Mdl!=NULL){ IoFreeMdl(Mdl); } if(Address!=NULL){ ExFreePool(Address); } } } err: if(Irp->PendingReturned) { IoMarkIrpPending(Irp); } return STATUS_SUCCESS; |
|
[求助]TDI过滤驱动老是蓝屏
你的驱动蓝屏原因是CreateOperatComplete函数中:“status=IoCallDriver(Exten->LowerDevice,Query);//发送查询地址请求”引起的蓝屏,通过你的蓝屏信息,可以发现,nt!MmUnlockPages+0x557调用引起了严重的错误,导致相关的MDL的引用在已经是0的情况下,再次进行Unlock操作。至于为什么不能对nonpage的MDL执行Unlock,MmBuildMdlForNonPagedPool的文档说明中有相关的说明。 |
|
[求助]passthru下对tcp进行拦截
看看楚狂人的《寒江独钓》这本书,里面讲的很清楚 |
|
[求助]我想一个能监控光盘刻录的驱动程序
使用minifilter肯定不行的 |
|
请问要监控本地打印机打印内容用什么方法?
你既然提到了spl文件,那肯定知道打印的数据都在spl文件中了,现在是如何获取打印机打印的时候生产的spl文件。最简单的方法是配置打印机的属性,强制打印机生产spl文件,然后我们通过监控spl文件的产生,进而dump spl文件。如果你只是为了审计打印内容这个还是比较容易的,如果既要审计打印内容,又要控制当前打印行为,那就比较麻烦。 |
|
[讨论]ReadFile 的底层是怎么实现的
你说的是windows系统,还是dos系统,或者wince系统......... |
|
请问要监控本地打印机打印内容用什么方法?
你说的软件叫什么名字,给个链接什么的。以便于分析。除了你上面说的方法外,还可以使用虚拟打印机技术,重定向本地打印机到虚拟打印机。为什么hook spoolsv进程就能够获取打印内容??如果知道这个方法的话,那就可以通过其他手段也能够获取。如果说打印审计,那么应该数立思辰了。 |
|
如何禁用网络连接那里安装与卸载的按钮
最简单的办法就是,找一个第三方的ndis中间层过滤驱动(比如某些杀毒软件或者卫士什么的),看看别人的inf文件时怎么写的,看懂了就知道怎么搞了 |
|
如何禁用网络连接那里安装与卸载的按钮
修改NDIS驱动的inf文件,可以创建隐藏的NDIS驱动。也就是安装的协议不会出现在你说的“本地连接 属性”的对话框中 |
|
[求助]如何将驱动绑定已经打开的串口?
HOOK串口驱动,这样就不用担心串口被占用的问题了。 |
|
[求助]远程管理软件的工作原理
二楼正解 |
|
[求助]局域网桌面监控的实现
使用vmware虚拟机,给每人开一个虚拟机,大家都登陆虚拟机干活,这样你就可以随时查看每一个人的桌面了 |
|
[求助]内存拷贝蓝屏,求助
CLI禁止中断发生 STL允许中断发生 这两个指令只能在内核模式下执行,不可以在用户模式下执行;而且在内核模式下执行时,应该尽可能快的恢复中断,因为CLI会禁用硬件中断,若长时间禁止中断会影响其他动作的执行(如移动鼠标等等),系统就会变得不稳定。在标志寄存器中中断标志清零的情况下,可以以“int ××”的形式调用软中断。 如果你使用了CLI命令,那么就等于禁止中断了,比提升IRQL还要厉害的。 还有就是,请把你修改后的代码和蓝屏信息发送上来,否则大家怎么去找原因呢?? |
|
[求助]学习汇编基础的一个问题
首先内存0000:0200H处,它指的是物理地址,而mov [bx],ax的意思是,是把AX放入DS:BX表示的内存地址:即DS*16+BX=0x20H*16+0=0x200H,也就是内存地址0000:0200H。 说白了这个题目考察的是寄存器表示的地址,如何转换成内存地址。 |
|
[求助]64位系统下,磁盘过滤驱动的安装
....... |
|
[求助]初学驱动帮忙看看几行代码
你根本就没有调用CreateMyDevice 这个函数,怎么能更改创建CDO设备对象呢?没有CDO你怎么能够通过应用层跟驱动通信呢??? |
|
[求助]驱动里面访问文件的方法
使用filespy工具观察一下试试,有可能发现全路径的写法 |
|
[求助]请问我如何获得磁盘上的分区信息?
这个应该是想通过符号链接名,得到对应的设备对象名称。 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值