谈谈注册表项信息隐藏

本文深入探讨了Windows注册表的工作原理,包括hive文件结构、注册表隐藏技术及其常见实现方式。通过分析注册表的内存结构和数据存储,揭示了如何通过修改特殊指针hook来隐藏注册表项。此外,还介绍了配置管理器如何加载和管理hive文件,以及注册表数据在内存中的映射机制。最后,提到了关键结构如_HBASE_BLOCK和_CELL_DATA在隐藏技术中的作用。
摘要由CSDN通过智能技术生成

理论:
注册表是Windows系统存储关于计算机配置信息的数据库,包括了系统运行时需要调用的运行方式的设置,是系统的核心。操作系统是用特殊的文件(Hive文件)来存储注册表的内容,并提供给用户相关的编程接口(APIs)来进行注册表的操作,例如Advapi32.dll中的Registry Functions(如:RegEnumKey)。在Windows操作系统中,函数的调用有着极其规范的层次结构,如下图所示是系统实现RegEnumKey函数的调用体系。

正常情况下,函数调用返回的结果应该是操作系统提供的实际信息,但是随着间谍软件和Rootkit等恶意代码技术的发展,越来越多的恶意程序都具备了隐藏自身存在信息的功能,这其中最重要就是对注册表项信息的隐藏。注册表隐藏就是将系统呈现给用户的注册表信息进行修改,使得用户或检测工具无法直观地发现事实上存在的注册表内容。目前的注册表隐藏,大都采用的是Hook技术。根据它们不同的运行环境和模式,把常见的注册表隐藏技术称为用户态下注册表隐藏技术和核心态下注册表隐藏技术。它们通常是利用IAT Hook, Inline Hook、远程线程注入、SSDT Hook、中断调度表挂钩、IRP函数表挂钩、原始内核代码修改和特殊指针修改等方式来实现。网上比较多见的核心态隐藏技术是ssdt hook NtEnumerateKey 和inline hook CmEnumerateKey。然而这些方法已经很容易被防御体系发现。

本文是通过修改hive内存结构中的特殊指针hook实现注册表项的隐藏。关于hive文件结构,论坛中曾经有两人写过相关的文章,一篇是炉子大牛写的《HIVE格式解析》,另一篇是HSQ大牛写的《注册表监控弱点演示程序 v0.2 逆向ASM源码及相关资料》,另外,Petter Nordahl-Hagen写过一个hive文件存取库,我整理了下,也附在本篇文章之后,方便大家查阅。

相信看过网上这几篇的朋友一定还有些疑虑,到底注册表的工作原理是怎样的呢?我们今天通过一个驱动代码来揭开它神秘的面纱。

1. 在磁盘上,注册表并不是简单的一个大文件,而是一组称为hive的单独文件。每个hive文件包含了一颗注册表树。有一个键作为该树的根。子键和他们的值存储在根的下面。

当配置管理器(注册表的执行体子系统)加载hive的时候,会在HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/hivelist子键下的注册表值中记录下每个hive的路径。下面是本机注册表hivelist子键导出的信息:

 

[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/hivelist]

"//REGISTRY//MACHINE//HARDWARE"=""

"//REGISTRY//MACHINE//SECURITY"="//Device//HarddiskVolume1//WINDOWS//system32//config//SECURITY"

"//REGISTRY//MACHINE//SOFTWARE"="//Device//HarddiskVolume1//WINDOWS//system32//config//SOFTWARE"

"//REGISTRY//MACHINE//SYSTEM"="//Device//HarddiskVolume1//WINDOWS//system32//config//SYSTEM"

"//REGISTRY//USER//.DEFAULT"="//Device//HarddiskVolume1//WINDOWS//system32//config//DEFAULT"

"//REGISTRY//MACHINE//SAM"="//Device//HarddiskVolume1//WINDOWS//system32//config//SAM"

"//REGISTRY//USER//S-1-5-20"="//Device//HarddiskVolume1//Documents and Settings//NetworkService//NTUSER.DAT"

"//REGISTRY//USER//S-1-5-20_Classes"="//Device//HarddiskVolume1//Documents and Settings//NetworkService//Local Settings//Application Data//Microsoft//Windows//UsrClass.dat"

"//REGISTRY//USER//S-1-5-19"="//Device//HarddiskVolume1//Documents and Settings//LocalService//NTUSER.DAT"

"//REGISTRY//USER//S-1-5-19_Classes"="//Device//HarddiskVolume1//Documents and Settings//LocalService//Local Settings//Application Data//Microsoft//Windows//UsrClass.dat"

"//REGISTRY//USER//S-1-5-21-1550111154-316279633-4274931122-1006"="//Device//HarddiskVolume1//Documents and Settings//Jason//NTUSER.DAT"

"//REGISTRY//USER//S-1-5-21-1550111154-316279633-4274931122-1006_Classes"="//Device//HarddiskVolume1//Documents and Settings//Jason//Local Settings//Application Data//Microsoft//Windows//UsrClass.dat"

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数字医学技术和医学信息系统是医疗领域数字化转型的重要组成部分,它们可以提升医疗服务的质量和效率,促进医疗行业的发展。 数字医学技术包括但不限于以下几个方面: 1.医学影像处理技术:医学影像是医生进行疾病诊断和治疗的重要依据,医学影像处理技术可以对医学影像进行分析、识别和分类,辅助医生更快速、准确的做出诊断。 2.医学数据采集和管理技术:医学数据是医学研究和诊疗过程中的重要资源,医学数据采集和管理技术可以帮助医疗机构实现数据的实时采集、统计和管理,并为医生提供更好的决策支持。 3.医学人工智能技术:医学人工智能技术可以通过分析大量的医学数据,辅助医生进行疾病诊断和治疗,提高医疗服务的效率和准确性。 医学信息系统包括但不限于以下几个方面: 1.电子病历系统:电子病历系统可以将患者的病历信息电子化,实现患者病历信息的快速、准确、全面地记录和管理。 2.医药信息系统:医药信息系统可以统计和管理医疗机构中的药品信息,包括药品名称、规格、库存等信息,帮助医疗机构更好地管理药品信息。 3.医学影像信息系统:医学影像信息系统可以管理医学影像数据,并提供多种功能,例如影像存储、影像检索、影像分析等,帮助医生更好地进行疾病诊断和治疗。 数字医学技术和医学信息系统的发展面临以下几个挑战: 1.安全性和隐私保护:医疗数据涉及到大量的个人隐私信息,必须保证数据的安全和隐私保护。 2.标准化和互操作性:医学信息系统之间的互操作性和标准化是关键问题,需要建立统一的数据标准和接口协议,以便不同系统之间的数据交换和共享。 3.人才和培训:数字医学技术和医学信息系统需要相关领域的专业人才,因此需要加强培训和人才引进。 综上所述,数字医学技术和医学信息系统是医疗行业数字化转型的重要组成部分,它们可以提升医疗服务的质量和效率,但是也面临着一些挑战和问题,需要我们通过不断的研究和探索来解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值