草庐IT

安全加密虚拟化

全部标签

linux - 虚拟内存澄清 - 大连续内存的分配

我有一个应用程序,我必须在Windows上(使用operatornew)分配相当大的内存空间(数百MB)。该应用程序是32位的(我们现在不使用64位,即使在64位系统上也是如此)并且我启用了/LARGEADDRESSAWARE链接器选项以便能够使用4GB的用户空间内存。问题如果我需要分配,比如450MB的连续内存,进程的虚拟地址空间是否需要有足够大的连续空间和另外物理内存不必在系统上碎片化?我问这个是因为我可以这样做,以便我的应用程序保留足够大的连续空间,但不知道系统上的其他应用程序是否会以这种方式影响我。操作系统页表是否需要将应用程序看到的连续虚拟地址转换为连续物理地址?

c++ - 如何将 AT 命令传递给加密狗?

我需要通过我的USB加密狗发送短信,这可以通过AT命令实现。但是,我不知道如何将AT命令传递给加密狗。互联网也没有帮助。如何使用简单的代码片段将AT命令传递给加密狗? 最佳答案 大多数USB加密狗将在您的PC上显示为串行端口。因此,您可以使用终端程序连接到适当的COM端口并发送AT命令。发送短信通常是这样的,在每行后按回车键:AT+CFUN=1-->FullfunctionalityAT+CMGF=1-->TextmodeSMSAT+CMGS="+12345678"-->Phonenumber>textgoeshere-->your

c - 虚拟地址如何转换为其在后备存储上的物理地址?

我们有地址转换表来将进程的虚拟地址(VA)转换为其在RAM中的相应物理地址,但如果该表没有任何VA条目,则会导致页面错误,内核会转到后备存储(通常是硬盘驱动器)并获取相应的数据并更新RAM和地址转换表。所以我的问题是操作系统如何知道后备存储中VA对应的地址是什么?它有单独的翻译表吗? 最佳答案 进程从分配虚拟内存开始。当程序开始实际寻址虚拟内存地址时,最终将导致页面错误。操作系统知道内存访问是有效的。因为它是显式分配的。所以没有造成任何伤害,操作系统只是将VM地址映射到物理地址。如果页面错误是针对一个地址,而该地址之前不是被请求为有

c++ - 是否可以强制Linux在释放后使虚拟内存失效

在Windows上,我注意到尝试取消引用指向最近释放的内存的指针会导致崩溃,并被VisualStudio困住,指出内存无效。这符合预期。但是,执行相同的应用程序和代码路径导致取消引用指向最近释放的内存的指针不会立即导致Linux崩溃。这向我表明Linux内核(或GNUC++运行时)不会很快使释放的内存失效,即使在调试版本上也是如此。该应用程序需要更长的时间才能崩溃。是这样吗?如果是这样,我可以强制更快地取消映射内存吗?如果不是,那是怎么回事? 最佳答案 你试过了吗http://valgrind.org/?它的目的是帮助追踪问题,例如

c - OSX/iOS 上的虚拟内存与 Windows 提交/保留行为

将OSX/iOS中的虚拟内存系统行为与Windows中的虚拟内存系统行为进行比较时,我有点困惑。WindowsVirtualAlloc()相关函数及其在保留和实际内存提交和取消提交方面的行为相当简单。对于没有很好讨论的OSX,我一直在研究mach_vm_allocate()、mach_vm_map()等。例如,如果我想创建一组跨平台函数来公开Windows和OSX/iOS之间的公共(public)虚拟内存功能,我将如何管理与Windows相比,OSX上的提交/取消提交之间的区别?因为我不确定我是否理解您是否可以保留虚拟地址范围并将其作为像在Windows上一样的单独操作提交?根据我的理

c# - 如何更改现有命名管道的安全性?

我在Windows8上使用HyperV,并希望能够通过命名管道与虚拟串行端口通信。我给管道选择了一个名称,它可以很好地与虚拟操作系统(在我的例子中是XP)串行端口通信,但由于PipeSecurity设置,只能在管理员用户下进行通信。现在我希望能够在由Hyper-V创建的命名管道上为每个人提供完全控制权。以编程方式或可能使用某些HyperV设置。我需要能够作为普通用户与虚拟操作系统进行通信。我知道如何在我自己使用NamedPipeServerStream和PipeSecurity对象创建的命名管道上设置特定的安全性。我主要使用C#,但我看到有像SetSecurityInfo这样的C++A

windows - CSP如何找到证书的私钥进行加密操作?

我的问题是:应用调用CSP进行签名等加密操作时,CSP如何分别找到证书的私钥?如果导入到证书存储的证书私钥不在本地计算机上(在USBtoken、外部存储,例如移动设备上),它能找到吗? 最佳答案 当您将证书导入系统存储时,Windows会创建一个包含编码证书本身及其属性的BLOB结构。BLOB具有以下结构:property1_id(4bytes)reserved=0x00000001property1_length(4bytes)property1_data[property1_length]...cert_property_id=

c++ - 假定 Windows 伪句柄的值是否安全/已定义?

我正在为Windows编写一段C++代码,需要查询进程及其每个单独线程的计时。为了进行必要的系统调用,我需要进程及其每个线程的句柄。我正在使用getCurrentProcess和getCurrentThread函数,它们都返回一个伪句柄。经过进一步检查,我注意到所有线程的伪句柄共享相同的值。在互联网上简单搜索后,我发现以下文章报告了与我得到的进程和线程伪句柄相同的值:https://weseetips.wordpress.com/2008/03/26/getcurrentthread-returns-pseudo-handle-not-the-real-handle/我的问题:从一个线

c++ - 默认安全描述符

我的应用程序有2个进程,一个需要提升,另一个不需要,但是它们在同一桌面上的同一用户帐户下运行。我需要在从文件读取的提升进程中创建一个文件(不在磁盘上,其他类型的文件),但让我的非提升进程对该文件具有写访问权限。使用nullptrSECURITY_ATTRIBUTES,非提升进程无法打开文件,CreateFile失败并显示拒绝访问代码。这是预期的,SetSecurityDescriptorDacl解决方法类似于thisanswer工作正常。但是,我不喜欢这种解决方法。我不想将对该文件的写入权限授予所有人。我只想授予当前用户访问权限。这有点敏感,提升的读取器进程将运行数小时,我不希望每个人

windows - 非基于 SSL 的签名和加密的硬件加速

我正在从事一个进行大量散列、签名以及非对称和对称加密的项目。由于这些步骤对我们的性能和可用负载有重大影响,我想知道是否有基于硬件的解决方案来卸载工作。我上网查找了一下,我能找到的唯一项目是专门用于基于SSL的通信的。我需要一个更通用的解决方案,使我能够加快签名和加密的速度,无论它发生在何处。是否有可能采用这些基于SSL的解决方案(也许这只是一种营销手段,而且很容易在其他地方重复使用)?是否有一个好的通用协处理器可以提供帮助?我需要在基于WindowsServer2008的机器上使用它,但我对任何平台上的解决方案都感兴趣。 最佳答案