Win32 API · 注册表操作(修改键值)

admin 2025年4月13日23:21:39评论5 views字数 1511阅读5分2秒阅读模式
由于硬盘寄了,重新安装的 Typora 是 1.10.8 的版本。在网上看到的 crack 思路:https://www.52pojie.cn/thread-2009398-1-1.html,于是想实践下。
还好公众号上有着部分笔记......,但发现没有修改注册表键值的 API,在这里补充下。
修改注册表键值需要用到两个函数,一个是用来打开指定注册表项的 RegOpenKeyEx 函数,一个是设置注册表项下指定值数据和类型的  RegSetValueExA 函数。
RegOpenKeyEx 函数之前介绍过,这里只说明 RegSetValueExA 函数。
RegSetValueExA 函数的语法:
LSTATUS RegSetValueExA(  [in]           HKEY       hKey, // 打开注册表项的句柄  [in, optional] LPCSTR     lpValueName, // 要设置的值的名称                 DWORD      Reserved, // 保留,必须为 0  [in]           DWORD      dwType, // 值类型  [in]           const BYTE *lpData, // 要存储的数据  [in]           DWORD      cbData // 数据大小);
如果函数成功,则返回值 ERROR_SUCCESS如果函数失败,则返回值为 Winerror.h 中定义的非零错误代码。 
代码示例:
#include<iostream>#include<Windows.h>// 打开注册表static HKEY OpenRegEditT(PCWSTR pwsRegPath){    HKEY hKey; // 用于接收句柄信息    LSTATUS RegResult = RegOpenKeyEx(        HKEY_USERS,  // 预定义值的句柄        pwsRegPath, // 注册表项的路径        0// 打开密钥时应用的选项        KEY_ALL_ACCESS, // 访问权限        &hKey // 打开键的句柄,接收返回信息    );    if (RegResult != ERROR_SUCCESS) {        std::cout << RegResult;        return FALSE;    }    return hKey;}// 设置注册表项的键值static BOOL SetRegValueT(HKEY hKey){    CHAR ctmValue[] = "6/6/2050";    LSTATUS SetResult = RegSetValueExA(        hKey,        "IDate"// 要设置的值的名称        0// 此参数是保留的,必须为零。        REG_SZ, //  值类型        (BYTE*)&ctmValue,        sizeof(ctmValue)    );    if (SetResult != ERROR_SUCCESS) {        std::cout << SetResult;        return FALSE;    }}intmain(){    PCWSTR RegPath = L"换成自己的\Software\Typora";  // 注册表路径    HKEY RegKey = OpenRegEditT(RegPath);    SetRegValueT(RegKey);    RegCloseKey(RegKey); // 用完后关闭注册表项的句柄}
注册表虽然修改成功了,但未能实现 Typora 的无限试用。
已老实的滚回 1.9.5。

原文始发于微信公众号(走在网安路上的哥布林):Win32 API · 注册表操作(修改键值)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年4月13日23:21:39
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Win32 API · 注册表操作(修改键值)https://cn-sec.com/archives/3951774.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息