解析映像劫持技术第1/3页

一. 诡异的中毒现象

  在成品检验科文员办公室的一台电脑上折腾半个小时后,计算机维护部门的技术员只觉得眼皮不停狂跳,因为从刚开始接手这个任务开始,他就一直在做无用功:他随身带的U盘里引以为豪的众多维护工具包在这台机器上全军覆没,无论他直接在U盘上运行还是随便复制到哪个目录里,系统都是报告“找不到文件”或者直接没有运行起来的反应,他第一次感受到了恐惧,文件分明就好好的在眼皮底下,可它们就是“找不到”或死活不肯执行,莫非是在这台机器上被病毒破坏了?他只好打开网页尝试重新下载,但是他很快就绝望了,刚下载的查杀工具同样也不能使用。

  无奈之下他只好在众多文员的期待下说出了大部分号称上门维护电脑的高手们常用的一句话,一般情况下这句话马上能让大部分用户接受残酷的现实,允许其重装系统,并为这次重装系统付出50元的价格,这句话就是:“系统文件严重损坏了,没法修了,只能重装。”

  装完系统和常用办公软件后,他像一个贼似的赶紧离开了办公室,生怕多呆一会儿就会惹来什么麻烦似的,而他却不知道,“麻烦”早已在他刚才使用的U盘上安家了。回到自己的电脑前,他刚右键点击U盘,就看见鼠标忙碌的状态比平时久了点,然后托盘区里的杀毒软件和网络防火墙都消失了,他心里一慌张,赶紧运行超级巡警,系统却报告“找不到文件”,他一下子呆在了电脑前:瘟神跟上门来了……

  古语云:道高一尺,魔高一丈。这句经典哲理在网络上得到了迅速的延伸应用。今年初,一种早已有之的系统调试功能被应用到病毒技术上,从而摇身一变成为恶魔的代言人,普通用户很快就面临了一场莫名其妙的病毒灾难,这就是“映像劫持”。

  二. 我本将心向明月,奈何明月照……

  “映像劫持”,也被称为“IFEO”(Image File Execution Options,其实应该称为“Image Hijack”,后面章节会详细提到,至少也应该称为IFEO Hijack而不是只有“IFEO”自身!),它的存在自然有它的理由,在WindowsNT架构的系统里,IFEO的本意是为一些在默认系统环境中运行时可能引发错误的程序执行体提供特殊的环境设定,系统厂商之所以会这么做,是有一定历史原因的,在Windows NT时代,系统使用一种早期的堆(Heap,由应用程序管理的内存区域)管理机制,使得一些程序的运行机制与现在的不同,而后随着系统更新换代,厂商修改了系统的堆管理机制,通过引入动态内存分配方案,让程序对内存的占用更为减少,在安全上也保护程序不容易被溢出,但是这些改动却导致了一些程序从此再也无法运作,为了兼顾这些出问题的程序,微软以“从长计议”的态度专门设计了“IFEO”技术,它的原意根本不是“劫持”,而是“映像文件执行参数”!

  IFEO设定了一些与堆分配有关的参数,当一个可执行程序位于IFEO的控制中时,它的内存分配则根据该程序的参数来设定,那么如何使一个可执行程序位于IFEO的控制中呢?答案很简单,Windows NT架构的系统为用户预留了一个交互接口,位于注册表的“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options”内,使用与可执行程序文件名匹配的项目作为程序载入时的控制依据,最终得以设定一个程序的堆管理机制和一些辅助机制等,大概微软考虑到加入路径控制会造成判断麻烦与操作不灵活的后果,也容易导致注册表冗余,于是IFEO使用忽略路径的方式来匹配它所要控制的程序文件名,例如IFEO指定了对一个名为“小金.EXE”的可执行程序文件进行控制,那么无论它在哪个目录下,只要它名字还叫“小金.EXE”,它就只能在IFEO的五指山里打滚了。

  说了半天都只是纯粹的概念,那么IFEO到底是怎么样发挥作用的呢?例如有一个程序文件名为“lk007.exe”,由于使用了旧的堆管理机制,它在新系统里无法正常运行甚至出现非法操作,为了让系统为其提供旧的堆管理机制,我们需要IFEO来介入,则需执行以下步骤:

  1. 确保在管理员状态下执行regedit.exe,定位到以下注册表项:

  
Quote:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options

  2. 在“Image File Execution Options”下建立一个子键,名为“lk007.exe”,不区分大小写。现在确保位于HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\lk007.exe\下,建立一个字符串类型的注册表项,名为“DisableHeapLookAside”,值为“1”

  3. 再次运行lk007.exe查看运行情况,如果真的是由于堆管理机制引发的问题,则程序得以正常运行,否则该程序问题不属于IFEO能够干涉的范围,或者需要尝试搭配其他的参数使用。

  目前已知的IFEO参数有:

Quote:
  ApplicationGoo 
  Debugger 
  PageHeapFlags 
  DisableHeapLookAside 
  DebugProcessHeapOnly 
  PageHeapSizeRangeStart 
  PageHeapSizeRangeEnd 
  PageHeapRandomProbability 
  PageHeapDllRangeStart 
  PageHeapDllRangeEnd 
  GlobalFlag 
  BreakOnDllLoad 
  ShutdownFlags

当前1/3页 123下一页阅读全文

(0)

相关推荐

  • 解析映像劫持技术第1/3页

    一. 诡异的中毒现象 在成品检验科文员办公室的一台电脑上折腾半个小时后,计算机维护部门的技术员只觉得眼皮不停狂跳,因为从刚开始接手这个任务开始,他就一直在做无用功:他随身带的U盘里引以为豪的众多维护工具包在这台机器上全军覆没,无论他直接在U盘上运行还是随便复制到哪个目录里,系统都是报告"找不到文件"或者直接没有运行起来的反应,他第一次感受到了恐惧,文件分明就好好的在眼皮底下,可它们就是"找不到"或死活不肯执行,莫非是在这台机器上被病毒破坏了?他只好打开网页尝试重新下

  • C++映像劫持后门实例分析

    本文实例讲述了C++映像劫持后门的方法.分享给大家供大家参考.具体如下: // freeheart.cpp : Defines the entry point for the console application. //学习交流使用,违法使用后果自负. // by:cnblogs.com/blogg time 2013.5.24 // argv 0 = freeheart.exe // argv 1 = -i // argv 2 = name.exe // argv 3 = 1 2 3 //

  • Python实例解析图像形态学运算技术

    1 图像形态学运算 在Python OpenCV图像处理之图像滤波特效详解中我们将图像滤波进行了以下分类: 邻域滤波 线性滤波 非线性滤波 频域滤波 低通滤波 高通滤波 在非线性滤波中,之前只介绍了中值滤波,事实上,还有一类非常常用的非线性滤波方法,称为图像形态学运算(Morphological operations). 图像形态学运算是一类基于图像形状运算的非线性滤波技术,其基本思想是利用一些特殊的结构元来测量或提取图像中相应的形状和特征,以便进一步进行图像分析和处理.这里结构元素就相当于我们

  • SQL Server数据库性能优化技术第1/2页

    设计1个应用系统似乎并不难,但是要想使系统达到最优化的性能并不是一件容易的事.在开发工具.数据库设计.应  用程序的结构.查询设计.接口选择等方面有多种选择,这取决于特定的应用需求以及开发队伍的技能.本文以SQL  Server为例,从后台数据库的角度讨论应用程序性能优化技巧,并且给出了一些有益的建议. 1 数据库设计  要在良好的SQL Server方案中实现最优的性能,最关键的是要有1个很好的数据库设计方案.在实际工作中,许多SQL  Server方案往往是由于数据库设计得不好导致性能很差.

  • 深入挖掘Windows脚本技术第1/2页

    深入挖掘Windows脚本技术 文章作者:zzzEVAzzz <zzzevazzz@126.com> 为使文中涉及的代码整洁,将使用论坛的PHP标签处理.(没有VBS标签,code标签不好用,郁闷) 如果转载本文,请注意做相应调整. [目录] 1,前言 2,回顾WSH对象 3,WMI服务 4,脚本也有GUI 5,反查杀 6,来做个后门 7,结语 8,参考资料 [前言] 本文讲述一些Windows脚本编程的知识和技巧.这里的Windows脚本是指"Windows Script Host

  • 在B/S开发中经常用到的JavaScript技术第1/3页

    一.验证类 1.数字验证内   1.1 整数   1.2 大于0的整数 (用于传来的ID的验证)   1.3 负整数的验证   1.4 整数不能大于iMax   1.5 整数不能小于iMin 2.时间类   2.1 短时间,形如 (13:04:06)   2.2 短日期,形如 (2003-12-05)   2.3 长时间,形如 (2003-12-05 13:04:06)   2.4 只有年和月.形如(2003-05,或者2003-5)   2.5 只有小时和分钟,形如(12:03) 3.表单类

  • b/s开发常用javaScript技术第1/4页

    在b/s开发中经常用到的javaScript技术  一.验证类 1.数字验证内   1.1 整数   1.2 大于0的整数 (用于传来的ID的验证)   1.3 负整数的验证   1.4 整数不能大于iMax   1.5 整数不能小于iMin 2.时间类   2.1 短时间,形如 (13:04:06)   2.2 短日期,形如 (2003-12-05)   2.3 长时间,形如 (2003-12-05 13:04:06)   2.4 只有年和月.形如(2003-05,或者2003-5)   2.

  • 关于Asp代码与页面的分离模板技术第1/3页

    在使用ASP制作一个站点的时候,常常会出现一个ASP文件中,程序代码和HTML代码混合的情况.这样子做有许多缺点: 1.编程时就要对页面布局进行设计和编排,造成代码混乱难懂,不规范; 2.当需要改变页面外观时,你不仅要改变HTML部份,也需要改变ASP代码,不易维护. 那么,要如何才能避免这些麻烦呢? 答案就是使用模板文件,将ASP代码和HTML页面分开,一切问题就都解决了.使用模板有以下好处: 1.在很短的时间内可以替换整个站点的外观; 2.使程序员可以抽象编程,而无须接触HTML代码; 3.

  • windows 权限之拒绝运行应用程序

    一:禁止下载程序 很多时候,客户机喜欢下载很多东西.这不仅占用大量带宽,而且容易中病毒,造成系统瘫痪.而作为网络管理员的你就得重做系统了.是否再也不想让这样的事发生?那就禁用客户机下载东西.  具体方法: ·:禁止访问某个网站可以在hosts文件中加入网站的域名,并给域名指定一条错误的IP.如指定www.baidu.com的IP为0.0.0.0 这样用户在访问www.baidu.com时,将发送数据给0.0.0.0这个IP.从而禁止了用户访问百度这个网站.具体方法:第一步:打开c:\window

  • Android平台基于Pull方式对XML文件解析与写入方法详解

    本文详细讲述了Android平台基于Pull方式对XML文件解析与写入方法.分享给大家供大家参考,具体如下: XML技术在跨平台的情况下的数据交互中得到了广泛的应用,假如我们需要开发一个Android应用程序,需要同服务器端进行数据交互,通过XML文件可以很方便的在Android平台和服务器之间进行数据传输,具体实现涉及到对XML文件进行解析及写入的技术.本文实现在Android平台上基于Pull方式对XML文件解析的技术. XmlPullParser是一个Java实现的开源API包(源码下载地

随机推荐