RegMon改造问题,请教大家

njtlxm 2005-09-20 10:01:35
我想对RegMon进行改造,能做到在Hook注册表SetValue操作时,先获取该注册表项值修改之前的原值。
具体操作如下(针对430版本):

在HookRegSetValueKey函数中,GetFullName( KeyHandle, valueName, fullname );代码之后,加入如下代码:

ResultLength = 0;
ntstatus = ZwQueryValueKey(KeyHandle,valueName,KeyValueFullInformation,
pKeyValueInformation,ResultLength,&ResultLength);//获取所需内存空间大小
strcpy(olddata,"STATUS_EMPTY");
if(ResultLength>0){
pKeyValueInformation = ( PKEY_VALUE_FULL_INFORMATION) \
ExAllocatePool( PagedPool, ResultLength);//分配内存空间
ntstatus = ZwQueryValueKey( KeyHandle,
valueName,
KeyValueFullInformation,
pKeyValueInformation,
ResultLength, &ResultLength);//实际取值
if(ntstatus==STATUS_BUFFER_TOO_SMALL)
strcpy(olddata,"BUF TOO SMALL");
else if(ntstatus==STATUS_INVALID_PARAMETER)
strcpy(olddata,"STATUS_INVALID_PARAMETER");
else if(ntstatus==STATUS_OBJECT_NAME_NOT_FOUND)
strcpy(olddata,"STATUS_OBJECT_NAME_NOT_FOUND");
else
strcpy(olddata,"STATUS_SUCESS");

}


现在有两个问题:1、第一次调用ZwQueryValueKey时没有问题,正确返回了所需内存大小,但是第二次调用时,用SoftIce调试,出现问题,不再继续执行接下来的代码了。2、若第二次调用ZwQueryValueKey成功,我如何将获取的注册表项值也同样采用后续的 LogRecord方式返回给用户态程序?我不大会用字符转换的咚咚。

请各位指点,如果我上述方法是错误的,请问各位都是用什么办法实现的?
...全文
78 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
njtlxm 2005-09-23
  • 打赏
  • 举报
回复
内容概要:本文介绍了基于噪声抑制半监督学习的锂离子电池SOH(State of Health,健康状态)估计方法的Python代码实现。该方法融合半监督学习框架与先进的噪声抑制机制,旨在利用少量标注样本和大量未标注数据,有效提升电池健康状态预测的精度与模型鲁棒性,特别适用于实际工程中电池老化数据标注成本高、样本稀缺的挑战性场景。通过设计高效的特征提取网络与可靠的伪标签生成及优化策略,模型能够有效识别并抑制训练过程中的噪声干扰,增强在复杂工况和数据波动下的泛化能力与稳定性。; 适合人群:具备一定机器学习理论基础和Python编程能力,从事电池管理系统(BMS)、新能源汽车、储能系统等领域的科研人员、工程师,以及专注于电池寿命预测、设备状态监测与智能运维等方向的硕博研究生;; 使用场景及目标:①解决锂离子电池SOH估计中标注数据获取困难、成本高昂的核心痛点;②提升模型在存在测量误差、传感器漂移或异常数据等噪声环境下的预测准确性与可靠性;③为相关科研课题提供可复现、可扩展的算法基准与开源代码框架,加速算法迭代与工程落地; 阅读建议:此资源以Python代码为核心载体,强调算法的完整复现与实验验证过程,建议读者结合代码逐模块剖析模型架构、损失函数设计与训练流程细节,并积极在自有电池数据集上进行迁移学习、参数调优与性能对比,以深入掌握半监督学习与噪声抑制技术在电池退化建模中的关键应用。

21,620

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧