• 我们在哪一颗星上见过 ,以至如此相互思念 ;我们在哪一颗星上相互思念过,以至如此相互深爱
  • 我们在哪一颗星上分别 ,以至如此相互辉映 ;我们在哪一颗星上入睡 ,以至如此唤醒黎明
  • 认识世界 克服困难 洞悉所有 贴近生活 寻找珍爱 感受彼此
恶意代码分析实战:第十四章 恶意代码的网络特征

恶意代码分析实战:第十四章 恶意代码的网络特征

1 网络应对措施 网络行为的基本属性: IP地址、TCP/UDP端口、域名、流量内容等 配置DNS服务器,将一个已知的恶意域名重定向到内部主机,这种被称为sinkhole技术 配置代理服务器,可以检测或者组织访问某些域名。 1.1 在原始环境中观察恶意代码 恶意代码分析的一步不应该是在实验环境中运行恶意代码,也不应该是解剖恶意diamante分析它的反汇编代……

恶意代码分析实战:第十三章 数据加密

恶意代码分析实战:第十三章 数据加密

1 简单加密算法 1.1 凯撒密码 它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。这个加密方法是以罗马共和时期恺撒的名字命名的,当年恺撒曾用此方法与其将军们进行联系。 1.2 XOR XOR加密使用一个静态字节值,通过与该值执行……

恶意代码分析实战:第十章 使用WinDbg调试内核

恶意代码分析实战:第十章 使用WinDbg调试内核

1 驱动与内核代码 驱动程序常驻内存,并且负责响应用户态应用程序请求,因此分析它十分困难。另外,由于应用程序不直接与驱动程序通信,而是直接访问设备对象,向具体的物理设备发送请求,使得驱动程序更加难以分析。 设备对象由驱动程序创建和销毁,可以被用户态的程序直接访问,但它们并不一定是真实的物理状态。 举例来说,USB闪存驱动器在系统中拥有一个处理USB闪存驱动器……

恶意代码分析实战:第十六章 反调试技术

恶意代码分析实战:第十六章 反调试技术

3 感染调试器功能 3.1 使用TLS回调 3.1.1 线程局部存储(TLS) PE文件头可选映像头中数据目录表的第10成员IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS]指向线程局部存储,英文简写”TLS”。 这个段里面保存了变量和回调函数的数据,但是TLS表……

恶意代码分析实战:第十二章 隐蔽的恶意代码启动

恶意代码分析实战:第十二章 隐蔽的恶意代码启动

为了隐藏自身,恶意代码的编写者开发了多种技术,将恶意代码混淆到正常的Windoes资源空间中。 1. 启动器 启动器也叫加载器,是一种设置自身或其他恶意代码片段以达到即时或将来秘密运行恶意代码。启动器目的是安装一些东西,以使恶意行为对用户隐藏。 启动器通常包含它要加载的恶意代码,最常见情况是在它的资源节中包含一个可执行文件或者DLL。如果资源节被压缩或者加密……

恶意代码分析实战:第十九章 shellcode分析

恶意代码分析实战:第十九章 shellcode分析

shellcode是指一个原始可执行代码得有效载荷,原意是攻击者会使用这段代码获得被攻陷系统上交互式shell的访问权限。 1. 加载shellcode分析 可执行代码块,必须有载荷加载shellcode才能运行 2. 位置无关代码 位置无关代码(PIC)是指不使用硬编码地址来寻址指令或数据的代码。它不能假设自己再执行时会被加载到一个特定的内存中。 以下是几……

恶意代码分析实战:第七章 分析恶意Windows程序

恶意代码分析实战:第七章 分析恶意Windows程序

多数恶意代码以Windows平台为目标,并且与操作系统进行紧密交互。 1 Windows API 恶意代码调用适当windows api即可完成恶意功能。 1.1 类型和匈牙利表达法 Windows总体上使用匈牙利表达法,作为API的函数标识符。这个表达式使用前缀命名模式。比如virtualAllocEx函数的第三个参数是dwSize,这是一个DWORD类型……

恶意代码分析实战:第六章 识别汇编中的C代码结构

恶意代码分析实战:第六章 识别汇编中的C代码结构

再次强调,分析恶意代码的目标是理解一个程序总体功能,而不是分析每一条指令,不要在细节上陷入困境,将精力集中在程序整体上是如何工作的,而不是它们是如何做每一件特定的事情的。 1 全局与局部变量 全局变量可以被一个程序中任意函数访问和使用。局部变量只能在它被定义的函数中访问。在C中全局变量和局部变量声明方式是相似的,但是在汇编中看起来完全不同。 定义全局变量x与……

恶意代码编程:注入技术

恶意代码编程:注入技术

病毒木马需要将执行的Shellcode或者DLL注入到目标进程中去执行,其中DLL注入最为普遍。因为DLL不需要像Shellcode那样要获取Kernel32.dll加载基址并根据导出表获取导出函数地址。若DLL成功注入,则表示DLL已经加载到目标进程空间中,其导入表、导出表、重定位表等均已经加载完毕,DLL中的代码可以正常执行。 1. 全局钩子注入 在wi……

恶意代码分析实战:第一章 静态分析基础技术

恶意代码分析实战:第一章 静态分析基础技术

第一步:反病毒引擎扫描 反病毒引擎主要依靠一个已知恶意代码那可识别片段的特征数据库(病毒文件特征库),以及基于行为与模式匹配的分析(启发式检测)来识别可疑文件。 因为不同的反病毒软件使用了不同的特征库和启发式检测方法,所以对同一个可以恶意代码样本,运行不同反病毒软件进行扫描检测时相当有必要的。 第二步:恶意代码的指纹 哈希时一种唯一标识恶意代码的常用方法。计……

恶意代码分析实战:第零章 恶意代码分析技术入门

恶意代码分析实战:第零章 恶意代码分析技术入门

恶意代码分析的目标 通常是为一起网络入侵事件的响应提供所需的信息。 确定某一个特定的可以二进制程序到底可以做什么 如何在网络上检测它 如何衡量并消除它所带来的危害 因此,需要确定到底发生了什么,并确保能够定位出所受感染的主机和文件。确定了哪些文件需全面分析后,要编写相应的“检测特征码”,以便在网络中检测出恶意代码感染的主机。 基于主机的特征码,或称为感……