草庐IT

安全局

全部标签

Windows 内核级全局临界区

我正在从内核级驱动程序(从IOControl功能)写入用户空间缓冲区,我需要确保用户空间程序/服务不会覆盖缓冲区或在驱动程序之前读取它已经写完了。有没有一种方法(如果有,首选方法是什么)在Windows的内核模式驱动程序中进入一种“全局临界区”,从而允许驱动程序在短时间内获得系统范围内处理的独占权以便驱动程序可以保证独占访问用户空间中的缓冲区? 最佳答案 考虑到您在评论中的回复,实现这一目标的一种方法是维护与每个系统处理器关联的内核模式线程,并在您写入缓冲区时将它们的IRQL提高到DPC。DPCIRQL不允许线程调度,因此用户模式应

c++ - 使用 native Windows API 的 win32 线程安全队列实现

由于windows缺少条件变量(虽然从vis​​ta开始引入,但windowsXP和2003不支持),用c++实现线程安全的队列不是很容易。StrategiesforImplementingPOSIXConditionVariablesonWin32.我需要的是只使用CriticalSection或Mutex和Event,而不使用信号量和条件变量。我也试图找到一个只使用win32nativeAPI的确切实现,但没有成功。所以我自己完成了一个。问题是我不是100%确定代码是线程安全的。谁能告诉我好不好?classCEventSyncQueue{public:CEventSyncQueue

c++ - 访问冲突将元素插入全局 map

这个问题在这里已经有了答案:Accessviolationwheninsertingelementintoglobalmap(3个答案)关闭8年前。我要回到一个C++应用程序,它曾经在大约4年后正常工作。我的第一个任务是将它从WindowsXP/.NETFramework3.5/Win32/VS2008更新到Windows7/.NETFramework4.5/Win64/VS2012。程序有一个全局映射声明,现在在它第一次尝试插入元素时收到访问冲突,而它以前运行正确。我已经查看了此处的所有相关引用资料,但找不到解决方案,因此非常感谢您的帮助。代码如下所示:Attributes.h:st

c# - 如何将 Oracle session 的全局化设置为与 .NET 中的 Windows 相同?

例如,如果我能做到以下几点就好了:privatevoidSetSessionGlobalization(Oracle.DataAccess.Client.OracleConnectionaConnection){System.Globalization.CultureInfolCultureInfo=System.Threading.Thread.CurrentThread.CurrentCulture;aConnection.SetSessionInfo(lCultureInfo);}但这不起作用,因为SetSessionInfo将OracleGlobalization类作为参数,而

c# - 如何安全地实现从 Windows 服务到公共(public) WebApi 的 Multi-Tenancy 访问

我正在尝试弄清楚如何实现可配置为在Multi-Tenancy场景中与我们的WebApi对话的Windows服务(headless)。我能找到的最接近的例子是张贴在这里的那个CallingwebAPIsinadaemonorlong-runningprocess.这个示例的问题是没有显示您将如何处理Multi-Tenancy场景。如果您对每个租户使用相同的AppKey,如果有人决定在应用程序中搜索ClientID和AppKey,就不可能冒充另一个租户吗?似乎解决这个问题的一种方法是为加入我们服务的每个租户生成一个新的AppKey。当客户安装服务时,需要将此AppKey作为配置参数提供给W

java - 如何在 Windows 中安全地存储临时文件,尤其是在安全入侵防护应用程序阻止 TEMP 目录的情况下

过去很多应用程序都在Temp/Tmp目录下存放临时文件;系统的或用户特定的。最近我们有许多企业用户由于病毒扫描工具或主机入侵防御工具和政策不允许使用这些位置而阻止使用临时目录。我认为这里的恐惧是多个应用程序可以从该位置读取和写入,因此流氓应用程序可能会对另一个应用程序或其临时存储的数据产生负面影响。这似乎是一种正确且更安全的运作方式,所以我不能要求人们开始允许增加风险。我的问题是如何/在哪里(物理上)安全地存储用户特定的、应用程序特定的临时文件。是否应该期望每个应用程序自己管理它,或者是否有一些我不知道的新应用程序和用户沙盒临时数据存储功能?具体来说,我专注于使用.NET4.0+、C#

windows - 如何使用 Windows 安全描述符来阻止执行其他应用程序?

在我最近关于使用CreateDesktop()API调用创建新桌面并在其中执行我自己的应用程序并防止其他应用程序在我的桌面中执行的问题中,有人指出我使用安全描述符!这里有人可以告诉我该怎么做吗?提前致谢! 最佳答案 所有命名对象,包括您创建的桌面,都有一个安全描述符。安全描述符描述每个对象的所有者和组SID(安全标识符)及其ACL(访问控制列表)。创建对象的函数使用它来控制谁有权访问该对象。CreateDesktop()函数有一个可选参数,它是指向SECURITY_ATTRIBUTES对象的指针。SECURITY_ATTRIBUTE

windows - LoadLibrary 静态/全局变量和线程

假设我有一个具有以下静态/全局的DLL:ClassAObject;随着ClassA的实现,它还包含一个“常规”ClassB,如果ClassA尚未构建,它将无法正常工作(这就是我将ClassA设为静态/全局的原因)。在Windows中,我相信DLL加载器会在调用ClassB的构造函数时加载此DLL,对吗?此时,将构建ClassA,然后再构建ClassB。如果第二个线程出现并构造了ClassB,ClassA将不会被构造,因为它已经被构造。现在,我的问题是——如果ClassB是由两个线程同时构造的怎么办。于是Thread1就会开始构造ClassA。线程2会等到ClassA完全构造完成后才执行

c# - ServiceController 关闭 IIS 安全访问

我正在使用ServiceController类从C#程序集远程关闭IIS。我想知道我需要通过网络执行此操作的最低级别的权限是什么,在我当前的测试中我使用的是Administrator并且它工作正常,但是当我迁移到Production时我将使用AD组并且需要提供它是正确的安全级别吗?//MakeacalltoIIStoshutdowntheservice.ServiceControllersc=newServiceController(serviceName,serverName);//Canwestoptheserviceif(sc.CanStop){//Stopitsc.Stop()

windows - 以编程方式发现 "guest only"共享/安全模型

在现代Windows上,默认配置是以这样一种方式完成的:如果我以本地用户身份登录网络,我实际上只会以访客身份进行身份验证(有关此行为的更多详细信息,请参阅http://technet.microsoft.com/en-us/library/cc786449(WS.10).aspx)当我的程序试图通过DCOM访问此类服务器上的WMI时,我只是收到“拒绝访问”错误,大概是因为不允许guest用户连接到WMI。我想将此错误与其他类型的访问被拒绝错误区分开来,例如密码错误或用户名不存在,以便我可以向用户解释他们需要什么来解决问题。所以我的问题是,我该怎么做才能检测到这样的服务器。我在想,如果有