有没有办法找出在进程监视器中查询了什么样的注册表值?

有没有办法找出在进程监视器中查询了什么样的注册表值?

找不到名称正在显示结果-列进程监控所以我打算自己创造价值。但我不知道这是否是二进制细绳或者说,双字有人尝试访问。有谁知道在发生以下情况时是否有办法找到它?查询值

查询值

答案1

不完全是,但在某些情况下我们可以做出很好的猜测。

Process Monitor 中的操作RegQueryValue本质上对应于RegQueryValueEx正在调用的函数。该函数有一个名为的参数lpType,但它...

指向变量的指针收到指示存储在指定值中的数据类型的代码。

重点是我。它的存在是为了让应用程序知道它们得到的值的类型。(RegQueryValueEx不关心数据类型,它只是传递字节。解释字节是程序的工作。)即使程序由于某种原因指定了类型,进程监视器也不会在函数进入时报告该值,只会在成功退出时报告。

但是,它确实报告了“长度”。由于不清楚的原因,这实际上并不是lpcbData应用程序提供的用于指定其结果缓冲区大小的值——在 64 位系统上,您需要减去 12 才能得到原始值。DWord 值占用 4 个字节,QWord 值占用 8 个字节,所有其他类型的值都是可变长度。(程序在调用函数之前可能根本不准备内存,只是为了检查该值是否存在。)因此,如果 Process Monitor 报告的“长度”为 16,则程序需要 4 字节的数据块,这几乎肯定是 DWord。

相关内容