草庐IT

内核开源

全部标签

c - 从 C 中的 Windows 内核驱动程序读取注册表

我需要从注册表(最好)或文件中读取设置。该驱动程序是一个内核驱动程序,设置为启动类型设置为SYSTEM,因此所有服务和WinAPI不一定都可用。我正在尝试使用RtlQueryRegistryValues函数以便从注册表中读取单个String值,但无论我做什么,我似乎都得到相同的0xC0000034转换为STATUS_OBJECT_NAME_NOT_FOUND的错误代码.根据MSDN上提供的文档STATUS_OBJECT_NAME_NOT_FOUND从RtlQueryRegistryValues返回当路径参数与有效键不匹配时,或者设置了特定标志并且不满足特定于该标志的条件时。据我所知,注

windows - 有助于在操作系统类(class)中学习 Windows 内核开发的资源?

我目前正在上大学操作系统类(class),我们正在为我们的项目研究Windows内核,更准确地说是WRK,即Windows研究内核。WRK基于win2k3服务器。然而,我真的很难挖掘资源来帮助学习操作系统开发、Windows内核开发的基础知识以及一般地绕过WindowsAPI。我们正在使用Russinovich的MicrosoftInternals一书,但我想知道你们中是否有任何人可以向我推荐一些很棒的资源,无论是书籍、在线指南还是一些旧的类笔记。谢谢! 最佳答案 您具体在寻找什么?在线资源?为此,OSROnline是更好的网站之一

windows - 任何开源浏览器 GUI 自动化工具都支持单击页面上任何位置的特定图标?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。在Windows或Linux平台上,是否有一个GUI自动化工具可以打开浏览器页面(任何浏览器,我不在乎),然后单击特定图标图像的每个实例,无论它在哪里在页面上,无论它存在多少次。我似乎记得IBM的RationalRobot中的这种能力。对于身无分文的人(哦,是的......和道德上的优越者:-))是否有开源替代品编辑:我希望能够单击特定的位图或像素矩形,

c++ - 我可以直接访问 Windows 内核系统调用吗?

我一直在研究Windows内部结构,最近才了解系统调用,我想知道是否可以像函数一样使用这些系统调用?我知道它们并不是真的要从外部访问。例如:NtUserEmptyClipboard是Win32k.sys中的一个系统调用,它的地址是0x117f如果我想像函数一样使用这个调用,我该怎么做呢? 最佳答案 你想做什么在很大程度上取决于你感兴趣的架构,但要知道的是,ntdll.dll是每个系统调用的用户模式蹦床-即唯一的一个在一天结束时实际进行系统调用的是ntdll。因此,让我们通过打开任何旧的exe(我选择记事本)在WinDbg中反汇编这些

C++ - 直接写入内存(内核)

我之前也问过同样的问题,但是我的帖子不知为何被删除了。无论如何,我正在尝试使用C++并编写一个允许我直接访问内存并向其中写入内容的程序。我听说我需要对内核做一些事情,因为它是连接操作系统和应用程序的“桥梁”(我认为)。无论如何,我可以为内核下载一些sdk吗?我在我之前的帖子(一段时间后被删除)中说过,这样做的原因是因为我想按照我大学教授的要求尝试让Windows7崩溃。(所以请不要问我诸如“你为什么要让windows崩溃?”之类的问题……)任何帮助将不胜感激。 最佳答案 如果您对使用内核感兴趣,您可能正在寻找Windows驱动程序工

windows - 内核态定时器

我怎样才能在内核模式下有一个计时器,以便在WindowsXP及更高版本上大约每秒调用我的驱动程序中的指定函数?我应该能够使用函数中的所有函数(特别是ZwQuerySystemInformation)。我不需要高分辨率计时器或毫秒精度或类似的东西,我只需要一种方法来安排一个函数在内核模式下每秒运行一次,并且它必须在所有32位系统windowsxp和更高版本上工作。 最佳答案 通过KeInitializeTimer创建内核定时器.使用KeSetTimerEx设置定时器并使用1s的周期。在您的驱动程序中创建一个线程。在线程中,调用KeWa

c++ - 内核和驱动程序有什么区别?

由于我的主要语言是C++,并且因其强大的硬件功能而广受赞誉,因此我决定进一步学习计算机体系结构。在浏览某些东西时,我偶然发现了设备驱动程序。因此,自然而然地,我决定查找它。据我了解,设备驱动程序是处理特定硬件组件的计算机程序。我也知道内核是一个计算机程序,可以充当软件到硬件的桥梁。由于某种原因,我的头脑无法区分两者。在Windows平台上,有人可以向我解释差异并解释他们所扮演的不同角色。提前致谢。 最佳答案 这些术语的定义不是很好。但这是关于这个话题的一些杂谈...请注意,当您安装Windows(或Linux,MacOS或其他操作系

windows - 内核调试: Windows 7 hangs at boot time

有时,我会遇到Windows在启动时等待内核调试器被附加的情况。您会看到“Windows正在启动”文本,但尚未看到Logo。如果我现在附加调试器,就会播放Windows7的Logo动画。随后Logo开始闪烁。在此阶段,引导过程不再进行。CPU使用率降至最低。我通常会等待几分钟,但什么也没有发生。这不会一直发生。但是,如果发生这种情况,VM重置将无济于事。我需要使用启动修复来解决这个问题。不幸的是,这需要永远。除了运行启动修复,我还能做什么?提前致谢! 最佳答案 要解决您遇到的问题,您只需在启动过程中按F10。并删除/debug和相关

c - 在 Windows 内核中打开、读取和写入串行端口

我正在用C编写Windows内核驱动程序,我需要通过串行设备(特别是COM3)发送和接收数据。我被困在CreateFile、ReadFile和WriteFile函数上,因为这些似乎是在内核中不起作用的用户空间函数。我错了吗?或者,如果没有,从Windows内核中打开和使用串行端口的最佳方法是什么?非常感谢。 最佳答案 你需要ZwCreateFile,ZwReadFile和ZwWriteFile在内核模式下工作的函数。 关于c-在Windows内核中打开、读取和写入串行端口,我们在Stac

用于直接 I/O 的 Windows 内核驱动程序——有人去过那里吗?

我需要以我们目前正在做的更好的方式处理到并行端口的直接I/O-目前我们使用一个内核驱动程序,它使用I/O保护映射“打开”可用地址。这工作正常,但越来越多的落后。我们仍然希望继续使用并行端口,并且有非常令人满意的CardBusExpressCard等并行端口卡供应商。我想创建一个驱动程序,它知道总线枚举器分配给设备的地址,并允许我写入这个地址来self的(Delphi)应用程序。由于这个主题的复杂性,我正在为从哪里开始而苦苦挣扎。请问有人走过这条路吗? 最佳答案 您可以试试inoutp32.dll。请访问:http://sheepdo