jjzjj

windows - Windows内核模式代码签名问题

问题总结我的Windows应用程序包括一个加载相当简单的驱动程序的服务。根据MSKernelSigningdoc中描述的KMCS要求,该驱动程序包含嵌入式SHA1和SHA256签名,并包括两个签名证书的交叉签名证书链,用于在不使用CAT文件的情况下对驱动程序进行签名。该驱动程序在大多数Windows安装中都可以很好地加载,但是在极少数情况下无法加载,主要是在Windows7x64和Windows10x64上。错误为0x241(577):Windows无法验证此文件的数字签名。最近的硬件或软件更改可能安装了未正确签名或损坏的文件,或者可能是来自未知来源的恶意软件。更多信息在两个星期的大部

windows - 安装 ndis 微型端口驱动程序后 Wireshark 不显示界面

安装微型端口驱动程序后,Wireshark不显示以太网接口(interface)。Wireshark显示“未找到接口(interface)”。但是MicrosoftMessageAnalyzer和NetMon可以定位适配器接口(interface)并显示捕获的数据包。但是如果我重新启动机器,Wireshark就能够找到该接口(interface)。我怀疑这是由于WinPcap和我的微型端口驱动程序之间的绑定(bind)问题。如果我错了请纠正我!我是否需要更改INF文件或查看OID请求部分,因为NPF过滤器(由WinPcap使用)无法处理微型端口驱动程序?关于,简森

windows - 文件系统筛选器驱动程序 - 拒绝创建文件

我创建了一个文件系统过滤驱动程序。我的驱动程序过滤IRP_MJ_CREATE并打印文件名。NTSTATUSDispatchCreate(__inPDEVICE_OBJECTDeviceObject,__inPIRPIrp){PFILE_OBJECTFileObject=IoGetCurrentIrpStackLocation(Irp)->FileObject;DbgPrint("DispatchCreate():%wZ\n",&FileObject->FileName;)returnDispatchPassThrough(DeviceObject,Irp);}这很好用。现在我想在每次创

windows - 将过滤器驱动程序安装到现有设备

我正在学习如何编写过滤器驱动程序,并尝试在现有的HID驱动程序(鼠标或键盘)上安装一个以进行练习。据我了解,我至少应该向硬件注册表项添加一个UpperFilters项。还有什么我应该做的吗?当我使用regedit手动将UpperFilters键添加到我的目标USB鼠标设备时,regedit提示它无法创建该键。我怀疑regedit不允许修改Windows提供的设备驱动程序堆栈注册表。是否有任何其他方法可以将我的筛选器驱动程序安装到现有设备堆栈? 最佳答案 默认情况下,Windows7不允许在HKLM\SYSTEM\CurrentCon

c++ - 如何强制 Windows FAT32 驱动程序重新加载 FAT 表?

我正在实现自定义Windows磁盘驱动程序,需要FAT32Windows驱动程序重新加载FAT表1和2,它们位于数据扇区下方。如何做到这一点?我需要更快的方法而不卸载驱动器。为什么我这样做是因为磁盘是内存虚拟磁盘,数据是在访问扇区的过程中从网络中获取的。我正在即时写入目录数据,它可以工作,但不适用于文件-因为驱动程序有时会获取FAT-集群是免费的,所以文件不起作用。我分解了fastfat.sys并发现了一些要点...至少我找到了可能会重新加载fat表的设备ioctl代码,如果我成功了我会在这里发布。 最佳答案 强制卸载卷并重新安装它

Windows 内核 ReadProcessMemory()/WriteProcessMemory()?

由于这些API,它在用户模式下简单明了。如何从Windows内核模块读取/写入指定进程的用户空间内存?驱动目标平台是windowsxp/2003 最佳答案 使用NtWriteVirtualMemory/NtReadVirtualMemory写入其他进程-您需要先打开该进程的句柄。请注意,如果您已经在进程中,则可以直接写入-例如,如果您正在响应来自进程的DeviceIoControl请求,您可以直接写入用户模式地址,它们将在地址中调用您的进程的空间。 关于Windows内核ReadProc

windows - NDIS 5/6 中间过滤器驱动程序

背景:我需要创建一个NDIS过滤器中间驱动程序。该驱动程序将在收集元数据(主要是时间信息)的同时传递所有流量。驱动程序将通过插入自己的包含元数据的数据包并将它们向上传递到堆栈,将此信息导出到用户应用程序。我的问题是关于NDIS版本的。最终,我将不得不为WindowsXP和7编写一个驱动程序。但是目前,我只会将其中一个作为概念/原型(prototype)的证明来实现。我知道在NDIS6中,他们将过滤器功能从通用中间驱动程序中分离出来,成为一个单独的驱动程序类型(轻量级过滤器),以简化过滤器驱动程序的创建。Microsoft在DDK中为NDIS5和6提供了直通过滤器驱动程序的示例。我一直在

Windows 内核 - 是否有类似 ExGetPoolsForTag(pool_tag) 的东西?

这是关于Windows内核驱动程序和内存管理的。我真的很好奇是否有一个函数(或者任何不方便的方法)来获取(或迭代)特定池标签的所有内存分配?这些是使用ExAllocatePoolWithTag(type,size,tag)...有使用特定池标签的内核函数,现在我需要找到使用该标签进行的所有分配?我比较确定这是不可能的(出于安全原因),但仍需要对此进行确认。干杯,将更新:(关于下面的WinDbg评论)kd>!poolfindObFlScanninglargepoolallocationtableforTag:ObFl(fffffa8002290000:fffffa8002350000)S

c# - 如何使用odbc 驱动程序连接MS access 2010 (.accdb) 数据库

谁能告诉我如何在C#和.NET4.0中将Msaccess2010(.accdb)数据库与odbc驱动程序连接起来我试过了stringconnetionString=("Driver={MicrosoftAccessDriver(*.mdb*.accdb)};DBQ=C:\\Users\\Administrator\\Desktop\\Newfolder\\MatchDetails.accdb;");OdbcConnectionmyConnection=newOdbcConnection(connetionString);try{myConnection.Open();MessageBo

windows - Visual Studio 中的 Windows 内核调试器如何工作?

我最近开始尝试为Windows开发文件系统驱动程序,并开始研究VisualStudio2013中提供的内核调试器。内核开发器是一款了不起的软件——它能够调试实时内核(断点、堆栈跟踪、内存访问和所有内容)通过RS232连接连接的远程机器。我不明白的一件事是——如何通过RS232端口进行这种调试?我对内核的理解是,它是直接针对硬件组件的软件,是系统中最底层的软件之一。某些东西怎么能在内核“之上”运行,从而允许远程调试内核本身?内核如何可以纯粹在软件中进行调试?不干扰响应机器本身调试请求的软件(可能在内核下运行)? 最佳答案 内核调试器既