首先必须承认的是,某些细节处理上经验还是欠缺,真的是……唉唉
有需求才会产生问题,最近在研究Cuckoo Sandbox,于是为了测试我自己写的Signatures是否有效,就需要自己写Demo,为了测试正在读取本机GUID的操作签名,我就写了以下Demo:
HKEY hKeyResult = NULL;
HKEY hKeyResultG = NULL;
CHAR szLocation[MAX_PATH] = { '\0' };
CHAR szLocationG[MAX_PATH] = { '\0' };
DWORD dwSize = 0;
DWORD dwSizeG = 0;
DWORD dwDataType = 0;
DWORD dwDataTypeG = 0;
LONG ret;
LONG retG;
char *lpSubKey = "SYSTEM\\CONTROLSET001\\CONTROL\\COMPUTERNAME\\ACTIVECOMPUTERNAME";
char *KeyValue = "ComputerName";
char *lpSubKeyG = "SOFTWARE\\MICROSOFT\\CRYPTOGRAPHY";
char *KeyValueG = "MachineGuid";
/************************************************************************/
/* 功能:
打开对应注册表项
获取当前计算机名
/************************************************************************/
if (ERROR_SUCCESS == RegOpenKeyExA(HKEY_LOCAL_MACHINE, lpSubKey, 0, KEY_QUERY_VALUE, &hKeyResult))
{
ret = RegQueryValueExA(hKeyResult, KeyValue, 0, &dwDataType, NULL, &dwSize);

本文介绍了在编写Cuckoo Sandbox测试签名时遇到的问题,即32位程序如何正确地在64位操作系统上访问注册表中的GUID。通过分析错误代码2,发现是由于缺少KEY_WOW64_64KEY权限导致系统将访问重定向至HKLMSoftwareWow6432Node。添加该权限后,成功解决了问题。
最低0.47元/天 解锁文章
2063

被折叠的 条评论
为什么被折叠?



