如何使用我的Windows内核驱动程序枚举所有符号链接(symboliclink)?像winobj一样(全局??)谢谢! 最佳答案 也许NtOpenDirectoryObject和NtQueryDirectoryObject函数帮助你。 关于windows-枚举内核驱动程序中的所有符号链接(symboliclink),我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/11602616
我知道在32位架构中,内核模式虚拟内存映射在0x80000000和0xFFFFFFFF之间。它包含一些结构如EPROCESS,ETHREAD...等等,还有当前进程的页面目录和表。虽然尝试获取某个函数的虚拟地址是ntoskrnl让我们说“nt!NtReadFile”,但我发现它映射到内核虚拟地址0x89421130中。我尝试用随机指令在RET之后修补一些nop,当切换到另一个进程上下文时,我发现我输入的指令仍然存在。这是否意味着加载Ntoskrnl的虚拟内存在每个进程虚拟地址空间中保持不变?谢谢。 最佳答案 Doesthatmean
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。这个问题似乎不是关于aspecificprogrammingproblem,asoftwarealgorithm,orsoftwaretoolsprimarilyusedbyprogrammers的.如果您认为这个问题是关于anotherStackExchangesite的主题,您可以发表评论,说明问题可能在哪里得到解答。关闭8年前。Improvethisquestion当内核需要向某个外设发送输出时,它如何知道使用哪个驱动程序?
我正在编写一个需要分配非分页内存池的驱动程序,出于性能考虑,该内存必须可以直接从用户模式程序访问。在驱动程序条目中,我用这两种方法分配了一些内存:pMdl=IoAllocateMdl(NULL,4096,FALSE,FALSE,NULL);if(!pMdl){DbgPrintEx(DPFLTR_IHVVIDEO_ID,DPFLTR_INFO_LEVEL,"ErroronIoAllocateMdl.Returningfromdriverearly.\n");returnSTATUS_INSUFFICIENT_RESOURCES;}MmBuildMdlForNonPagedPool(pMd
问题总结我的Windows应用程序包括一个加载相当简单的驱动程序的服务。根据MSKernelSigningdoc中描述的KMCS要求,该驱动程序包含嵌入式SHA1和SHA256签名,并包括两个签名证书的交叉签名证书链,用于在不使用CAT文件的情况下对驱动程序进行签名。该驱动程序在大多数Windows安装中都可以很好地加载,但是在极少数情况下无法加载,主要是在Windows7x64和Windows10x64上。错误为0x241(577):Windows无法验证此文件的数字签名。最近的硬件或软件更改可能安装了未正确签名或损坏的文件,或者可能是来自未知来源的恶意软件。更多信息在两个星期的大部
我使用Anacondainstaller安装了python并且很高兴地使用它附带的Jupyter版本。我还下载了(32-bit)windowsversionofpypy这在命令行中运行良好。如何让CPythonJupyter在运行我的python代码时使用pypy作为内核? 最佳答案 Pypy不需要不同的内核,它可以只使用ipykernel。因此,它没有单独列在Jupyter内核列表中。您可以使用用于installingkernelsfordifferentPythonenvironments的相同方法为pypy安装内核。例如,py
由于这些API,它在用户模式下简单明了。如何从Windows内核模块读取/写入指定进程的用户空间内存?驱动目标平台是windowsxp/2003 最佳答案 使用NtWriteVirtualMemory/NtReadVirtualMemory写入其他进程-您需要先打开该进程的句柄。请注意,如果您已经在进程中,则可以直接写入-例如,如果您正在响应来自进程的DeviceIoControl请求,您可以直接写入用户模式地址,它们将在地址中调用您的进程的空间。 关于Windows内核ReadProc
这是关于Windows内核驱动程序和内存管理的。我真的很好奇是否有一个函数(或者任何不方便的方法)来获取(或迭代)特定池标签的所有内存分配?这些是使用ExAllocatePoolWithTag(type,size,tag)...有使用特定池标签的内核函数,现在我需要找到使用该标签进行的所有分配?我比较确定这是不可能的(出于安全原因),但仍需要对此进行确认。干杯,将更新:(关于下面的WinDbg评论)kd>!poolfindObFlScanninglargepoolallocationtableforTag:ObFl(fffffa8002290000:fffffa8002350000)S
宿主:VisualStudio2012、Windows8宿主、WDK8目标:VirtualBox-Windows7当我尝试在VisualStudio中添加目标计算机(驱动程序->测试->配置计算机)时(如http://msdn.microsoft.com/en-us/library/windows/hardware/hh439359%28v=vs.85%29.aspx):我选择“配置计算机并选择调试器设置”我选择使用串行连接但结果总是“找不到VM名称的主机条目”如果我尝试通过网络连接,VS会给出相同的响应(我知道不支持通过网络从Win8主机到Win7目标的内核调试)。我看不到连接有问题
我最近开始尝试为Windows开发文件系统驱动程序,并开始研究VisualStudio2013中提供的内核调试器。内核开发器是一款了不起的软件——它能够调试实时内核(断点、堆栈跟踪、内存访问和所有内容)通过RS232连接连接的远程机器。我不明白的一件事是——如何通过RS232端口进行这种调试?我对内核的理解是,它是直接针对硬件组件的软件,是系统中最底层的软件之一。某些东西怎么能在内核“之上”运行,从而允许远程调试内核本身?内核如何可以纯粹在软件中进行调试?不干扰响应机器本身调试请求的软件(可能在内核下运行)? 最佳答案 内核调试器既