native api 之 注册表

来源:互联网 发布:matlab 数组画图 编辑:程序博客网 时间:2024/05/17 20:28

注册表写入,使用WIN32 api 只能写入字符串,若以 '\0' 为起始字符,WIN32 API便不能使用了。

最近看见一篇文章,此文阐述了有关于以 '\0' 为起始字符的字符串作位注册表键名的, 此功能可对注册表键名进行隐藏。

HINSTANCE hinstStub = GetModuleHandle(_T("ntdll.dll"));// 获取ntdll.dll模块句柄NtOpenKey = (LPNTOPENKEY)GetProcAddress(hinstStub, "NtOpenKey");// 获取NtOpenKey函数地址
其中结构体NTOPENKEY结构细节如下:

typedef NTSTATUS (STDAPICALLTYPE NTOPENKEY){    IN HANDLE               KeyHandle,    IN ULONG                DesiredAccess,    IN POBJECT_ATTRIBUTES   ObjectAttributes};typedef NTOPENKEY FAR * LPNTOPENKEY;
具体使用方法可学习:

1、微软MSDN :  https://msdn.microsoft.com/en-us/library/windows/hardware/ff567122(v=vs.85).aspx
2、Dan Madden 代码 : https://www.codeproject.com/Articles/14508/Registry-Manipulation-Using-NT-Native-APIs


原创粉丝点击