0%

C-08_注册表读写

32位下 修改注册表(编译后需要使用管理员权限执行 或者先进行提权)

由于是32位的 所以并不会写入到 \SOFTWARE\Microsoft\Windows\CurrentVersion\Run 而是写入到

1
\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run

WOW6432Node 下存放在32位程序的注册表内容

img

RegOpenKeyEx(HKEY_LOCAL_MACHINE, reg_path, 0, KEY_ALL_ACCESS|KEY_WOW64_32KEY, &hkey) 在win10虚拟机尝试是 发现还是写入到32位下的注册表中 win7没成功。。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <stdio.h>
#include <Windows.h>
#pragma warning(disable:4996)


void main() {
HKEY hkey;
LPCTSTR reg_path = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
if (ERROR_SUCCESS != RegOpenKeyEx(HKEY_LOCAL_MACHINE, reg_path, 0, KEY_ALL_ACCESS, &hkey)) {
GetLastError(); //返回在eax

/* _asm {
push eax
call printf
add esp,4
}*/
//printf("123");
return ;
}

if(ERROR_SUCCESS != RegSetValueEx(hkey, "aaaaaaaaa", 0, REG_SZ, "C:\\AsmDEMO.exe", strlen("C:\\AsmDEMO.exe") + 1)) {
RegCloseKey(hkey);
GetLastError();
//printf("456");
return FALSE;
}

RegCloseKey(hkey);

MessageBoxA(0,0,"设置成功",MB_OK);
//printf("112");
system("pause");
}
img

References

https://www.codenong.com/44199379/

欢迎关注我的其它发布渠道

------------- 💖 🌞 本 文 结 束 😚 感 谢 您 的 阅 读 🌞 💖 -------------