草庐IT

windows - 为什么在内核模式下调用 ZwCreateKey 似乎可以绕过 Windows 安全?

与我合作的团队最近面临着使我们的软件与第三方虚拟化软件兼容的挑战。该软件使用内核驱动程序来执行Windowsnative注册表API(ZwCreateKey等)的Hook。它通过HookNtdll中的调用来工作。我们的软件也相当低级,在某些情况下需要访问真实注册表而不被Hook。我们正在探索使用我们自己的内核驱动程序调用ZwCreateKey等的可能性,以我们的名义绕过它们的Hook。这实质上意味着创建一个NTLegacy驱动程序和一个提供我们自己的native注册表功能的用户模式库。库和驱动程序非常简单,我们只需使用IOCTL将ZwCreateKey等所有参数传递到我们的驱动程序中,

c - 如何使用过滤器驱动程序(内核)捕获文件访问尝试并提供对话框以允许/拒绝(用户)?

我一直在查看Windows的FileSystemFilterDrivers.我从这个“FsFilter”示例开始:http://www.codeproject.com/Articles/43586/File-System-Filter-Driver-Tutorial通过努力,我设法构建并签署了适用于从64位Win8到32位WinXP的所有版本的版本。(好吧,只要我运行Bcdedit.exe-setTESTSIGNINGON以允许它接受我的测试证书,因为我没有向Microsoft支付250美元来签署我的.SYS文件。:-/)现在我要修改FsFilter。我希望对某些类型的文件的写访问被过

c - 卸载 Windows 驱动程序

前段时间我决定学习如何编写驱动程序。不幸的是,我没有走得太远,因为对于测试驱动程序来说,能够在不需要重新启动机器的情况下卸载它是很重要的。现在我回到了它,但我无法靠自己克服它。现在我想只是为了让问题更直接,你肯定想看到这个:VOIDUnload(PDRIVER_ObjectDriverObject){DbgPrint("Unload\r\n");}和NTSTATUSDriverEntry(PDRIVER_OBJECTpDriverObject,PUNICODE_STRINGpRegistryPath){DbgPrint("Entry\r\n");pDriverObject->Drive

c - 如何启动一个自写的驱动程序

我在VisualStudio2013中编写了一个驱动程序。构建过程成功。然后我准备了一台traget计算机并将驱动程序文件复制到它上面。然后我安装了驱动程序:C:\Windows\system32>pnputil-a"E:\driverZeug\KmdfHelloWorldPackage\KmdfHelloWorld.inf"Microsoft-PnP-DienstprogrammVerarbeitungsinf.:KmdfHelloWorld.infDasTreiberpaketwurdeerfolgreichhinzugefügt.VeröffentlichterName:oem4

windows - 从驱动程序创建进程

有没有办法在WindowsNT平台(XP-W7)上从内核模式创建用户模式进程?编辑:我必须只安装驱动程序。这是项目的具体内容。 最佳答案 要创建有效的win32进程,驱动程序必须与CSRSS通信(完全没有记录)。因此,我最终将用户模式​​APC排队,并在现有win32进程的上下文中为APC代码分配虚拟内存(该代码将调用CreateProcess并完成工作)。这是一种棘手的方法,但它确实有效。 关于windows-从驱动程序创建进程,我们在StackOverflow上找到一个类似的问题:

windows - 内核模式和用户模式应用程序之间的通信

我构建了一个在内核模式下运行的WFP标注驱动程序。现在,我想弄清楚如何在这个驱动程序和我在用户模式下运行的GUI应用程序之间进行通信。有什么想法吗?正是我想要的是这样的:标注驱动程序检测到端口4444上的传入连接(这不是我的问题的一部分)驱动程序向用户模式应用程序发送消息。该应用向用户显示一条通知,询问我们是否应接受/阻止连接。用户模式应用将用户的响应发送回callout驱动程序。谢谢! 最佳答案 我同意LordDoskias的观点。您需要创建一个设备对象并使其可用于Win32领域。然后就可以使用CreateFile、ReadFil

Windows防火墙编程

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭2年前。Improvethisquestion我在谷歌上搜索了很多次,直到我创建了这个问题,所以如果那里有一些教程,请原谅。我没有找到他们。如何在Windows中编写防火墙应用程序代码?我考虑过在每个进程中使用内联Hook的用户模式防火墙,但问题是我无法在Windows7中Hookcsrss.exe(它创建新进程)。第二件事是它不是很干净并且会肯定被检测为恶意软件。所以我认为我应该在内核模式下将API作为驱动程序挂接。但是有3个问题。首先我不知道内核

windows - 如何在内核模式 Hook 中获取调用者 SID? ( Windows )

我正在开发一个HookWindows中某些功能的驱动程序(强化驱动程序会阻止某些操作)。问题是,我想记录哪个用户试图运行这些操作。例如,我在ZwSetValueKey上放置了一个钩子(Hook)以过滤注册表写入。钩子(Hook)工作完美,但我不知道如何获取调用者SID。我发现我可以使用ExGetPreviousMode确定调用者的模式(即用户模式或内核模式)。但是如果调用方处于用户模式,我不太确定如何确定SID。谢谢。 最佳答案 如果这是用户模式,您将从GetCurrentProcess或GetCurrentThread开始,然后调

windows - 错误 LNK2019 : unresolved external symbol __CheckForDebuggerJustMyCode referenced in function DriverEntry

我编写了一个Windows10驱动程序。下面是代码,实际上代码是learn.microsoft.com的示例。有没有人知道我应该做什么来处理这个问题。#include#includeDRIVER_INITIALIZEDriverEntry;EVT_WDF_DRIVER_DEVICE_ADDKmdfHelloWorldEvtDeviceAdd;NTSTATUSDriverEntry(_In_PDRIVER_OBJECTDriverObject,_In_PUNICODE_STRINGRegistryPath){//NTSTATUSvariabletorecordsuccessorfailu

windows - 如何以编程方式从连接待机中唤醒 Windows 8.1

有没有办法以编程方式从连接待机中唤醒Windows8.1?根据我的要求,使用商店应用程序后台任务或session0服务是可以接受的。我的场景是我有一个要定期调用(或由推送通知触发)的商店应用程序后台任务。调用后台任务时,它会检查是否满足特定条件。如果是这样,它应执行操作以将设备从连接待机中唤醒。我需要退出CS的原因是我需要在满足条件时启动一个进程。这个进程将服务于一个TCP连接运行一段延长的时间。它有点像远程桌面服务器,它会根据连接请求自动唤醒,但通常处于连接待机状态以节省电量(设备使用电池)。我想到的第一种方法是使用带有“唤醒计算机运行”选项的计划任务。但是根据thispost,它不