草庐IT

api安全

全部标签

c++ - Windows API - 剪贴板 - GlobalLock - 使用还是不使用?

我见过这样的实践,如果您要通过GetClipboardData()从Windows剪贴板中获取内容,则在返回的句柄上调用GlobalLock()函数GetClipboardData()首先-在检索数据之前(例如转换和存储)。但是我发现(至少在C++11中)我可以在没有锁定的情况下获得相同的数据...所以有3个子问题...这怎么可能?单线程应用仅“单”运行安全吗?单线程应用程序同时多次运行安全吗?...导致一个大问题-使用或不使用GlobalLock()&&什么时候?PS:当然,在每个潜在的GlobalLock()之后,您应该调用GlobalUnlock()这是我检索数据的简单部分:HA

python - 将 python 2.7.7 更新到 2.7.9 - 安全吗?

我打算从Python2.7.7更新到2.7.9(或更好的2.7.10)版本。因为我有很多正在进行的项目,所以我必须非常小心。我的问题是-更新到2.7.9/10版本是否安全?一切都会照常进行吗?如果我从pythonofficialweb下载msi就足够了吗?并安装它? 最佳答案 Python的次要版本升级(即2.7.x到2.7.y)通常是向后兼容的,出现故障的风险很低。参见https://hg.python.org/cpython/raw-file/15c95b7d81dc/Misc/NEWS对于2.7.9到2.7.10之间的所有细节

c++ - Boost 是否支持 Windows EnterCriticalSection API?

我知道Boost支持互斥锁和lock_guard,可用于实现临界区。但是Windows有一个用于关键部分的特殊API(参见EnterCriticalSection和LeaveCriticalSection),它比互斥锁快很多(对于很少竞争的短代码部分)。因此我的问题-在Boost中可以利用这个API,并回退到其他平台上基于自旋锁/互斥/futex的实现吗? 最佳答案 简单的答案是否定的。这里有一些相关背景fromanoldmailinglistthread:BTW.Iamagreethatmutexismoreuniversalso

c++ - 从 Win32 Api C++ 获取操作系统构建版本

我正在尝试查找WindowsServer2016机器的构建版本,例如RS1或RS3。有一个API可以执行此操作-GetVersionEx()-但现在已弃用。MSDN说使用VersionHelperFunctions相反。我想要构建版本,例如:RS1的1607。是否有API来获取此信息? 最佳答案 选项0:(根据RbMm)使用驱动程序开发工具包中的[RtlGetVersion]。选项1:[已更新]获取系统DLL(如kernel32.dll)的版本号。MSDN曾经赞扬这种方法,说:Toobtainthefullversionnumber

c++ - 通过从 C/C++ 调用 Windows API 函数生成独立的汇编子例程

我做了一些shellcode执行的实验,我在其中编写了自己的shellcode,将其写入我希望它执行的目标程序的内存中,然后使用新线程或线程劫持来执行它。这很好用,但是手动编写shellcode相当耗时,因此我正在寻找一种能够用C或C++编写函数的方法,该函数在编译后将完全独立。这意味着任何编译后的函数都应该可以独立执行。这样我就可以直接将它写入我的目标程序中,例如使用WriteProcessMemory准备执行。因此,推送shellcode将使用如下代码完成:#include#includeusingnamespacestd;BOOLMakeABeep(){returnBeep(0x

c++ - 使用应用程序的 Windows API commctrl.h 在没有 Platform SDK 的机器上不起作用

我写了一些使用以下内容的东西:#include#include#include#include#include#include此代码在安装了PlatformSDK的2台机器上运行良好,但在全新安装的Windows(当然是虚拟机)上无法运行(既不是调试版本也不是发布版本)。它以非常熟悉的方式死去:---------------------------C:\DocumentsandSettings\Someone\Desktop\DesktopRearranger.exe---------------------------C:\DocumentsandSettings\Someone\D

c++ - tchar 安全函数——UTF-8 常量的计数参数

我正在将一个库从char移植到TCHAR。根据MSDN,该片段的计数参数是多字节字符数,而不是字节数。那么,我做对了吗?我在VC9中的项目属性显示“使用unicode字符集”,我认为这是正确的,但我不知道这会如何影响我的计数参数。_tcsncmp(access,TEXT("ftp"),3);//ordoiwant_tcsnccmp?“仅在Windows平台上受支持,_mbsncmp和_mbsnbcmp是strncmp的多字节版本。_mbsncmp最多比较count个多字节字符,_mbsnbcmp最多比较count个字节。它们都使用当前的多字节代码页。_tcsnccmp和_tcsncmp

Windows 任务栏 API

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭4年前。Improvethisquestion是否有任何API可以控制在给定时间在Windows(7)任务栏中显示哪些图标?我希望进程仍在运行,但它们的图标不会显示在任务栏上。

c++ - 混淆外部 API 调用 C++

我有一段C++代码可以调用外部库中的函数。我调用的函数是CreateProcess,如下所示。CreateProcess(NULL,pProcessName,NULL,NULL,false,CREATE_SUSPENDED,NULL,NULL,&suStartUpInformation,&piProcessInformation)现在,当我编译代码并将其反汇编时,程序集将纯文本显示为CreateProcess(args1,args2,...)。有没有什么方法可以混淆或加密对API的函数调用,这样如果有人对其进行伪装,他将永远不知道调用了哪些函数。谢谢! 最佳

c++ - 使用 API WideChartoMultibyte 将日语字符从宽字符转换为多字节给出 '????'

在我的MFC应用程序中,我从字符串表中读取日语字符,然后使用以下代码将其转换为多字节WCHARwBuf[1024];intrc;rc=LoadStringW(hInstance,iResourceID,wBuf,1024);WideCharToMultiByte(1252,WC_COMPOSITECHECK,wBuf,-1,buf,1024,NULL,NULL);但是每个日文字符都被转换成'????'我试图将代码页从1252更改为1200但没有帮助。 最佳答案 Windows-1258是越南文本的代码页。日语无法在越南语代码页中表达