系列文章(四)中,我们介绍了恶意软件作者如何通过技术检测虚拟测试环境以及通过JavaScript的模糊代码对浏览器进行攻击。本文我们将介绍恶意软件作者如何干扰调试。 对付调试工具 与JavaScript自查功能的使用有异曲同工之妙的是,使用针对可执行调试工具的技术。调试器这种由程序员在汇编语言水平上监视程序执行的工具,可以挂起一个程序的执行,并允许用户检查内存,查看在代码执行过程中都发生了什么。
恶意程序的作者深谙此道,掌握多种技巧(许多技巧是从软件副本的保护方案中获得的,特别是从一些游戏开发商的开发思路中所获得的),其目的是挫败使用调试工具的反恶意软件分析师。下面谈的就是其中一些……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号

TechTarget
官方微博

TechTarget中国
系列文章(四)中,我们介绍了恶意软件作者如何通过技术检测虚拟测试环境以及通过JavaScript的模糊代码对浏览器进行攻击。本文我们将介绍恶意软件作者如何干扰调试。
对付调试工具
与JavaScript自查功能的使用有异曲同工之妙的是,使用针对可执行调试工具的技术。调试器这种由程序员在汇编语言水平上监视程序执行的工具,可以挂起一个程序的执行,并允许用户检查内存,查看在代码执行过程中都发生了什么。
恶意程序的作者深谙此道,掌握多种技巧(许多技巧是从软件副本的保护方案中获得的,特别是从一些游戏开发商的开发思路中所获得的),其目的是挫败使用调试工具的反恶意软件分析师。下面谈的就是其中一些流行的技术:
- 检测调试工具:最有效的恶意软件技术依赖于这个事实:要让一个调试器来工作,就必须用某种方式调整程序及其操作环境。因此,调试程序必须得到操作系统的支持,允许其执行一些通常不被允许的操作,如监视另一个程序的内存等。这会使反调试技术检测到其行动轨迹。如果一个程序能够判定自己正在一个调试器中被监视,它就可以调整其功能,甚至拒绝运行。
- 搞乱调试工具:其它的反调试技术都是为了搞乱调试工具。为完成其工作,调试工具必须理解一个程序的流程,它一般以汇编语言代码来执行,并可以利用函数调用和指令流。然而,调试工具对程序的流程采取了一种先入为主的观念,它主要根据编译器所生成的代码的特性工作。如果一个为恶意软件公司工作的汇编语言程序员要创建违反这些假设的代码,就最终会扰乱调试工具的“反汇编”部分。
这类模糊的基础是一种称为“失调术”的技术,即恶意软件的作者使用复杂的偏移技术,并在其代码内部直接操纵执行点,用以跳转到一些非正常的位置。因而,调试工具就有可能显示错误的代码。
但不管恶意软件的作者多么狡猾,他们都面临一个很不利的问题:要让其商业模式成功,就必须让代码在某个地方运行。而恶意软件的分析师在其实验室里对他们所测试程序的环境拥有完全的控制。通常,胜利属于控制战场的一方。
恶意软件的分析师可以在其专用的JavaScript解析器中运行脚本,从而克服JavaScript的某些特性。这种解析器允许分析师调整内置函数的功能或者控制这种语言的某些属性值。只要有充足的时间,训练有素的恶意软件分析师就可以找到改变程序流程的方法,从而克服各种反调试技术。
下文将谈恶意软件编写者的终级武器:蛮力制胜
相关推荐
-
BrickerBot是如何攻击企业IoT设备的?
我所在的公司的网络囊括物联网(IoT)设备。我听说BrickerBot能够在发动拒绝服务攻击后永久性地损坏一些IoT设备。那么,企业可以采取什么措施来抵御BrickerBot?
-
如何检测出定制服务器中预装的恶意软件?
定制服务器意味着企业需要对更多硬件安全承担责任,并更多地依靠定制制造商,而不是传统服务器供应商……
-
勒索软件连续升级,RaaS走热
如今,勒索软件业务正持续壮大,恶意软件开发人员在尝试利用不同类型的勒索软件的新功能,使攻击更加有效和有利可图。
-
攻击手段再升级,谷歌云服务成新跳板
最近安全研究人员披露有攻击团队利用谷歌云服务对企业进行攻击,其中包括臭名昭著的Carbanak团伙,它以金融机构为主要攻击目标。