恶意代码分析实战[试读]
第0章 恶意代码分析技术入门
在我们学习恶意代码分析的具体技术之前,首先需要定义一些术语、了解一些常见的恶意代码类型,以及介绍恶意代码分析的基本方法。任何以某种方式对用户、计算机或网络造成破坏的软件,都可以被认为是恶意代码,包括计算机病毒、木马、蠕虫、内核套件、勒索软件、间谍软件,等等。尽管恶意代码以许多不同的形态出现,但分析恶意代码的技术是通用的。你选择使用哪项技术,将取决于你的目标。 0.1 恶意代码分析目标 恶意代码分析的目标,通常是为一起网络入侵事件的响应提供所需信息。因此,你的目标往往是确定到底发生了什么,并确保你能够定位出所有受感染的主机和文件。在分析可疑恶意代码时,你的目标通常是确定某一个特定的可疑二进... 查看全部[ 第0章 恶意代码分析技术入门 ]
第6章 识别汇编中的C代码结构
在第4章中,我们讨论了x86体系结构以及它最常用的指令。但是成功的逆向工程师并不会单独评估每一条指令,除非到他们必须这么做的时候。这个过程实在是太乏味了,并且整个被反汇编程序中的指令数目可以达到上千甚至上百万。作为一名恶意代码分析师,你必须能通过技巧,来获得一个高层次的代码功能视图,这个技巧就是以组为单位来分析指令,只在需要时再将精力集中在单条指令上。这个技巧的使用需要时间积累。 作为开始,让我们先考虑一个恶意代码作者是如何开发代码的,从而确定该如何分组指令。恶意代码典型情况下都是采用高级语言开发的,大多数时候是C语言。一个代码结构是一段代码的抽象层,它定义了一个功能属性,而不是它的实现细节... 查看全部[ 第6章 识别汇编中的C代码结构 ]
第19章 shellcode分析
shellcode是指一个原始可执行代码的有效载荷。shellcode这个名字来源于攻击者通常会使用这段代码来获得被攻陷系统上交互式shell的访问权限。然而,时过境迁,现在这个术语通常被用于描述一段自包含的可执行代码。 shellcode经常与漏洞利用并肩使用,来颠覆一个运行的程序,或是被恶意代码用于执行进程注入。漏洞利用与进程注入,在机制上与shellcode被植入到一个运行的程序并在进程启动后执行是相似的。 shellcode的编写者需要手动执行几个软件开发者从未意识到的动作。例如,shellcode代码不能依赖于Windows加载器在普通程序启动时所执行的如下动作: ● 将程序布... 查看全部[ 第19章 shellcode分析 ]