黑客编程入门(二)
来源:互联网 发布:布依族 知乎 编辑:程序博客网 时间:2024/05/01 23:02
黑客编程入门(二)
注册表下的操作是windows下的黑客不可或缺的东西,今天我们就来用代码操作下注册表
什么是注册表?
注册表是windows下的一个数据库,用于记录我们的系统和应用程序的各项配置信息。比如它控制着我们的开机就运行的程序,我们的浏览器的主页。
我们主要用到以下几个API函数:
LONG RegOpenKey(HKEY hkey, //父键句柄LPCTSTR lpSubKey, //要打开的子键名称PHKEY phkResult //返回的子键句柄); //打开注册表函数LONG RegCloseKey(HKEY hkey //关闭注册表的句柄); //关闭注册表函数LONG RegQueryValueEx(HKEY hkey, //打开的注册表的句柄LPCTSTR lpValueName, //要查询的键值名称LPDWORD lpReserved, //保留 使用时直接用NULLLPDWORD lpType, //返回要查询的值的类型LPBYTE lpData, //要查询数据的缓冲区LPDWORD lpcbData //缓冲区的长度); //注册表键值查询函数LONG RegSetValueEx(HKEY hkey, //打开的注册表的句柄LPCTSTR lpValueName, //被写入的键值名称DWORD Reserved, //保留 使用时直接用NULLDWORD dwType, //要写入的键值得类型CONST BYTE *lpData, //写入的键值的缓冲区DWORD cbData //写入键值缓冲区的长度); //注册表创建函数LONG RegEnumValue(HKEY hkey, //打开的注册表的句柄DWORD dwIndex, //查询的索引值LPCTSTR lpValueName, //键名的缓冲区LPDWORD lpcValueName, //键名缓冲区的长度LPDWORD lpReserved, //保留 使用时直接用NULLLPDWORD lpType, //返回要查询的值的类型LPBYTE lpData, //要查询数据的缓冲区LPDWORD lpcbData //缓冲区的长度); //注册表枚举函数LONG RegDeleteValue(HEKY heky, //打开的注册表的句柄LPCTSTR lpValueName, //要删除的键值项的名称); //注册表删除函数
这里不一一举例,下面的代码只是打印出启动项:
(使用了上面的3个API函数,打开/关闭注册表以及枚举函数 )
#include<stdio.h>#include<windows.h>#define REG_RUN "Software\\Microsoft\\Windows\\CurrentVersion\\Run"void ShowRunlist(){HKEY hkey = NULL;LONG lRet = RegOpenKey(HKEY_LOCAL_MACHINE,REG_RUN,&hkey);if (lRet != ERROR_SUCCESS){printf("打开注册表失败!\n");return ;}printf("打开注册表成功!\n");int i = 1;char szValueName[MAXBYTE] = {0};DWORD dwBufferSize = MAXBYTE;DWORD dwType = MAXBYTE;char szValueKey[MAXBYTE] = {0};DWORD dwKeySize = MAXBYTE;printf("Number\t键 名\t\t键 值\n");while(true){lRet = RegEnumValue(hkey,i,szValueName,&dwBufferSize,NULL,&dwType,(unsigned char *)szValueKey,&dwKeySize);if(lRet == ERROR_NO_MORE_ITEMS){break;}printf("%d\t%s\t%s\t\n",i,szValueName,szValueKey);i++;ZeroMemory(szValueName,MAXBYTE);ZeroMemory(szValueKey,MAXBYTE);}RegCloseKey(hkey);}int main(){ShowRunlist();return 0;}
程序运行结果图:
0 0
- 黑客编程入门(二)
- 黑客编程入门(二。二)
- 黑客攻防入门(二)shellcode构造
- 黑客编程入门(一)
- 黑客编程教程(二)Win API编程简介
- 《黑客攻防入门秘籍》 学习笔记 (二)
- COM编程入门(二)
- GPU编程入门(二)
- COM编程入门(二)
- COM编程入门(二)
- shell编程入门(二)
- Matlab编程 入门(二)
- socket编程入门(二)
- TensorFlow编程入门(二)
- 黑客文化简史(二)
- 最新黑客攻防实战从入门到精通(第二版)_学习笔记(二)
- 黑客入门
- 黑客入门
- linux awk命令详解
- 【机器学习】k-近邻算法应用之手写数字识别
- 黑马程序员_反射、内省、注解
- WPF圆形头像显示
- RSS读取与生成实现原理
- 黑客编程入门(二)
- linux多个tomcat配置及tomcat常用功能配置
- 测试endangered
- SVM入门(七)为何需要核函数
- 单IP做NAT支持的最大连接数问题
- 《c++ primer》 第16章 模板与泛型编程
- 关于 No resource found that matches the given name 'Theme.AppCompat.Light'问题的解决
- Windows下gvim配置
- Getting Started with the Aircrack-Ng Suite of Wi-Fi Hacking Tools