C++ 获取Windows还原点列表

本文介绍了如何通过C++获取Windows系统的还原点列表。作者发现WMI无法获取数据,但系统程序rstrui.exe可以。通过API Monitor分析,确定Volume Shadow Copy Service (VSS) 在系统还原中起关键作用。作者模拟API调用顺序,成功获取还原点信息,并分析了相关文件,揭示了还原点信息隐藏在特定文件中,包括时间戳、快照ID等。然而,发现该方法在Windows XP上无法运行,因为VSS服务需要与系统版本匹配的应用程序调用。
摘要由CSDN通过智能技术生成

本来是用WMI就可以搞定的,但是不知道什么时候开始,WMI貌似没效果了,

SELECT * from SystemRestore

结果是空的,但是系统程序rstrui.exe里面能成功找出还原点,这就很神奇了。。。决定研究一下。
每次创建还原点都会有一个系统进程特别占硬盘:

翻阅资料后了解到这是一个Volume Shadow Copy Service,看来系统还原就是基于此功能来实现的。
使用API Monitor,监视VSS相关API:
这里写图片描述
发现有一个遍历的过程,此时遍历了5次,最后一次是失败的,成功了4次,正好本机上有四个还原点:
这里写图片描述
说明正好是这个遍历得到了还原点数据,感觉妥妥的。
我照着API调用顺序写了一个demo获取到了还原点的信息(只展示其中一个):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值