如何应对恶意软件新技术(五)

日期: 2011-11-29 作者:茫然 来源:TechTarget中国

系列文章(四)中,我们介绍了恶意软件作者如何通过技术检测虚拟测试环境以及通过JavaScript的模糊代码对浏览器进行攻击。本文我们将介绍恶意软件作者如何干扰调试。   对付调试工具   与JavaScript自查功能的使用有异曲同工之妙的是,使用针对可执行调试工具的技术。调试器这种由程序员在汇编语言水平上监视程序执行的工具,可以挂起一个程序的执行,并允许用户检查内存,查看在代码执行过程中都发生了什么。

  恶意程序的作者深谙此道,掌握多种技巧(许多技巧是从软件副本的保护方案中获得的,特别是从一些游戏开发商的开发思路中所获得的),其目的是挫败使用调试工具的反恶意软件分析师。下面谈的就是其中一些……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

系列文章(四)中,我们介绍了恶意软件作者如何通过技术检测虚拟测试环境以及通过JavaScript的模糊代码对浏览器进行攻击。本文我们将介绍恶意软件作者如何干扰调试。

  对付调试工具

  与JavaScript自查功能的使用有异曲同工之妙的是,使用针对可执行调试工具的技术。调试器这种由程序员在汇编语言水平上监视程序执行的工具,可以挂起一个程序的执行,并允许用户检查内存,查看在代码执行过程中都发生了什么。

  恶意程序的作者深谙此道,掌握多种技巧(许多技巧是从软件副本的保护方案中获得的,特别是从一些游戏开发商的开发思路中所获得的),其目的是挫败使用调试工具的反恶意软件分析师。下面谈的就是其中一些流行的技术:

  •   检测调试工具:最有效的恶意软件技术依赖于这个事实:要让一个调试器来工作,就必须用某种方式调整程序及其操作环境。因此,调试程序必须得到操作系统的支持,允许其执行一些通常不被允许的操作,如监视另一个程序的内存等。这会使反调试技术检测到其行动轨迹。如果一个程序能够判定自己正在一个调试器中被监视,它就可以调整其功能,甚至拒绝运行。
  •   搞乱调试工具:其它的反调试技术都是为了搞乱调试工具。为完成其工作,调试工具必须理解一个程序的流程,它一般以汇编语言代码来执行,并可以利用函数调用和指令流。然而,调试工具对程序的流程采取了一种先入为主的观念,它主要根据编译器所生成的代码的特性工作。如果一个为恶意软件公司工作的汇编语言程序员要创建违反这些假设的代码,就最终会扰乱调试工具的“反汇编”部分。

  这类模糊的基础是一种称为“失调术”的技术,即恶意软件的作者使用复杂的偏移技术,并在其代码内部直接操纵执行点,用以跳转到一些非正常的位置。因而,调试工具就有可能显示错误的代码。

  但不管恶意软件的作者多么狡猾,他们都面临一个很不利的问题:要让其商业模式成功,就必须让代码在某个地方运行。而恶意软件的分析师在其实验室里对他们所测试程序的环境拥有完全的控制。通常,胜利属于控制战场的一方。

  恶意软件的分析师可以在其专用的JavaScript解析器中运行脚本,从而克服JavaScript的某些特性。这种解析器允许分析师调整内置函数的功能或者控制这种语言的某些属性值。只要有充足的时间,训练有素的恶意软件分析师就可以找到改变程序流程的方法,从而克服各种反调试技术

  下文将谈恶意软件编写者的终级武器:蛮力制胜

作者

茫然
茫然

暂无

相关推荐