首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

获取在C++中创建/修改注册表项的日期

在C++中,创建/修改注册表项的日期通常是指程序或应用在操作系统中注册或配置数据的时间。在Windows操作系统中,注册表是存储操作系统和应用程序配置信息的数据库。在C++中,可以通过调用Windows API函数来创建、修改或读取注册表项的日期。

例如,可以使用Windows API函数RegOpenKeyExRegSetValueEx来创建或修改注册表项:

代码语言:c++
复制
#include <iostream>
#include <windows.h>

int main() {
    HKEY hKey;
    LONG lResult;
    const char* subkey = "Software\\MyApp";
    const char* valueName = "RegistrationDate";
    const char* valueData = "0x00000000";
    DWORD valueDataSize = sizeof(valueData);

    // 打开注册表键
    lResult = RegOpenKeyEx(HKEY_CURRENT_USER, subkey, 0, KEY_READ | KEY_WRITE, &hKey);
    if (lResult != ERROR_SUCCESS) {
        std::cerr << "打开注册表键失败。" << std::endl;
        RegCloseKey(hKey);
        return 1;
    }

    // 设置注册表项的值
    lResult = RegSetValueEx(hKey, valueName, 0, REG_SZ, (BYTE*)valueData, valueDataSize);
    if (lResult != ERROR_SUCCESS) {
        std::cerr << "设置注册表项的值失败。" << std::endl;
        RegCloseKey(hKey);
        return 1;
    }

    // 关闭注册表键
    RegCloseKey(hKey);

    std::cout << "注册表项创建/修改成功!" << std::endl;
    return 0;
}

上述代码通过调用RegOpenKeyExRegSetValueEx函数来创建或修改注册表项。如果注册表项创建成功,RegOpenKeyEx函数会返回注册表键的句柄,然后可以使用RegSetValueEx函数来设置注册表项的值。如果设置注册表项的值失败,RegSetValueEx函数会返回错误代码。

需要注意的是,在C++中,注册表项的创建和修改操作需要管理员权限。因此,在程序或应用中,需要使用std::system函数或exec函数来以管理员身份运行。

同时,在设置注册表项的值时,需要使用正确的数据类型和长度。如果设置的数据类型不正确或数据长度不符合要求,就会导致注册表项创建或修改失败。此外,在设置注册表项的值时,还需要注意安全问题,如果注册表项没有设置正确的权限,可能会导致安全问题。

因此,在C++中,使用Windows API函数来创建、修改或读取注册表项的日期是非常有用的。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

springboot工程修改使用quartz创建定时任务

Quratz是什么:Quartz 是一个完全由 Java 编写开源作业调度框架,为 Java 应用程序中进行作业调度提供了简单却强大机制。...创建springboot工程集成Quratz: IDEA基于springboot 2.7....*创建工程,集成Quratz,勾选I/O下Quratz Scheduler即可;图片创建完成后pom.xmlQuratz依赖是 org.springframework.boot...,接口服务Scheduler是可以直接依赖注入;不需要额外指定Bean;但在之前版本Quratz是需要获取所有job逻辑是:使用GroupMatcher匹配获取所有的jobKey;主要使用...scheduler.getJobKeys()方法获取使用jonbkey获取对应触发器trigger;获取所有触发器相关信息;修改逻辑根据TriggerKey重新设置CronScheduleBuilder

1.7K30

C++】构造函数分类 ② ( 不同内存创建实例对象 | 栈内存创建实例对象 | new 关键字创建对象 )

一、不同内存创建实例对象 1、栈内存创建实例对象 在上一篇博客 【C++】构造函数分类 ① ( 构造函数分类简介 | 无参构造函数 | 有参构造函数 | 拷贝构造函数 | 代码示例 - 三种类型构造函数定义与调用...栈内存 变量 Student s1 ; 这些都是 栈内存 创建实例对象 情况 ; // 调用无参构造函数 Student s1; // 打印 Student s1 实例对象值..., 不需要手动销毁 , 函数生命周期结束时候 , 会自动将栈内存实例对象销毁 ; 栈内存 调用 构造函数 创建 实例对象 , 不需要关注其内存占用 ; 2、堆内存创建实例对象 栈内存...声明 类 实例对象 方式是 : 该 s1 实例对象存放在栈内存 , 会占用很大块栈内存空间 ; Student s1; 堆内存 声明 类 实例对象 方式是 : 该 s2 实例对象是存放在堆内存..., 栈内存只占 4 字节指针变量大小 ; Student* s2; C++ 语言中 , 可以使用 new 关键字 , 调用有参构造函数 , 创建 实例对象 ; 在下面的 C++ 代码 ,

17420
  • 【Android 逆向】修改 Android 系统文件 ( Android 逆向需要经常修改文件和目录 | root 后设备获取 目录 rw 权限后注意事项 )

    文章目录 一、Android 逆向需要经常修改文件和目录 二、 root 后设备获取 / 目录 rw 权限后注意事项 1、不要随意执行 wipe 命令 2、不要随意执行 rm 命令 一、Android...逆向需要经常修改文件和目录 ---- 系统配置文件 : /default.prop 文件是系统配置信息 ; 可执行程序存放目录 : 如果需要向 Android 系统 , 添加一些可执行程序 ,...动态库 都存放在 /system/lib/ 目录 , 可以向其中添加 so 动态库 , 或者使用一个修改 so 动态库替换原有的 so 文件 ; 使用 新 so 文件 A 替换原有的 so 文件...B , 将原有的 so 文件重命名为 C , A 动态库 调用 C 动态库函数 , 这样就相当于调用时加了一层拦截 , 可以在此处获取各种参数 ; 配置文件目录 : Android 配置文件一般都在.../system/etc/ 目录 ; 二、 root 后设备获取 / 目录 rw 权限后注意事项 ---- 1、不要随意执行 wipe 命令 wipe 命令不要轻易执行 ; 执行 wipe system

    1.7K10

    VBA专题07:使用VBA读写Windows注册

    Windows注册表用于存储与计算机相关各种设置,VBAGetSetting函数和SaveSetting函数能够读写Windows注册表,这样,我们不仅能够获取应用程序和硬件信息,也可以将应用程序信息存储注册以供使用...SaveSetting SaveSetting语句Windows注册创建或保存一个应用程序项。...2.如果在注册没有找到appname或者section子键,则会自动创建它们。 3.VB把setting作为字符串值写入注册。...2.该函数返回数组第一维元素为项名,第二维元素为各个项值。 3.该函数返回二维数组下标从0开始。因此,第一个注册表项名可以通过引用元素(0,0)获取。...End Sub 4.下面是一段综合示例代码,演示了创建注册表项、更新注册表项、打印注册表项、打印所有注册表项、删除注册表项等操作。

    3.6K10

    0基础 CMD命令大全

    type: 显示文本文件内容。find: 文件搜索指定字符串。系统信息systeminfo: 显示系统信息,包括操作系统版本、安装日期等。ver: 显示当前操作系统版本。...注册表操作regedit: 打开注册表编辑器。reg add: 添加新注册表项修改现有的注册表项。reg delete: 删除指定注册表项。reg query: 查询注册表项值。...reg export: 导出指定注册表项到文件。reg import: 从文件中导入注册表项。系统管理chkdsk: 检查磁盘错误并修复。sfc /scannow: 扫描并修复系统文件损坏。...net user: 管理用户账户,如创建、删除、修改密码等。net localgroup: 管理本地用户组。cacls: 对文件或目录进行安全权限设置。...pause: 暂停批处理文件执行。注释rem: 批处理文件添加注释。::: 批处理文件添加注释。数据处理find: 文本文件查找指定字符串。sort: 对文本文件行进行排序。

    47110

    【MFC】 MFC文件操作和注册表操作

    C/C++文件操作 常量指针和指针常量 const char* p == char const *p 常量指针,表示指向内容为常量,指针指向可以修改,指针指向内容不能修改。...注册表存储二进制文件里面,win32 API提供了大量函数操作注册表。...创建注册表 RegCreateKeyW ( //打开的当前项句柄,实际上就是那几个分支选项 _In_ HKEY hKey, //打开或创建表项名称 _In_opt_...LPCWSTR lpSubKey, //用来接收创建或者打开表项句柄 _Out_ PHKEY phkResult ); 打开注册表 RegOpenKeyW ( _In_.../打开的当前项句柄,实际上就是那几个分支选项 _In_ HKEY hKey, //打开或者创建表项名称 _In_opt_ LPCWSTR lpSubKey, //指示被存储信息类型

    1.3K20

    Windows程序设计笔记(二) 关于编写简单窗口程序几点疑惑

    答:窗口类与窗口就好像C++类与对象关系,窗口是窗口类具体表现,注册窗口类成功后,系统并没有创建窗口,只是分配相应存储空间存储了我们为窗口类填写一些信息。...而创建窗口时传入参数是具体窗口显示形式,比如大小、长宽等;既然窗口类是窗口共性,那么窗口过程自然是所有用该类创建窗口都公用这个窗口过程,窗口过程根据窗口句柄来判断处理那个窗口,而Windows中提供了获取修改窗口过程方法...,只要注册后系统将相关信息存储到窗口类表,改变这个变量并不会对前面创建窗口类产生影响。...而系统处理消息时是如何知道该调用哪个窗口过程呢,有一种思路是根据消息HWND找到窗口表项,根据表项找到相应窗口类,最后根据窗口类找到对应窗口过程,但是实际上系统并不是这样做,当要处理大量消息时这样查找效率太低...,所以系统做法是在窗口表项增加一些空间,用来存储从窗口类拷贝信息,创建窗口时系统将窗口过程等重要信息拷贝一份放到相应窗口信息表项查找时只要找到窗口就可以找到窗口过程,所有子类化时我们只是修改窗口表窗口过程

    56730

    后门病毒通过下载站传播 全面劫持各大主流浏览器

    弹窗截图 该病毒运行后还会将同目录下BosskeyServer.exe注册为系统服务,而且BosskeyServer.exe也包含有与主程序相同逻辑,首次运行第二天BosskeyServer.exe...不过带有相同恶意代码小工具,并不是所有小工具都会注册系统服务,对于只有一个病毒模块小工具来说,则需要依靠用户首次运行第二天执行带毒程序,才会在不经过用户允许情况下劫持浏览器首页。...最终执行恶意代码会通过检测运行进程、注册表、调试器和运行日期与分析人员进行对抗,只有在运行日期与首次运行日期不同时,才会继续执行恶意代码。被下发病毒模块主要代码逻辑,如下图所示: ?...被释放快捷方式 恶意代码对进程和注册检测,主要针对反病毒工具进程名、注册表项,一旦检测到环境存在上述进程或注册表,则会直接退出恶意代码执行流程。相关代码逻辑,如下图所示: ?...检测代码 被检测进程名(其中vmware为子串),如下图所示: ? 被检测进程名 被检测注册表项,如下图所示: ?

    80720

    一.获取Windows主机信息、注册表、U盘历史痕迹和回收站文件

    注册结构就像一颗树,树顶级节点(hive)不能添加、修改和删除,如下图所示是Windows注册顶级节点。...C#注册表进行操作,需要引用命名空间using Microsoft.Win32。 RegistryKey类:表示注册顶级结点,此类是注册封装。...\Software这个键下创建程序产品键,保存一些程序配置注册。...key, value_name, reserved, type, value) 将数据存储在打开注册表项Value字段 创建键值代码如下,但会提示PermissionError: [WinError...---- 四.获取U盘痕迹 这部分我认为是本文最大亮点。Windows系统,当一个USB移动存储设备插入时,就会在注册留下痕迹。

    2.5K20

    三十二.Python攻防之获取Windows主机信息、注册表、U盘痕迹和回收站(1)

    注册结构就像一颗树,树顶级节点(hive)不能添加、修改和删除,如下图所示是Windows注册顶级节点。...C#注册表进行操作,需要引用命名空间using Microsoft.Win32。 RegistryKey类:表示注册顶级结点,此类是注册封装。...\Software这个键下创建程序产品键,保存一些程序配置注册。...key, value_name, reserved, type, value) 将数据存储在打开注册表项Value字段 创建键值代码如下,但会提示PermissionError: [WinError...---- 四.获取U盘痕迹 这部分我认为是本文最大亮点。Windows系统,当一个USB移动存储设备插入时,就会在注册留下痕迹。

    1.4K10

    .NET桌面程序如何设置任务栏图标右键菜单名称

    右键任务栏应用程序图标时会显示程序名称,例如: 这里显示并不是程序文件名DingTalk,而是文件属性详细信息选显卡下“文件说明”。....NET桌面程序,是通过修改程序集名称(AssemblyTitle)来设置该值,c++程序则是添加版本信息设置FileDescription属性。...但是,这个属性和应用程序图标一样,会被缓存到系统注册。当第一次右键查看任务栏中程序图标时,会在注册表添加缓存记录。系统优先读取注册缓存信息。...因此,.NET程序修改了程序集名称后需要删除对应注册表项。...具体信息是MuiCache{程序绝对路径}.FriendlyAppName注册表项 HKEY_CURRENT_USER\SOFTWARE\Classes\Local Settings\Software

    32830

    WMI 攻击手法研究 – 与 windows 注册表交互 (第三部分)

    开始之前需要了解一件事情是:MITRE ATT&CK 对查询注册表 (Query Registry) 归类于 T1012 以及它修改 (Modify Registry) 归类于 T1112。...把我们目前所知道放在一起,可以使用以下这个命令来获取注册表项所有键: Get-WmiObject -Namespace root\default -Class StdRegProv -List |...1 查询注册表键值 KEY_SET_VALUE 2 创建、删除或设置注册表值 KEY_CREATE_SUB_KEY 4 创建注册表项子项 KEY_ENUMERATE_SUB_KEYS 8 枚举注册表项子项...创建注册表项 现在我们知道对 HKEY_CURRENT_USER 下运行注册表项有写访问权限,将计算器应用程序添加到注册表项。...本系列后面部分,我们将了解如何仅使用 WMI 和注册表来创建整个 C2 基础设施。现在已经完成了基础知识,在下一篇文章,将从 WMI 基本侦察开始。 敬请期待,我朋友!

    1.2K20

    渗透技巧——”隐藏”注册创建

    0x00 前言 知名恶意软件Poweliks曾使用过一个后门技术,注册表启动位置创建一个特殊注册表键值,通过mshta来执行payload 对于这个特殊注册表键值,正常情况下无法对其访问,这其中原理是什么呢...,如下图 2.注册表下创建注册表键值 先获得该注册表项句柄: hKey = MyOpenHiddenKey("\\Registry\\Machine\\Software\\testhidden"...、删除隐藏注册表键值,思路如下: 对于注册表项隐藏,注册表项名称首位填”\0”即可 对应注册表键值隐藏,原理上也是键值名称首位填”\0”,但在参数传递上需要注意更多问题 1.不需要修改功能...创建注册表键、打开注册表键和删除注册表键功能不需要修改,使用正常名称即可 2.设置注册表键值 对应源代码MySetHiddenValueKey 传入参数使用char型数组,,用来定义注册表键值名称...参照2,需要注意”\0”影响 4、删除注册表键值 对应源代码MyDeleteHiddenValueKey 参照2,需要注意”\0”影响 实际测试: 创建注册表项test2,创建隐藏注册表键值\

    1.5K80

    从原理解析如何防御DLL劫持

    6.PATH环境变量列出目录 微软为了防止DLL劫持漏洞产生,XP SP2之后,添加了一个SafeDllSearchMode注册表属性。...win7以上版本 微软为了更进一步防御系统DLL被劫持,将一些容易被劫持系统DLL写进了一个注册表项,那么凡是此项下DLL文件就会被禁止从EXE自身所在目录下调用,而只能从系统目录即SYSTEM32...不过,微软又莫名其妙允许用户在上述注册表路径添加“ExcludeFromKnownDlls”注册表项,排除一些被“KnownDLLs注册表项”机制保护DLL。...也就是说,只要在“ExcludeFromKnownDlls”注册表项添加你想劫持DLL名称就可以对该DLL进行劫持,不过修改之后需要重新启动电脑才能生效。...那么,利用这个特性,攻击者就可以伪造一个相同名称dll,只要这个dll不在KnownDLLs注册表项,我们就可以对该dll进行劫持测试。

    2.6K10

    7.5 Windows驱动开发:监控Register注册表回调

    笔者前一篇文章《内核枚举Registry注册表回调》实现了对注册枚举,本章将实现对注册监控,不同于32位系统64位系统,微软为我们提供了两个针对注册专用内核监控函数,通过这两个函数可以不劫持内核...API前提下实现对注册表增加,删除,创建等事件有效监控,注册表监视通常会通过CmRegisterCallback创建监控事件并传入自己回调函数,与该创建对应是CmUnRegisterCallback...注册表回调函数是一种内核回调函数,它可以用于监视和拦截系统注册表操作,例如键值创建修改和删除等。当有相关操作发生时,操作系统会调用注册注册表回调函数,并将操作相关信息传递给回调函数。...开发者可以注册表回调函数执行自定义逻辑,例如记录日志、过滤敏感数据、或者阻止某些操作。 需要注意是,注册表回调函数注册和取消注册必须在内核模式下进行,并且需要开发者有一定内核开发经验。...如上代码只能实现注册表项监视,而如果需要监控则需要在回调函数MyLySharkCallback判断,如果指定注册表项是需要保护则直接返回status = STATUS_ACCESS_DENIED;

    58610

    WSO2 ESB(4)

    本地注册表项 本地注册表项用于本地资源,如脚本,架构,WSDL,政策和其他资源配置定义。他们不上传或综合登记处获取。它们是静态。...本地注册存在一个条目,有超过一个综合注册存在同名项更高优先级。 添加本地注册表项 点击导航器上本地条目。...管理本地注册表项窗格,你可以选择你想要类型本地条目,点击每个条目的添加,添加一个。 ? 内衬文本 输入条目名称。 “值”字段,指定属性值 点击“保存”。...本地注册表行动 您可以编辑和删除先前进入本地注册表项。所有现有的本地注册表项,将显示表注册表项。点击表相应图标,启动注册表操作。 ? 编辑本地注册表项 使用此选项来修改注册表项。...注册表表“操作”列,单击您要编辑条目对应编辑图标。注册表项,页面将显示出来。 进行必要更改,并单击“保存”。 删除本地注册表项 使用此功能删除以前已输入注册表项

    4.3K80

    驱动开发:内核监控Register注册表回调

    笔者前一篇文章《驱动开发:内核枚举Registry注册表回调》实现了对注册枚举,本章将实现对注册监控,不同于32位系统64位系统,微软为我们提供了两个针对注册专用内核监控函数,通过这两个函数可以不劫持内核...API前提下实现对注册表增加,删除,创建等事件有效监控,注册表监视通常会通过CmRegisterCallback创建监控事件并传入自己回调函数,与该创建对应是CmUnRegisterCallback...图片如上代码只能实现注册表项监视,而如果需要监控则需要在回调函数MyLySharkCallback判断,如果指定注册表项是需要保护则直接返回status = STATUS_ACCESS_DENIED...图片当然这里RegNtPreDeleteValueKey是指删除操作,如果将其替换成RegNtPreSetValueKey,那么只有当注册表被创建才会拦截,此时就会变成拦截创建。..., pszRegister) == 0){DbgPrint("[lyshark] 注册表项创建操作已被拦截!

    61630

    红队作业 | 钉钉机器人远控服务器体验

    /zh-cn/windows-hardware/drivers/ddi/wdm/nf-wdm-rtlmovememory 将源内存块内容复制到目的内存块,无返回值 C++语法 void RtlMoveMemory...指定这些值任何一个都将覆盖使用 HeapCreate 创建堆时指定相应值。...except Exception as e: print(e) def CreateKey(regkey,KeyName:str): ''' 添加注册表项,类似于创建文件夹...Windows API:查阅微软文档,熟悉了一些WindwosAPI函数,这些函数可以C++和Python调用。同时,能够根据API函数分析shellcode加载器原理。...注册表操作:Python调用 Windows 函数实现对注册增删查改。 本次作业能够将之前学习知识和上课内容融会贯通,收获了许多,同时,也还有需要改进地方。

    1.6K20
    领券