windows内存隐藏技术初探(Windows memory hiding technology).docVIP

windows内存隐藏技术初探(Windows memory hiding technology).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
windows内存隐藏技术初探(Windows memory hiding technology)

windows内存隐藏技术初探(Windows memory hiding technology) Windows内存隐藏技术初探韩永的博客 最早看到阴影沃克这种隐藏内存数据的技术的时间忘了,呵呵。大约是一年多或者两年以前吧。当时还只是提出了理论性的东西,没有人实现出来。前段时间搞NP玩的时候,对themida和虚拟机深恶痛绝,遂想,干… 最早看到阴影沃克这种隐藏内存数据的技术的时间忘了,呵呵。大约是一年多或者两年以前吧。当时还只是提出了理论性的东西,没有人实现出来。前段时间搞NP玩的时候,对themida和虚拟机深恶痛绝,遂想,干脆把内存数据隐藏得了,省得挂个钩子还得缩手缩脚,找个一劳永逸的办法。于是谷歌了一把网上的代码,自己也花了几天时间实现了一下。虽然不太完美,不支持PAE,目前也只能隐藏ring3的代码,不过对这项技术的原理和实现也算是摸清楚了。由于对现在的安全软件具有极度破坏性的杀伤力,开始没想写这篇文章,不过最近确实比较无聊,NMAKE的文章又比较难写,所以还是写写玩吧,权当练文笔了,呵呵。 关于内存隐藏的概念。有时候我们会面临这么一个问题,如果我们有一段内存中的代码,不想被别人发现,但是又要它能确确实实的执行起来起作用,怎么办?或许有很多办法,比如自我变形之类的。但是,如果可以完完全全把这段代码的痕迹从内存中”抹消”,岂不是很舒坦的事情?呵呵。简单来说,就是让内存中的一段数据,执行的时候是一个样子,但是读/写的时候又是另外一个样子。是不是有点玄妙了?呵呵。 一切都要从petium架构CPU提供的说起TLB TLB。的全称是转换后备缓冲器。为了加速处理器内存在分页模式下的访问速度,从P6家族的CPU开始就支持这样一种特性。处理器会将最近访问过的页目录(页目录)和页表(页表)存储在芯片内部称为翻译后援缓冲器的缓存中。P6家族处理器分别为4k页面和4m页面分别保留不同的TLB。绝大多数对分页的访问,都可以通过TLBs的内容完成,只有在缓存中找不到所访问的页面的信息时,才会去访问实际的页目录和页表ring0的代码通过重新装载或者使用invlpg指令CR3。,可以将里面某些页表的入口无效化而CPU分别为内TLB。存的执行和读写保存了不同的TLB,即DTLB和ITLB。对于DTLB,在执行数据访问指令的时候,会更新DTLB中被访问页面的入口;而对于ITLB,在执行某个页面代码的时候,会更新所内的入口。通常情况下,DTLB和所的内容是同步的,但是我们可以通过操作这两种TLB,实现对某段内存的读写/执行控制。 如何才能在某个内存地址被读写或者访问的时候获得控制呢?很明显,当内存访问出错的时候,系统会触发页面异常,即trap0e。通过钩挂trap0e,并且将我们要控制的内存页面PTE标记为不存在,并且通过invlpg指令清空TLB中该页的入口,这样,当对这个页面进行读写/执行访问的时候,TLB中不存在该页的入口信息,并且页面不存在,能够触发trap0e,使得我们可以获得系统的控制权。 接下来,我们需要区分触发异常是由于读写访问还是执行访问。通过比较发生异常的页面地址, And abnormal code address, we can distinguish the abnormal type. If the address is abnormal when the exception is the address code, then that is the implementation of a visit; otherwise it is read and write access. After the exception and exception type to distinguish in the capture, can be obtained by manual loading DTLB and ITLB makes the read and write / execute data filtering. After the TLB is loaded, if not wiped out, access to these pages through the content inside the TLB. This makes the Hook page access speed, than before Hook and there is no obvious loss. The basic idea is that, later posted some of my code, many of them direct reference OllyBone and other online released code

您可能关注的文档

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档