请问RegQueryValueEX这个函数读REG_SZ值是乱码是怎么回事
#include <windows.h>
#include <string>
#include <iostream>
using namespace std;
string GetVal(HKEY hKey, LPCTSTR lpValue) //读取当前注册表键值
{
string data;
DWORD size = 200;
DWORD type = REG_SZ;
LONG nError = RegQueryValueEx(hKey, lpValue, NULL, &type, (LPBYTE)&data, &size);
if (nError == ERROR_FILE_NOT_FOUND)
data = "file not found"; // The value will be created and set to data next time SetVal() is called.
else if (nError)
return "read error";
/*cout << "Error: " << nError << " Could not get registry value " << (char*)lpValue << endl;*/
return data;
}
int main()
{
HKEY hKey;
RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"SYSTEM\\CurrentControlSet\\Control\\Class\\{4d36e972-e325-11ce-bfc1-08002be10318}\\0000", 0, KEY_WOW64_64KEY | KEY_ALL_ACCESS, &hKey);
cout<<GetVal(hKey, L"DriverDesc")<<endl;
}相关推荐
深入解析OutLook帐户密码的注册表读取与解密技术
本文深入探讨了如何通过编程方式从Windows注册表中定位并读取Outlook帐户密码的加密数据,并利用系统DPAPI的CryptUnprotectData函数进行解密。文章详细解析了注册表路径的构成、二进制数据的读取方法以及解密过程中的关键细节与常见陷阱,旨在为安全研究、数据恢复等合法场景提供技术参考。
Windows注册表二进制数据解析:逆向工程中的核心技能与实战指南
在Windows系统管理与安全分析领域,注册表作为核心配置数据库,存储着软件设置、系统配置等关键信息。其中REG_BINARY类型的二进制数据,因其原始字节序列的特性,常被视为难以解读的‘黑盒’。理解其解析原理,需要掌握数据编码、字节序、结构体序列化等基础概念。这项技术的核心价值在于,它能直接揭示程序在底层的真实行为,是破解软件保护机制、分析恶意代码、恢复系统配置的关键。在逆向工程、恶意软件分析、软件调试等应用场景中,系统化地解析二进制数据,能帮助分析师从‘观察现象’跨越到‘理解本质’。本文聚焦于**注册表
Navicat密码逆向工程:AES-256-CBC加密原理与本地凭据安全实践
在数据库管理和软件开发领域,本地凭据的安全存储是一个常见且关键的工程问题。对称加密算法如AES(高级加密标准)是保护敏感信息的核心技术,其CBC(密码分组链接)模式通过引入初始化向量(IV)增强了数据安全性。理解加密原理不仅有助于实现安全的数据存储方案,还能在密码恢复、配置迁移等场景中提供技术支撑。本文聚焦于Navicat这一广泛使用的数据库管理工具,深入剖析其本地密码存储机制,揭示其如何运用AES-256-CBC算法对连接密码进行加密。通过逆向工程方法,我们将探讨固定密钥派生的实现细节,并展示如何构建一个
国央企创新负责人如何构建多维度的科技资源评价与配置体系?.docx
国央企创新负责人如何构建多维度的科技资源评价与配置体系?
《移动通信系统》全套PPT课件2026(西安电子科技大学)
《移动通信系统》全套PPT课件2026(西安电子科技大学)



