Windows 10正式版已经出了几个月了,来看一下怎样隐藏注册表。下图是一个从Windows XP — Windows 10的偏移量表。
Win 10系统如何隐藏注册表

其他用到的结构体CM_KEY_BODY、CM_KEY_NODE、CM_KEY_INDEX都没有变化,可以直接使用。

Win 10系统如何隐藏注册表

GetCellRoutine()的变化
偏移量、结构体都没变化,就直接编译运行了。结果自然是蓝屏了,否则也不会有这篇文章了。通过分析memory dump,发现Hook是成功的,但执行到自定义GetCellRoutine()函数时,因为栈不平衡导致了蓝屏。

Win 10系统如何隐藏注册表

既然Hook没有问题,就证明是GetCellRoutine()本身有了变化,重启虚拟机,看看原始的GetCellRoutine()指向哪个处理函数。

Win 10系统如何隐藏注册表

处理函数是HvpGetCellPaged(),请出IDA看看代码。

第3个参数是一个OUT DWROD *,只用来返回,不需要输入,这样就方便多了。把这里兼容掉,应该就不会蓝屏了。
修复蓝屏

Win 10系统如何隐藏注册表

Win 10系统如何隐藏注册表

编译运行后,就可以隐藏了。(64位也能用此方法。)

Win 10系统如何隐藏注册表