草庐IT

内核提权

全部标签

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

windows - 内核驱动签名

我环顾四周,似乎无法直接回答这个问题。我是业余程序员,我在Windows驱动程序方面做了大量工作,并为WindowsXP编写了我自己的个人“防病毒”驱动程序。所以不要误会我的意思,我不在任何软件开发公司或类似公司工作。我的问题是:就Windows7x64而言,是否有任何可能的合法方法可以用来释放我的驱动程序的签名,而该驱动程序仅供我个人使用?是的,我很清楚我可以对我的驱动程序进行测试签名并在Windows测试模式下在虚拟机中运行它,我经常这样做。但是,如果您在测试模式下使用过Windows,就会知道存在一些主要缺点。总而言之,我(一个业余爱好者)是否可以发布一个驱动程序供我个人使用,而

c++ - 内核态和用户态共享内存。如何共享句柄?

我正在尝试在用户进程和内核之间使用共享内存。选项一-让内核创建部分并让用户模式应用程序按名称“Global\my_mem”打开内存。它仅在只读模式下工作。当我尝试使用FILE_MAP_WRITE打开部分时,它拒绝访问(5)。不确定如何授予访问权限或修改DACL。选项二-通过IOCTL传回句柄。这是有问题的,因为在KERNEL中打开的部分句柄是0xFFFFFFFF80001234。我的理解是,设置了任何高位的句柄不能在用户模式下使用。特别是如果应用程序是32位的:)最初我预计该部分句柄会有点类似于内核文件句柄,我将能够使用它。在内核态和用户态之间建立共享内存channel的正确方法是什么

c - Windows 内核驱动程序 : How to determine if thread terminated?

我有一个线程用于某些操作,它需要保持事件状态,直到标志另有说明为止。我用PsCreateSystemThread创建线程,然后使用ObReferenceObjectByHandle获取ETHREAD在使用KeWaitForSingleObject卸载驱动程序之前等待线程终止的对象引用.Thefunctionthatcreatesthethreadandretrievesareferencetoit:ntStatus=PsCreateSystemThread(&hThread,(ACCESS_MASK)0,NULL,(HANDLE)0,NULL,ThreadRoutine,(PVOID)

windows - 关于 Windows 内核对象的问题

我的很多问题都在这里得到了解决,非常感谢你们。我还想再问一个。:)我正在阅读有关的文章,它说:当我们想要访问现有内核对象(而不是创建一个新内核对象)时,我们必须指定我们打算对该对象执行的操作。如果允许我们使用此类操作进行访问,则会返回内核对象的句柄。...如果返回的句柄用于调用需要与您请求的权限不同的API,则会发生拒绝访问错误。据我所知,句柄只是一个普通的整数,它只是进程句柄表的索引,句柄值不能提供更多信息。如果我们已经获得了内核对象的句柄,系统如何检测到我们将它用于我们请求之外的其他操作?一个内核对象可以有多个句柄,这些句柄的拥有者可能有不同的访问类型。系统在哪里存储这些不同的访问