草庐IT

内核安全

全部标签

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

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

java - 我可以在 Windows 64 位平台上安全使用的最大 Java 堆大小是多少?

我们使用64位Windows2003服务器运行WebSphere/J2EE应用程序(JVM也是64位)。机器有16GB物理内存。不幸的是,我们的应用程序是内存密集型的,我们仍然需要一些时间来添加额外的内存。我了解操作系统本身需要一定数量的内存。话虽这么说,假设这是系统上运行的唯一应用程序,我们可以使用的最大堆大小是安全的(没有分页?)? 最佳答案 我认为答案将取决于许多因素,其中许多因素很难预测。IMO,确定安全最大堆大小的最实用方法是反复试验。我会从大约15Gb的最大堆大小开始,查看系统的内存/分页统计信息,然后向上或向下调整。

c++ - 监视内核注册表更改

人们能否就我需要研究的主题给我一些建议(没有双关语意)以便能够做到这一点?我不是真正的Windows专家,但我能很快掌握新概念。我看到了MarkRussinovich和BryceCogswell写的进程监控程序:http://technet.microsoft.com/en-gb/sysinternals/bb896645它可以查看内核中注册表键值发生的所有事情。过去,我已经能够使用C#和用户级注册表访问来执行此类操作,但我无法使用从codeproject获得的包装器套件访问内核。人们可以帮助我了解我应该从哪里开始吗?我想我是在寻求更多有关Windows/OS方面的帮助。这样做的原因:

windows - Windows证书存储中的私钥安全

当我将公共(public)/私有(private)对导入Windows证书存储区时,Windows不需要任何类型的密码来加密key。由此我得出结论,如果它是用户的商店,它会使用用户的密码(或者可能是用户的散列密码)来加密私钥,如果是本地机器商店,它可能是某种用于加密私钥的基于硬件的key。我做对了吗???如果我这样做了,如果我可以解密key,那么不可导出key的意义何在???最后一个问题-如果我到此为止,还有哪些选择? 最佳答案 正如“SLanks”链接所解释的那样,私钥是用用户密码或机器密码加密的(取决于key在商店中的位置)。因

c++ - CreateSemaphoreEx 安全属性与访问掩码

CreateSemaphoreExAPIWindows平台上有以下参数:LPSECURITY_ATTRIBUTESlpSemaphoreAttributes,和DWORDdwDesiredAccess我知道它们都用于控制访问,但是,我不确定它们之间的关系以及它们之间的区别。例如,如果我将dwDesiredAccess设置为SYNCHRONIZE,但我创建了一个带有空DACL的安全属性(即根本没有访问权限),那么它们如何协同工作?如果有人可以分享有关这些参数的用途以及它们如何相互作用的信息,那就太好了。谢谢。 最佳答案 如果对象已经存

Windows 在安全更新后认为已签名的安装程序是恶意软件 (KB3124605)

2年前@DejanMaksimovic问了一个关于InternetExplorershowsvalidcertificateas“corruptorinvalidsignature”的问题.迄今为止,我在需要提升权限的安装程序中遇到了类似的问题。问题似乎是同源的,但是对于KB3124605.安装程序使用signtool签名,证书有效期至2016年8月。当我安装包含此补丁的累积更新时,WindowsSmartScreen告诉我发布者未知,但当我卸载安全更新时,Windows似乎能够区分发布者(证书信息中实际提到的发布者).更新于1月12日发布。有同样问题的人吗?正在运行SignToolv

windows - 有没有办法使用 PowerShell 检查本地服务器上任意安全主体的管理权限?

网络上的许多示例显示了使用以下方法检查当前用户是否具有管理权限的方法[Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()在特定服务器上运行命令时,是否有类似的方法来检查不是“当前”身份,而是检查任何(本地或域,例如,从Get-ACLcmdlet检索)。我检查了https://learn.microsoft.com/en-us/dotnet/api/system.security.principal.windowsidentity.-ctor?view=netfram

windows - 如何注册为 NT 内核事件的实时 ETW 使用者?

我已经能够成功地使用logman来转储一些内核跟踪。但是,我希望能够以编程方式在我的应用程序中启用内核事件的实时消耗(主要是线程/进程创建/删除和文件I/O)。完成此任务的最佳方法是什么? 最佳答案 您在StartTrace中启用内核事件.在EVENT_TRACE_PROPERTIES您传递给StartTrace,EnableFlags包含不同内核事件提供程序的各种标志。将EVENT_TRACE_PROPERTIES中的LogFileMode设置为EVENT_TRACE_REAL_TIME_MODE成为实时消费者。然后您可以使用Pr

c++ - RegSetValueEx 线程安全吗?

我怀疑RegSetValueEx是线程安全的,但希望得到社区的一些确认。如果多线程调用,会不会有副作用?RegSetValueExMSDNdocumentation根本没有提到线程安全。 最佳答案 相关Q:IstheWin32Registry‘threadsafe’? 关于c++-RegSetValueEx线程安全吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2847488

c++ - 安全获取在 Windows API 中运行可执行文件的路径

嘿,我正在尝试获取与我的exe文件位于同一文件夹中的dll的路径。要走的路似乎是使用QueryFullProcessImageName()或GetModuleFileName()之一来获取正在运行的可执行文件的路径,然后使用字符串操作使其成为改为所需库的路径。不幸的是,这两个函数都没有提供提前找出所需缓冲区大小的方法。我试过为nSize参数传递零,但这没有达到预期的效果。执行此操作的最佳实践方法是什么? 最佳答案 在实践中,您可以使用WindowsAPIMAX_PATH作为您的缓冲区大小,也许加1以提高安全性。理论上Windows路