美文网首页
Windows编程之注册表编程基础

Windows编程之注册表编程基础

作者: Pino_HD | 来源:发表于2018-09-28 14:05 被阅读0次



欢迎关注我的新博客https://pino-hd.github.io,最新的博文都会发布在上面哦~

Windows编程之注册表编程

关于注册表,是Windows的一大特色,也是在Windows渗透过程中用得到的,不过我一向觉得Windows的注册表太过神秘(好吧,是因为太多了。。。),那么今天学会了操作注册表的一些操作,包括
RegCreateKeyEx, RegOpenKeyEx, RegQueryValueEx, RegSetValueEx, RegDeleteValue, RegCloseKey

代码

#include <Windows.h>
#include <stdio.h>


int main(int argc, char* argv[]) {
    HKEY hKey;
    DWORD dwType;
    char d[255];
    DWORD nLen = sizeof(d);
    char* data = "https://www.baidu.com/";
    RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Microsoft\\Internet Explorer\\Main", REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, &hKey);
    RegQueryValueEx(hKey, "Start Page", 0, &dwType, (LPBYTE)d, &nLen);
    printf("before change: %s\n", d);
    memset(d, 0, strlen(d));
    RegSetValueEx(hKey, "Start Page", 0, REG_SZ, (BYTE*)data, strlen(data));
    RegQueryValueEx(hKey, "Start Page", 0, &dwType, (LPBYTE)d, &nLen);
    printf("after change: %s\n", d);
    //RegDeleteValue(hKey, "Start Page");
    //RegQueryValueEx(hKey, "Start Page", 0, &dwType, (LPBYTE)d, &nLen);
    //printf("after delete: %s\n", d);
    RegCloseKey(hKey);
    return 0;
}

这里稍微说一下这段代码的含义,总的作用就是修改ie浏览器的默认页面,改成baidu的首页。那么首先利用RegOpenKeyEx打开注册表,并且将句柄放到先前声明的hKey中,
这里的参数前两个比较好理解,分别是注册表的主键和子建,第三个REG_OPTION_NON_VOLATILE意思是将注册表项存入文件中,使得重启后修改有效,相反的就是REG_OPTION_VOLATILE,意思是重启后无效,KEY_ALL_ACCESS的意思是打开子建后允许任意操作,最后一个是用来存放句柄的。

之后我们使用RegQueryKeyEx函数进行查询,这里第三个选项为保留值,一般为0,第四个是我门声明的一个DWORD变量,这个是用来存放查询的注册表值的类型,第五个是用来存放查询后的值的缓冲区,然后是缓冲区的大小。

查询后我们在利用RegSetValueEx函数进行修改,第三个选项为保留值,一般为0,第四个选项是要修改的注册表的类型,这里是REG_SZ,之后是要修改的数据的缓冲区以及他的大小。

当然了,使用RegDeleteValue即可删除注册表选项,参数也很简单,一个句柄,一个要删除的名字

最后用RegCloseKey来关闭注册表的句柄即可。

相关文章

  • Windows编程之注册表编程基础

    欢迎关注我的新博客https://pino-hd.github.io,最新的博文都会发布在上面哦~ Windows...

  • 9.25 c++ 总结

    Windows编程基础 总结: 25号开始学习Windows编程基础,MFC编程。Windows和MFS中的字符,...

  • MFC编程第一天——Windows编程与MFC编程基础

    Windows编程与MFC编程基础 一、Windows编程 1、Windows应用程序编程接口API Window...

  • 0.SQL编程之目录

    SQL编程之前言为什么我选择分享SQL编程SQL编程的基础概念 SQL编程之MySQL 自定义函数 Hello w...

  • 读 GitChat 线程三部曲 笔记

    GitChat线程三部曲 Java 编程之美 - 线程相关的基础知识 Java 编程之美:并发编程高级篇之一 Ja...

  • Windows

    Windows文件 一、注册表(Registry) 注册表是Microsoft Windows中的一个重要的数据库...

  • Java并发编程之美系列汇总

    Java并发编程之美系列汇总,大家可以挑选自己感兴趣的的进行订阅。 Java 并发编程之美:线程相关的基础知识ht...

  • Windows编程之文件操作

    欢迎关注我的新博客 https://pino-hd.github.io,最新的博文都会发布在上面哦~ Window...

  • java并发(3)内存模型

    基础知识 并发编程引发的问题 并发编程需要关注两个问题. 线程之间是如何通信的? 线程之间是如何同步数据的? 在现...

  • PHP 技能树

    编程基础 技能树 书籍推荐: 编程之美:下载地址 Head First 设计模式 高性能web站点设计 推荐站点:...

网友评论

      本文标题:Windows编程之注册表编程基础

      本文链接:https://www.haomeiwen.com/subject/daqpoftx.html