草庐IT

api安全

全部标签

c++ - 如何使用 Windows API 检索 HD 供应商/序列号

我说的是物理磁盘驱动器,而不是卷/分区/逻辑驱动器。因此,通常建议的GetVolumeInformation函数不适用于我的情况。确切地说:我正在直接使用尚未分区的磁盘。我通过CreateFile函数打开它的句柄:hDisk=CreateFile(_T("\\\\.\\PHYSICALDRIVE0"),GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_FLAG_OVERLAPPED|FILE_FLAG_NO_BUFFERING,NULL);我可以使用这个句柄直接在磁盘上

windows - 一些支持 "\Device\Xxx"格式的NT命名空间绝对路径的API

在这份文件中,http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx#pathsTomakethesedeviceobjectsaccessiblebyWindowsapplications,thedevicedriverscreateasymboliclink(symlink)intheWin32namespace,"Global??",totheirrespectivedeviceobjects.Forexample,COM0andCOM1underthe"Global??"subdirectoryaresimply

c++ - 当 OFN_ALLOWMULTISELECT 时,Windows API 函数 GetOpenFileName() 的字符限制是否有解决方法?

根据MSDN文档,函数GetOpenFileName()当使用Windows2000及更高版本为Unicode编译时,选项OFN_ALLOWMULTISELECT没有字符限制。但是,在WindowsXPx64SP2上,我发现尽管使用了Unicode,但32kANSI限制仍然有效。我在网上看到过其他关于此问题的投诉,但没有解决方案。有谁知道一个简单的解决方法吗?为了完整起见,我使用的是VisualStudio2010,并使用C++进行编码。 最佳答案 文档可能有误。GetOpenFileName()在某种程度上已被弃用,它不再支持最新

windows - 关于 Windows API 的问题

我有一个代码在Windows7的DOSBox上运行...但是我的问题是我的代码是否使用WindowsAPI?下面是我正在使用的头文件...#include#include#include#include#include 最佳答案 你为什么不看看那个代码?如果使用了任何特定于Windows的API,通过查看包含的头文件将不难找到它们。DOSBox可以运行Windows3.1和相关程序,但如果您的程序在Windows3.1之外运行,那么您可以非常确定没有使用WindowsAPI。 关于win

windows - 从 driverstore 安装驱动程序的 API

是否有任何API可用于从driverstore或inf文件夹为我的设备安装驱动程序,例如(PNPC031)? 最佳答案 触发设备的即插即用检测应该从inf目录/驱动程序存储区为您的设备安装驱动程序-如果它找到匹配的驱动程序。查看CM_Reenumerate_DevNode_ExAPI:http://msdn.microsoft.com/en-us/library/windows/hardware/ff539766(v=vs.85).aspx如果您知道INF文件的路径,则可以使用SetupAPI进行安装:http://msdn.mic

windows - Windows 上的安全命名共享内存,因此只有特定进程可以打开

有没有办法在Windows中使用命名共享内存设置权限,以便由进程而不是用户完成访问控制?我想让一个程序创建内存,传递句柄或传回PID,以便客户端进程可以访问内存。应拒绝所有其他进程访问。谢谢 最佳答案 访问控制仅由安全主体进行,安全主体可以是用户、组、计算机等。如果你有一个你想与另一个进程共享的对象,你可以使用DuplicateHandle. 关于windows-Windows上的安全命名共享内存,因此只有特定进程可以打开,我们在StackOverflow上找到一个类似的问题:

windows - 如果 git index.lock 存在,我可以安全地删除它,还是需要更多操作来验证完整性?

在过去的几周里,我收到了几次关于index.lock存在的消息。删除该文件作为解决方案在gitindex.lockFileexistswhenItrytocommit,butcannotdeletethefile删除该文件是否足够,或者我还需要执行其他操作(是否有验证完整性等的方法?)。这是在安装了git命令行工具、TortoiseGIT和SourceTree的Windowsx64系统(完全修补)上。 最佳答案 没有otheranswers提及index.lock的用途。然而,它记录在Git发行版中,位于文件“Documentati

windows api - 检测何时打开某种类型的文件

是否可以在打开某种类型的文件时执行某些代码?就我而言,我想“监听”视频文件(“.avi、mp4等”)何时打开(通过Windows文件资源管理器外壳,或者直接从视频播放器打开?),这样我就可以存储播放视频的历史记录。一个小时的谷歌搜索没有任何结果,所以我求助于你stackoverflow。请指出正确的方向。谢谢。 最佳答案 从任意进程捕获文件系统事件(打开/读/写)的最佳(也是唯一合理的方法)是编写FileSystemMiniFilter如果您正在开发商业产品,请避免“Hook”用户模式​​API,例如CreateFile。这样做需要

Windows API CreateDialog : Modeless Dialog just not show up

即使在大量谷歌搜索之后,我真的无法弄清楚如何制作无模式对话框。我想要做的是通过按下主窗口上的按钮来触发对话框。(所以让我把所有的东西都放在这里。我之前没有把所有的东西都放上去,以免读起来太乱了。)我的代码如下:#include"main.h"#include"resource.h"#includeINT_PTRCALLBACKAboutDlgProc(HWNDhwnd,UINTMessage,WPARAMwParam,LPARAMlParam){switch(Message){caseWM_INITDIALOG:returnTRUE;break;caseWM_COMMAND:switc

windows - Windows 允许的文件名对于注入(inject)是安全的吗? (SQL、JavaScript 等)

我想问一下Windows允许的文件名对于SQL(Oracle和通用)、JS、xml等注入(inject)是否安全。检查并替换以下字符:/:*?"|(还有它们的ascii值等)。长度也不能超过~180个字符检查是在客户端(仅用于可用性)和服务器端(用于安全性)安全地进行的文件名保存到oracleDB中,有oracle->java->xml->xslt->browser这样的流程显示。编辑:@Bohemian的回答指出了SQL注入(inject)的不安全部分(使用准备好的语句可以简单地禁止它)。JS或xml注入(inject)如何?(可能导致XSS或通过xslt访问硬盘)