“映像劫持”,也被称为“IFEO”(Image File Execution Options),在WindowsNT架构的系统里,IFEO的本意是为一些在默认系统环境中运行时可能引发错误的程序执行体提供特殊的环境设定。当一个可执行程序位于IFEO的控制中时,它的内存分配则根据该程序的参数来设定,而WindowsN T架构的系统能通过这个注册表项使用与可执行程序文件名匹配的项目作为程序载入时的控制依据,最终得以设定一个程序的堆管理机制和一些辅助机制等。出于简化原因,IFEO使用忽略路径的方式来匹配它所要控制的程序文件名,所以程序无论放在哪个路径,只要名字没有变化,它就运行出问题。
“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Image File ExecutionOptions”内,使用与可执行程序文件名匹配的项目作为程序载入时的控制依据,最终得以设定一个程序的堆管理机制和一些辅助机制等,大概微软考虑到加入路径控制会造成判断麻烦与操作不灵活的后果,也容易导致注册表冗余,于是IFEO使用忽略路径的方式来匹配它所要控制的程序文件名。
实例操作
例如有一个程序文件名为“xiaojin.exe”,由于使用了旧的堆管理机制,它在新系统里无法正常运行甚至出现非法操作,为了让系统为其提供旧的堆管理机制,需要IFEO来介入,则需执行以下步骤:
IIS7网站监控工具可以做到提前预防各类网站劫持、并且是免费在线查询、适用于各大站长、政府网站、学校、公司、医院等网站。他可以做到24小时定时监控、同时它可以让你知道网站是否被黑、被入侵、被改标题、被挂黑链、被劫持、被墙及DNS是否被污染等等功能、更是拥有独家检测网站真实的完全打开时间、让你作为站长能清楚的知道自己网站的健康情况!官方地址:IIS7服务器管理工具
官方图

  1. 确保在管理员状态下执行regedit.exe,定位到以下注册表项:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Image File ExecutionOptions
  2. 在“Image File Execution Options”下建立一个子键,名为“xiaojin.exe”,不区分大小写。现在确保位于HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Image File ExecutionOptions\xiaojin.exe\下,建立一个字符串类型的注册表项,名为“DisableHeapLookAside”,值为“1”
  3. 再次运行xiaojin.exe查看运行情况,如果真的是由于堆管理机制引发的问题,则程序得以正常运行,否则该程序问题不属于IFEO能够干涉的范围,或者需要尝试搭配其他的参数使用。
    基本原理
    QUOTE
    NT系统在试图执行一个从命令行调用的可执行文件运行请求时,先会检查运行程序是不是可执行文件,如果是的话,再检查格式的,然后就会检查是否存在。。如果不存在的话,它会提示系统找不到文件或者是“指定的路径不正确等等。
    当然,把这些键删除后,程序就可以运行!
    从实际现象来说
    把IFEO直接称为“映像劫持”未免有点冤枉它了,因为里面大部分参数并不会导致今天这种局面的发生,惹祸的参数只有一个,那就是“Debugger”,将IFEO视为映像劫持,大概是因为国内一些人直接套用了“Image File Execution Options”的缩写吧,在相对规范的来自Sysinternals的专业术语里,利用这个技术的设计漏洞进行非法活动的行为应该被称为“Image Hijack”,这才是真正字面上的“映像劫持”!
    Debugger参数
    直接翻译为“调试器”,它是IFEO里第一个被处理的参数,其作用是属于比较匪夷所思的,系统如果发现某个程序文件在IFEO列表中,它就会首先来读取Debugger参数,如果该参数不为空,系统则会把Debugger参数里指定的程序文件名作为用户试图启动的程序执行请求来处理,而仅仅把用户试图启动的程序作为Debugger参数里指定的程序文件名的参数发送过去!光是这个概念大概就足够一部分人无法理解了,所以我们放简单点说,例如有两个客人在一起吃自助餐,其中一个客人(用户)委托另一个客人(系统)去拿食物时顺便帮自己带点食物回来(启动程序的请求),可是系统在帮用户装了一盘子食物并打算回来时却发现另一桌上有个客人(Debugger参数指定的程序文件)居然是自己小学里的暗恋对象!于是系统直接端着原本要拿给用户的食物放到那桌客人那里共同回忆往事去了(将启动程序请求的执行文件映像名和最初参数组合转换成新的命令行参数……),最终吃到食物的自然就是Debugger客人(获得命令行参数),至此系统就忙着执行Debugger客人的启动程序请求而把发出最初始启动程序请求的用户和那盘食物(都送给Debugger客人做命令行参数了)给遗忘了。
    在系统执行的逻辑里
    这就意味着,当一个设置了IFEO项Debugger参数指定为“notepad.exe”的“iexplore.exe”被用户以命令行参数“-nohome bbset”请求执行时,系统实际上到了IFEO那里就跑去执行notepad.exe了,而原来收到的执行请求的文件名和参数则被转化为整个命令行参数“C:\Program Files\Internet Explorer\IEXPLORE.EXE - nohome ”来提交给notepad.exe执行,所以最终执行的是“notepad.exe C:\Program Files\Internet Explorer\IEXPLORE.EXE - nohome bbs.即用户原来要执行的程序文件名iexplore.exe被替换为notepad.exe,而原来的整串命令行加上iexplore.exe自身,都被作为新的命令行参数发送到notepad.exe去执行了,所以用户最终看到的是记事本的界面,并可能出现两种情况,一是记事本把整个iexplore.exe都作为文本读了出来,二是记事本弹出错误信息报告“文件名不正确”,这取决于iexplore.exe原来是作为光杆司令状态请求执行(无附带运行命令行参数)的还是带命令行参数执行的。
    Debugger参数存在的本意
    是为了让程序员能够通过双击程序文件直接进入调试器里调试自己的程序,曾经调试过程序的朋友也许会有一个疑问,既然程序启动时都要经过IFEO这一步,那么在调试器里点击启动刚被Debugger参数送进来的程序时岂不是又会因为这个法则的存在而导致再次产生一个调试器进程?微软并不是傻子,他们理所当然的考虑到了这一点,因此一个程序启动时是否会调用到IFEO规则取决于它是否“从命令行调用”的,那么“从命令行调用”该怎么理解呢?例如我们在命令提示符里执行taskmgr.exe,这就是一个典型的“从命令行调用”的执行请求,而我们在点击桌面上、普通应用程序菜单里的taskmgr.exe时,系统都会将其视为由外壳程序Explorer.exe传递过来的执行请求,这样一来,它也属于“从命令行调用”的范围而触发IFEO规则了。为了与用户操作区分开来,系统自身加载的程序、调试器里启动的程序,它们就不属于“从命令行调用”的范围,从而绕开了IFEO,避免了这个加载过程无休止的循环下去。
    由于Debugger参数的这种特殊作用,它又被称为“重定向”(Redirection),而利用它进行的攻击,又被称为“重定向劫持”(Redirection Hijack),它和“映像劫持”(Image Hijack,或IFEO Hijack)只是称呼不同,实际上都是一样的技术手段。
    实质问题
    讲解完Debugger参数的作用,我们来看看“映像劫持”到底是怎么一回事,遭遇流行“映像劫持”病毒的系统表现为常见的杀毒软件、防火墙、安全检测工具等均提示“找不到文件”或执行了没有反应,于是大部分用户只能去重装系统了,但是有经验或者歪打正着的用户将这个程序改了个名字,就发现它又能正常运行了,这是为什么?答案就是IFEO被人为设置了针对这些流行工具的可执行文件名的列表了,而且Debugger参数指向不存在的文件甚至病毒本身!
    举例
    以超级巡警的主要执行文件AST.exe为例,首先,有个文件名为kkk.exe的恶意程序向IFEO列表里写入AST.exe项,并设置其Debugger指向kkk.exe,于是系统就会认为kkk.exe是AST.exe的调试器,这样每次用户点击执行AST.exe时,系统执行的实际上是作为调试器身份的kkk.exe,至于本该被执行的AST.exe,此刻只能被当作kkk.exe的执行参数来传递而已,而由于kkk.exe不是调试器性质的程序,甚至恶意程序作者都没有编写执行参数的处理代码,所以被启动的永远只有kkk.exe自己一个,用户每次点击那些“打不开”的安全工具,实际上就等于又执行了一次恶意程序本体!这个招数被广大使用“映像劫持”技术的恶意软件所青睐,随着OSO这款超级U盘病毒与AV终结者(随机数病毒、8位字母病毒)这两个灭杀了大部分流行安全工具和杀毒软件的恶意程序肆虐网络以后,一时之间全国上下人心惶惶,其实它们最大改进的技术核心就是利用IFEO把自己设置为各种流行安全工具的调试器罢了,破解之道尤其简单,只需要将安全工具的执行文件随便改个名字,而这个安全工具又不在乎互斥量的存在,那么它就能正常运行了,除非你运气太好又改到另一个也处于黑名单内的文件名去了,例如把AST.exe改为IceSword.exe。

映像劫持是什么?映像劫持原理及实例操作相关推荐

  1. dns劫持解决办法、dns劫持是什么、dns劫持原理

    一.什么是DNS 在网络中,机器之间只认识IP地址,机器之间最终都要通过IP来互相访问.但是为了方便记忆,可以为IP地址设置一个对应的域名,通过访问域名,就可以找到对应IP地址的网站. 比如,我们访问 ...

  2. java 实现dns劫持_什么是HTTP劫持和DNS劫持

    HTTP劫持 在用户的客户端与其要访问的服务器经过网络协议协调后,二者之间建立了一条专用的数据通道,用户端程序在系统中开放指定网络端口用于接收数据报文,服务器端将全部数据按指定网络协议规则进行分解打包 ...

  3. 手机怎么用外嵌字幕_剪映教程大全:剪映加字幕、设置封面、变速等教程详解!...

    玩抖音短视频的朋友基本都知道,剪映app算是手机剪辑软件中最热门,也最好用的一款! 很多基础的视频剪辑,都可以直接用剪映app完成. 不过,对于很多新手来说,剪映app的使用,仍然很有难度,例如剪映怎 ...

  4. 剪映导出帧率选多少_剪映帧率是什么 剪映帧率在哪设置

    我们在使用剪映剪辑视频的时候,会发现有个帧率的功能,可以调整到30.50.60等.不少人都不太明白这是怎么回事.今天就带大家来了解下. 剪映帧率什么意思 帧速率也称为FPS(Frames Per Se ...

  5. 网站app被劫持怎么办?dns被劫持,域名被劫持,HTTPDNS阿里云域名防劫持, DNSPod移动解析防劫持服务D+...

    网站app被劫持怎么办?dns被劫持,域名被劫持 HTTPDNS阿里云域名防劫持, DNSPod移动解析防劫持服务D+ 垄断,就是鸡国的毒瘤. 域名被中移动劫持了,mlgb!! 关于互联网流量劫持分析 ...

  6. TCP三次握手和劫持原理与实例

    首先详细了解一下TCP三次握手的过程     三次握手Three-way Handshake   一个虚拟连接的建立是通过三次握手来实现的   1. (B) --> [SYN] --> ( ...

  7. 网站域名被劫持、网站dns被劫持 域名跳转到别的网站的解决方法

    网站域名被劫持,网站dns被劫持,域名跳转到别的网站怎么解决? 网站域名被劫持,网站dns被劫持,域名跳转到别的网站怎么解决? 出现网站域名跳转到其他网站,这一现象很可能是域名被劫持. [网站域名被劫 ...

  8. 遇到DNS运营商劫持怎么办、运营商劫持的解决方法有那些

    运营商劫持在如今很普遍,相信很多人还不清楚,什么是运营商劫持?遇到DNS运营商劫持怎么办?本次在这里就为大家科普下. 什么是运营商劫持? 运营商是指那些提供宽带服务的ISP,包括三大运营商中国电信.中 ...

  9. WDS使用捕获映像制作企业自定义映像

    来源:http://www.07net01.com/linux/WDSshiyongbuhuoyingxiangzhizuoqiyezidingyiyingxiang_545749_137448761 ...

最新文章

  1. angular组合preact
  2. 跨网页的新手引导_IOS中新手引导页面的实现(新手引导,Guide)
  3. Altium Designer -- PCB设置板框
  4. k3 cloud 文件服务器搭建,k3cloud服务器推荐配置
  5. 依赖注入和控制反转的理解(转载)
  6. 会php会javascript,javascript – 只会php和js但不会java,能做手机应用开发吗?
  7. Java课程设计——学生成绩管理系统
  8. 计算机二级access分数分布_计算机二级office题型及分值分布
  9. 【攻防世界】十八、mfw
  10. html右边显示不全,显示器右边显示不全怎么办
  11. matlab中仿真中接地,基于Matlab的配电网接地故障仿真
  12. 阿里云装mysql选择版本_mysql学习之-三种安装方式与版本介绍
  13. mysql和python先学哪个_Python之路-python(mysql介绍和安装、pymysql、ORM sqlachemy)
  14. 「Shell」- 使用环境变量,替换在文件中的变量(envsubst) @20210401
  15. 服务器执行执行文件,服务器定时执行程序
  16. 考研英语 - word-list-9
  17. ipad越狱后怎么还原?
  18. 可视化-three.js波浪线条
  19. 菜鸡的ShaderForge3-利用UV贴图制作卡通风格材质
  20. MATLAB R2018a简介

热门文章

  1. 冰心关于鸿蒙初开的诗,写冰心的诗句诗词,关于冰心的古诗大全,描写冰心的诗全集...
  2. Bogo游戏陪玩开发系统特性搭建及源码
  3. android获取网络时区_Android获取系统时间以及网络时间
  4. 手机浏览器跳转微信指定页面及跳转微信公众号一键关注
  5. 2018.03.27 pandas concat 和 combin_first使用
  6. 一款打击感超强的动作游戏《流星蝴蝶剑》
  7. 这是一份数据库酒店管理的代码【简易版】
  8. Ubuntu试用模式下怎么获取root权限?
  9. day03_python基础
  10. uniapp图表库ucharts双y轴实现方法