逆向数据分析
- 格式:docx
- 大小:43.00 KB
- 文档页数:6
如何在Excel中进行数据表的逆向工程数据表的逆向工程是指通过已有的数据表结构,逆向分析出数据表的设计思路和数据模型等信息。
在Excel中进行数据表的逆向工程,可以帮助我们更好地理解数据表的结构和关联关系,为后续的数据分析和数据模型设计提供参考。
本文将介绍在Excel中进行数据表的逆向工程的方法和步骤。
一、准备工作在进行数据表的逆向工程之前,需要准备好相应的数据表文件,并确保数据表文件中包含了所有需要逆向工程的数据表。
同时,建议在逆向工程之前,根据需要对数据表文件进行备份,以防止数据丢失。
二、导入数据表文件打开Excel软件,在工具栏中选择“数据”选项,在下拉菜单中选择“从文本”选项。
接着,选择需要进行逆向工程的数据表文件,点击“导入”按钮。
在导入向导中,按照步骤进行设置,确保数据表文件正确导入到Excel中。
三、分析数据表结构在Excel中导入数据表文件后,我们可以通过查看数据表的结构来进行逆向工程。
首先,选择数据表所在的工作表,点击“数据”选项卡中的“箭头”按钮,展开数据表工具栏。
在数据表工具栏中,可以通过“排序”、“过滤”等功能进行数据表的分析和排列整理。
四、查看字段定义我们可以逐个查看数据表中的字段定义,包括字段名、数据类型、长度、约束条件等信息。
点击数据表中的字段标题,选择“列宽自适应”,可以使字段信息完整显示在单元格中。
同时,可以通过设置筛选功能,按照需要查找和过滤特定字段。
五、分析数据表关系在Excel中进行数据表的逆向工程时,需要分析数据表之间的关系,包括主键-外键关系、一对一关系、一对多关系等。
我们可以利用Excel提供的公式和函数功能,来计算和分析数据表之间的关联关系。
例如,可以使用VLOOKUP函数来根据数据表中的字段值在其他数据表中查找相关信息。
六、绘制ER图在分析数据表关系的基础上,我们可以根据数据表的逆向工程结果,绘制出ER图(实体-关系图),以直观展示数据表之间的关联关系。
如何使用Excel进行数据的逆和数据逆表数据的加工和整理是现代信息时代中不可或缺的一环,而Excel作为常用的电子表格软件,提供了强大的数据处理和分析功能。
本文将介绍如何在Excel中进行数据的逆和数据逆表操作,帮助读者更好地处理和管理数据。
一、数据的逆转数据的逆转是指将数据按照某个维度进行翻转,行列互换的过程。
例如,将一些行数据转换为列数据,或者将一些列数据转换为行数据。
在Excel中,可以通过以下步骤实现数据的逆转:1. 选择需要逆转的数据区域。
可以通过鼠标拖拽或者按住Ctrl键选择多个不相邻的区域。
2. 复制选中的数据区域。
可以通过按下Ctrl键加上C键实现复制,或者点击右键选择“复制”选项。
3. 在逆转的位置,点击右键选择“值”选项,在“转置”选项中选择“粘贴”。
4. 数据逆转完成。
逆转后的数据将按照原来的列作为行,原来的行作为列展示。
二、数据的逆表数据的逆表是指将表格中的数据按照维度进行逆向排列,以便更好地进行数据分析和数据处理。
在Excel中,可以通过以下步骤实现数据的逆表:1. 确定逆表的维度和内容。
例如,要将某个产品在不同时间段的销售数据逆表,维度可以是时间,内容可以是销售量。
2. 在一个新的工作表或者已有的工作表中创建逆表。
3. 在逆表中创建表头。
根据逆表的维度确定行和列的标题,例如,时间作为行标题,产品作为列标题。
4. 填充逆表中的数据。
根据原始数据,将对应的值填写到逆表的相应位置。
5. 数据逆表完成。
逆表中的数据将按照行和列的顺序反转,便于数据的统计和分析。
总结:通过使用Excel进行数据的逆和数据逆表操作,我们可以更加灵活地处理和分析数据。
数据的逆转可以将行列数据互换,便于数据的比较和查找;数据的逆表可以将纵向的数据转换为横向,更方便数据的比较和统计。
希望本文的介绍能够帮助到读者,使其能够更加熟练地运用Excel 进行数据处理和分析。
在实际工作和学习中,我们可以灵活运用Excel 的各种功能,在数据处理和分析中节省时间和提高效率。
LabVIEW中的逆向工程与数据解析在现代工程领域,逆向工程与数据解析在许多领域都发挥着重要作用。
尤其是在LabVIEW中,逆向工程与数据解析技术的应用不仅可以提高工程师们的效率,还可以解决一些开发中的难题。
本文将介绍LabVIEW中逆向工程与数据解析的相关概念、方法和应用案例。
一、逆向工程的概念和方法逆向工程是指通过分析、研究已有的系统或产品,从中获取关键信息以便理解其工作原理、功能和设计思想的过程。
在LabVIEW中,逆向工程可以通过以下方法实现:1. 源代码分析:通过分析程序的源代码,了解程序的功能和结构,进而改进现有的系统或产品。
2. 反汇编:将已编译的二进制文件转换为汇编代码,以获取更深入的理解和分析代码的能力。
这对于理解闭源软件或硬件的工作原理至关重要。
3. 数据流分析:通过对数据流的分析,从中获取有关系统或产品的修改信息和数据结构信息。
逆向工程在LabVIEW中的应用广泛,可以帮助开发人员理解他人的代码,提高代码的可读性和可维护性。
二、数据解析的重要性与方法数据解析在LabVIEW中是非常常见的任务,尤其对于从传感器、仪器等设备中获取的原始数据进行处理的工程师来说。
数据解析的目的是从原始数据中提取所需的信息,并将其转换为可用的形式。
1. 字符串解析:LabVIEW提供了强大的字符串解析功能,可以通过正则表达式、字符串分割和替换等方法,将复杂的字符串数据解析为易于理解和处理的格式。
2. 二进制数据解析:LabVIEW的二进制数据解析工具可以将原始的二进制数据转换为各种数据类型,如整数、浮点数等。
这对于处理从硬件设备中读取的原始二进制数据非常有用。
3. 文件解析:LabVIEW可以解析各种类型的文件,如文本文件、Excel文件、数据库文件等。
通过解析这些文件,可以对其中的数据进行分析和处理。
三、LabVIEW中的逆向工程与数据解析的应用案例以下是一些LabVIEW中逆向工程与数据解析的实际应用案例,以展示其重要性和实际价值:1. 传感器数据解析:通过逆向工程和数据解析技术,工程师可以从传感器中获取的原始数据中,提取关键参数,分析和监测设备的性能。
如何利用数据透析表进行数据的逆向计算与校验的成功案例分析与对比数据透析表(Data Mart)是一种专门用于数据分析和报告的数据库。
它以星型模式存储数据,将事实表和多个维度表组合在一起,用于进行数据透视分析。
数据透析表的设计和构建是数据仓库中的核心步骤,它不仅可以用于数据的逆向计算,还可以进行数据的校验和对比。
本文将通过分析一些成功的案例,探讨如何利用数据透析表进行数据的逆向计算与校验。
首先,我们要明确数据的逆向计算是什么意思。
逆向计算是基于已知的计算结果进行反推,找出计算该结果所需的输入数据。
数据透析表可以通过反推数据透析表的关系模型和数据集,计算出未知的输入数据。
例如,我们可以通过已知的销售额和成本数据,计算出利润率等指标。
一个成功的案例是某电商平台的销售数据分析。
该平台通过数据透析表对销售数据进行了逆向计算和校验,发现了一些数据异常和潜在的问题。
首先,他们通过数据透析表分析了销售额、订单量、平均客单价等指标的变化趋势,发现在某一段时间内销售额骤降的情况。
通过逆向计算,他们找出了导致销售额下降的原因是某个热门商品的库存短缺,进而采取了相应的补货措施。
此外,他们还发现了一些未被授权的优惠券使用情况,通过逆向计算找出了优惠券的来源,并加强了对优惠券的管理和监控措施。
另一个成功的案例是一家医药公司的数据校验。
该公司利用数据透析表对药品配送的数据进行了校验,发现了一些数据不一致和错误的情况。
通过逆向计算,他们找出了配送数据中的错误和潜在的问题,并及时进行了修正。
例如,他们发现某些订单的收货地址与实际配送地址不匹配,通过逆向计算找出了数据录入的错误,并采取了相应的纠正措施。
此外,他们还发现了一些订单在配送过程中的延迟情况,通过逆向计算找出了配送问题的原因,并加强了对配送环节的把控和监督。
数据透析表在以上案例中发挥了重要的作用。
通过数据透析表的关系模型和数据集,可以快速找出数据的关联和变化趋势,进而进行数据的逆向计算和校验。
逆向分析的原理及应用1. 什么是逆向分析逆向分析是一种用于研究和理解软件程序内部工作原理的技术。
通过逆向分析,我们可以从已有的程序或者二进制文件中,推断出其中的算法、数据结构以及程序逻辑。
逆向分析主要应用于软件安全研究、软件开发、逆向工程和恶意软件分析等领域。
2. 逆向分析的原理逆向分析主要通过以下几个步骤来实现:2.1 寻找入口点在逆向分析的过程中,首先需要找到程序的入口点。
入口点是程序开始执行的位置,通常是程序的main函数或者其他关键函数。
通过分析程序的调用关系,可以找到程序的入口点。
2.2 反汇编和静态分析反汇编是将二进制文件转换为汇编代码的过程。
通过反汇编可以将程序的机器码转换为可读的汇编指令,以便对程序进行分析和理解。
静态分析是逆向分析的核心技术之一。
通过静态分析,可以分析程序的控制流、数据流、函数调用关系和变量的使用等信息。
静态分析可以通过查看汇编代码、分析函数调用关系图、检测代码中的漏洞和弱点等方式进行。
2.3 动态分析动态分析是通过运行程序来获取运行时信息的一种分析方法。
动态分析可以通过调试工具、模糊测试、取证工具等实现。
通过动态分析,可以观察程序的运行时行为,捕获程序的运行状态、输入和输出等信息。
2.4 反编译反编译是将已编译的程序转换为高级语言(如C语言)的源代码的过程。
通过反编译,可以更加方便地理解和修改程序的逻辑和算法。
3. 逆向分析的应用逆向分析广泛应用于以下几个领域:3.1 软件安全研究逆向分析在软件安全研究领域中起到重要作用。
安全研究人员可以通过逆向分析来发现软件中的漏洞、弱点以及安全风险。
通过分析恶意软件的行为,可以及时发现并应对恶意软件的威胁。
3.2 软件开发逆向分析在软件开发过程中也有重要的应用。
逆向分析可以帮助开发人员理解和优化现有的程序。
通过逆向分析,开发人员可以了解代码中的潜在问题,优化代码的性能和可读性。
3.3 逆向工程逆向工程是指通过逆向分析来研究和理解已有的软件和系统。
如何使用Excel进行数据表的逆向分析Excel是一种强大的数据分析工具,广泛应用于各个领域。
通过Excel,可以对数据进行逆向分析,即从已有的数据表中提取出有用的信息,进行深入的数据分析和洞察。
本文将介绍如何使用Excel进行数据表的逆向分析,以帮助读者更好地运用Excel进行数据分析工作。
数据表的逆向分析主要包括以下几个方面:数据表的导入与整理、数据的筛选与过滤、数据的排序与分类、数据的统计与计算、数据的可视化分析等。
下面将对每个方面进行详细的介绍和操作步骤。
一、数据表的导入与整理1. 打开Excel软件,新建一个工作簿。
2. 在工作簿中选择合适的表格,将需要进行逆向分析的数据表复制到工作簿中。
3. 对导入的数据进行整理,删除多余的行列,保留需要分析的数据部分。
二、数据的筛选与过滤1. 选中需要筛选的数据区域。
2. 在“数据”选项卡中点击“筛选”按钮。
3. 根据需要选择筛选条件,进行数据筛选。
可以使用单个条件或多个条件进行筛选。
三、数据的排序与分类1. 选中需要排序的数据区域。
2. 在“数据”选项卡中点击“排序”按钮。
3. 根据需要选择排序的字段和排序方式,进行数据排序。
4. 使用Excel的分类功能,可以将数据按照某一列的不同取值进行分组,便于后续的分析和比较。
四、数据的统计与计算1. 使用Excel的内置函数进行数据的统计和计算。
常用的函数包括求和、计数、平均值、最大值、最小值等。
2. 选中需要进行统计和计算的区域。
3. 在公式栏中输入相应的函数,并按下回车键,即可得到计算结果。
五、数据的可视化分析1. 使用Excel的图表功能将数据转化为图表,便于直观地分析和展示数据。
2. 选中需要生成图表的数据区域。
3. 在“插入”选项卡中选择合适的图表类型,生成相应的图表。
4. 对图表进行进一步的设置和调整,使其更加清晰、美观。
通过以上步骤,我们可以将Excel作为一个强大的数据逆向分析工具,来提取、整理、分析和展示各类数据。
使用Excel数据表进行数据逆向分析数据逆向分析是一种常见的数据研究方法,它通过分析数据表中的信息,提取出隐藏在其中的模式、趋势和规律。
Excel是一种强大的工具,可用于处理和分析数据,因此在数据逆向分析中,Excel数据表是一个非常重要的工具。
一、数据准备在进行数据逆向分析之前,首先需要准备好需要分析的数据。
数据可以来自多个来源,比如实验数据、市场调查数据或者网络数据等。
在Excel中,可以使用多种方式导入数据,例如从CSV文件导入、从数据库导入或者通过复制粘贴等方式。
二、数据整理在导入数据之后,需要对数据进行整理,以便进一步分析。
对于大型数据集,常常需要进行数据筛选、排序和去重等操作。
Excel提供了丰富的数据处理功能,例如使用筛选和排序功能可以快速找到需要分析的数据,使用去重功能可以去除重复的数据,使得数据更加干净整洁。
三、数据可视化数据可视化是数据逆向分析中非常重要的一步,它可以帮助我们更好地理解数据。
在Excel中,可以利用图表功能将数据可视化呈现。
通过选择合适的图表类型,可以清晰地展示数据的变化趋势和相互关系。
同时,还可以通过添加数据标签、调整图表样式等方式美化图表,使得图表更加直观、易于理解。
四、数据分析在进行数据逆向分析时,需要运用一些分析工具和函数。
Excel提供了多种数据分析的工具和函数,例如数据透视表、函数计算、条件格式化等。
通过灵活运用这些工具和函数,可以对数据进行深入分析,提取出其中的规律和趋势。
数据透视表功能可以帮助我们对数据进行汇总、分类和统计,函数计算可以进行复杂的数学和统计计算,条件格式化可以根据特定的条件对数据进行染色,以便更加直观地观察数据。
五、结果解读在完成数据分析之后,需要对结果进行解读和总结。
根据数据逆向分析的目的和问题,对结果进行解读可以得出结论和推断。
在Excel中,可以使用注释功能或者在单元格中添加说明,对结果进行详细的解释。
同时,还可以将分析结果导出为报告或者图表,以便于他人查看和理解。
逆向数据分析在当今数字化的时代,数据分析已成为企业决策、业务优化和创新发展的重要依据。
通常情况下,我们遵循着从数据收集到分析,再到得出结论和采取行动的正向流程。
然而,有一种相对独特且颇具价值的方法——逆向数据分析,正逐渐引起人们的关注。
所谓逆向数据分析,并非是对传统数据分析的简单颠覆,而是一种从结果出发,倒推过程和原因的思维方式。
它打破了常规的线性分析路径,以一种全新的视角去审视数据。
想象一下这样一个场景:一家电商企业发现近期销售额大幅下降。
按照常规的正向数据分析,可能会从流量来源、用户行为、商品库存等方面逐步排查。
但如果采用逆向数据分析,我们会首先关注销售额下降这个结果,然后去探究是哪些关键因素的缺失或变化导致了这一结果。
比如说,是不是某个主要的供应商出现了问题,导致热门商品缺货?或者是竞争对手推出了极具吸引力的促销活动,抢走了大量客户?又或者是内部的营销策略出现了偏差,未能有效触达目标用户?通过这种反向思考,我们能够更快速地聚焦问题的核心,找到可能被常规分析所忽略的关键因素。
逆向数据分析的优势在于其高效性和针对性。
当面临复杂的业务问题时,正向分析可能会陷入海量的数据和众多的变量中,难以迅速找到关键线索。
而逆向分析则像是一把精准的手术刀,直接切入问题的要害。
以一家制造业企业为例,如果产品的次品率突然上升,通过逆向数据分析,我们不会一开始就去检查整个生产流程中的每一个环节,而是首先确定次品的主要特征和出现的集中批次。
然后,根据这些线索,有针对性地回溯可能导致次品产生的特定工序、原材料或者操作人员,从而大大节省了排查问题的时间和成本。
然而,逆向数据分析也并非毫无挑战。
其中一个主要的困难就是思维方式的转变。
习惯了正向思考的人们,往往在一开始难以适应这种“倒着来”的分析方法。
另外,数据的准确性和完整性对于逆向分析同样至关重要。
如果在追溯原因的过程中,发现关键数据缺失或者错误,就可能导致分析的偏差甚至错误的结论。
逆向分析的技巧逆向分析是指从软件程序或系统中逆向工程出有关其内部结构、功能实现和漏洞等信息的过程。
以下是一些常用的逆向分析技巧:1. 静态分析:通过分析程序的字节码、汇编代码或逆向反汇编的结果,来理解程序的结构和功能实现。
可以使用工具如IDA Pro、Ghidra、Radare2等来进行静态分析。
2. 动态分析:通过动态运行程序,观察其在运行时的行为,包括输入输出、函数调用、内存访问等,以了解其内部工作原理。
可以使用调试器如GDB、OllyDbg、WinDbg等来进行动态分析。
3. 反汇编和反编译:通过将二进制代码或汇编代码转换为高级语言代码,以更好地了解程序的工作方式。
反编译工具如IDA Pro、Ghidra、Radare2可用于将汇编代码转换为相应的高级语言代码。
4. 数据流分析:跟踪程序中的数据流,了解数据如何在不同的函数之间传递和变换。
这有助于理解程序的逻辑和漏洞的来源。
5. 逆向工程工具和库:利用已有的逆向工程工具和库,如Capstone、Keystone、PyTLink等,来简化逆向分析的过程。
6. 模式识别和模糊测试:通过分析相似的程序或系统,识别常见的设计模式或安全漏洞模式。
模糊测试可以通过输入大量的随机或非常规数据来找出程序的漏洞。
7. 调试符号和符号执行:通过启用调试符号和符号执行,可以在程序执行过程中跟踪和分析关键变量和函数的值和状态,以便更好地理解程序的内部工作原理。
8. 反混淆和解密:某些恶意软件或保护软件常常使用混淆和加密技术来隐藏其真实意图和功能。
逆向分析时,需要使用相应的工具和技术来反混淆和解密代码,以还原其原始形式。
以上是一些常用的逆向分析技巧,但应注意逆向分析的合法性和道德性,遵守法律法规和相关规定。
云环境下逆向数据分析的意义
及国内外研究现状
1. 逆向工程
逆向工程(又称逆向技术),是一种产品设计技术再现过程,即对一项目标产品进行逆向分析及研究,从而演绎并得出该产品的处理流程、组织结构、功能特性及技术规格等设计要素,以制作出功能相近,但又不完全一样的产品。
逆向工程源于商业及军事领域中的硬件分析。
其主要目的是在不能轻易获得必要的生产信息的情况下,直接从成品分析,推导出产品的设计原理。
产生动机
1. 接口设计。
由于互操作性,逆向工程被用来找出系统之间的协作协议。
2. 军事或商业机密。
窃取敌人或竞争对手的最新研究或产品原型。
3. 改善文档。
当原有的文档有不充分处,又当系统被更新而原设计人员不
在时,逆向工程被用来获取所需数据,以补充说明或了解系统的最新状
态。
4. 软件升级或更新。
出于功能、合规、安全等需求更改,逆向工程被用来
了解现有或遗留软件系统,以评估更新或移植系统所需的工作。
5. 制造没有许可/未授权的副本。
6. 学术/学习目的。
7. 去除复制保护和伪装的登录权限。
8. 文件丢失:采取逆向工程的情况往往是在某一个特殊设备的文件已经丢
失了(或者根本就没有),同时又找不到工程的负责人。
完整的系统时常
需要基于陈旧的系统上进行再设计,这就意味着想要集成原有的功能进
行项目的唯一方法,便是采用逆向工程的方法,分析已有的碎片进行再
设计。
9. 产品分析:用于调查产品的运作方式,部件构成,估计预算,识别潜在
的侵权行为。
方法实现
1.分析通过信息交换所得的观察。
最常用于协议逆向工程,涉及使用总线分析器和数据包嗅探器。
在接入计算机总线或网络的连接,并成功截取通信数据后,可以对总线或网络行为进行分析,以制造出拥有相同行为的通信实现。
此法特别适用于设备驱动程序的逆向工程。
有时,由硬件制造商特意所做的工具,如JTAG端口或各种调试工具,也有助于嵌入式系统的逆向工程。
对于微软的Windows系统,受欢迎的底层调试器有SoftICE。
2. 反汇编,即使用反汇编器,把程序的原始机器码,翻译成较便于阅读理解的汇编代码。
这适用于任何的计算机程序,对不熟悉机器码的人特别有用。
3. 反编译,即使用反编译器,尝试从程序的机器码或字节码,重现高级语言形式的源代码。
2. 未知协议逆向分析的研究意义
未知协议逆向分析是在不清楚目标协议的规范的前提下,逋过逆向工程跟踪解析协议通信过程的指令级和函数级操作来重构协议的规范,从而解析出未知协议的语法结构和行为语义,是当前网络安全研宄的一个热点和重点。
(1)未知协议逆向分析成为网络信息安全研究和防御的重要手段
在日常生活和工作中,网络通信协议在计算机网络和分布式系统的应用是不可替代的,比如在电子商务领域、通信领域、交通领域、金融领域、应急服务领域、电力调度领域等。
在这过程中,未知协议不断的出现和衍生,伴随而来的是大量的网络安全问题的出现。
比如,某知名网站客户个人信息泄露、某产品系统被非法入侵、某网站被黑客攻击等。
未知协议逆向分析对入侵检测、漏洞挖掘、网络流量分析、网络安全策略的制定等起着至关重要的作用。
(2)未知协议逆向分析为其他安全检测产品提供了基础
a)入侵检测系统(IDS)是逋过某种设备监听网络上传输的原始流量,对捕获的网络数据包进行分析处理,再从分析的结果中提取有用的信息,最后,为了达到识别攻击事件的目的,需要通过比较已知攻击特征和正常网络行为特征来识别。
b)入侵防御系统(IPS)同样也是通过监视网络设备的传输情况,对网络行为判断是否为攻击行为,是否会对网络、数据造成危害的恶意行为,从而到达对网络行为进行检测和防御的目的,使用者能及时应对网络异常状况,并以最大限度的降低网络处理资源的开销,是一种侧重于风险控制的安全产品。
C)防火墙是由服务访问规则、验证工具、包过滤和应用网关4个部分组成的在内网与外网之间、专用网与公共网之间根据特定的访问规则建立起的一种过滤防护技术,存在软件防火墙和硬件防火墙两种形式。
以上几个安全产品都涉及到网络数据包行为分析,对未知网络协议数据的分析是不可避免的,未知网络协议逆向分析技术为IDS, IPS, Firewall等安全产品分析网络数据提供了技术支持,也是对网络流量险情检测能力的一种补强。
3.未知协议逆向分析的国内外研究现状
近年来,国内外网络安全工作者、研究机构在未知协议逆向分析领域开展了大量的研究工作,并取得了丰硕的成果。
当前协议逆向分析的方法主要有两种:基于网络报文序列采样匹配的静态分析方法和基于协议数据在应用程序执行时监控其指令序列轨迹的动态分析方法。
其中,静态分析方法是以未知协议的网络报文序列为分析对象,釆样其网络数据为样本,通过概率匹配算法统计其流量出现的频率和特征来识别未知协议的格式,特点简单、易实现、不需要协议解析终端,因此通用性更强,但缺点是采样量的大小是制约协议识别准确率高低的重要因素,同时不同的协议因为实现标准的差异,有些甚至是非标准的、混滑加密的私有通信协议,单纯的利用概率匹配网络协议流量很难达到识别未知协议的语法格式和字段语义的目的,已有的研宄成果具有代表性的有PI,Discovere产等,采用的方法包括:通过统计网络数据流中不同协议字段的出现频率,利用某种推演算法识别协议字段结构的方法;通过对网络流量的内容统计分析后进行建模,最后针对不同网络流量对应的协议类型进行识别和区分的方法还有通过处理自然语言和字符串对齐算法对网络数据流进行主动学习,并能对接收到的网络请求进行
自动地应答,最后达到识别未知协议的目的动态分析方法是在目标协议数据在应用程序被处理过程中动态跟踪其指令流的轨迹来解析协议的格式,与静态分析方法相比,该方法能获得污点源被应用程序处理过程中的指令级污点扩散轨迹和函数级语义信息,对解析协议语法格式更加准确、识别协议字段语义具有明显的优势,主要研宄成果有:Polyglot, AutoFonnat等。
3.1基于网络报文序列采样匹配的方法
国外提出对未知协议逆向分析釆用网络报文序列釆样匹配分析的方法较早,最为典型的是Beddoe于2004年启动的PI项目(protocol in-formation project)。
PI 项目的核心方法是把生物信息学的序列比对算法应用到对网络报文序列集进行比对分析,其具体分析流程如图1-1所示:
图1-1 PI的分析流程图
3.2基于协议数据在应用程序执行时监控其指令序列轨迹的方法
Lin等人提出了基于污点数据分析的协议字段间结构识别方案AutoFormat,该方案的特点是结合了污点数据解析的上下文环境,在污点跟踪过程中,记录所
有与污点源扩散相关的操作指令和对应的函数调用的地址。
协议字段间存在不同的约束关系,AutoFormat分别通过判断字段间的偏移地址范围是否有重叠推断字段间的包含关系,通过两个字段间的上下文环境是否相同推断字段间的并列关系以及通过判断指令子序列的调用顺序来识别字段间的顺序关系。
AutoFormat对简单的报文协议是可行的,但是针对具有复杂结构的网络协议就无法有效的识别。
因此,Tupni基于Polyglot与AutoFormat设计理念的基础上,通过重点监控复杂结构污点源的控制流指令特征和与平台相关的API调用情况,来获得未知语义类型的符号谓词约束,最后以BNF的形式输出协议逆向的结果。
J Caballero等人于2007年提出动态监控污来逆向分析的思想,并设计出了原型系统Polyglot。
Wondracek等人在Polyglot的基础上提出了另外一种新的方案,即综合多次逆向解析结果的基础上,将格式相同的报文进行信息融合,进而达到提取更准确的协议报文结构。
出于网络传输隐蔽性的考虑,越来越多的未知协议采用了加密技术对报文进行了加密保护,面对这种情况,Wang等人提出了基于缓存区数据生命周期分析的解密报文识别方案FeFormat,该方案可行性依据是:一般情况报文解密过程通常独立于执行过程,并且在解密过程中算术指令与比特位操作指令的数量要明显多于执行过程中的,通过监控和捕获解密报文缓冲区数据以后,就把密文解析转化为明文解析了。
但是,也存在对报文解密和执行交替进行的情况,Dispatcher 沿用了 ReFormat中判断报文解密特征的思想,同时针对编码函数级指令做到全路径监控(包括加/解密函数、混淆函数、解压缩函数以及hash函数等),这样即使有多个加密过程与解析过程交替,协议分析识别率也会很高,此外,Dispatcher 提出了对输入和输出两个方向的报文进行识别的思想,实现了对协议正反两个方向的报文逆向分析,对提高报文识别率有很大的帮助。
综述:未知协议逆向分析是本课题的主要研究内容和研究基础。
未知协议逆向分析的目的,是在未获得目标协议规范的前提下,通过逆向模拟重构协议的通信过程来解析未知协议的语法结构和字段语义,其对软件安全性分析、入侵检测、指纹生成、应用程序会话重放、流量控制、漏洞挖掘、网络安全策略的制定等起
着至关重要的作用。
设计一个自动化程度高,逆向解析准确率高,动态分析与静态分析结合的未知协议识别方法是本课题所解决的关键问题之一。