基于主成分分析的代码混淆有效性综合评估模型

合集下载

主成分分析、聚类分析比较

主成分分析、聚类分析比较

主成分分析、聚类欧阳学文分析的比较与应用主成分分析、聚类分析的比较与应用摘要:主成分分析、聚类分析是两种比较有价值的多元统计方法,但同时也是在使用过程中容易误用或混淆的几种方法。

本文从基本思想、数据的标准化、应用上的优缺点等方面,详细地探讨了两者的异同,并且举例说明了两者在实际问题中的应用。

关键词:spss、主成分分析、聚类分析一、基本概念主成分分析就是设法将原来众多具有一定相关性(比如P个指标),重新组合成一组新的互相无关的综合指标来代替原来的指标。

综合指标即为主成分。

所得出的少数几个主成分,要尽可能多地保留原始变量的信息,且彼此不相关。

因子分析是研究如何以最少的信息丢失,将众多原始变量浓缩成少数几个因子变量,以及如何使因子变量具有较强的可解释性的一种多元统计分析方法。

聚类分析是依据实验数据本身所具有的定性或定量的特征来对大量的数据进行分组归类以了解数据集的内在结构,并且对每一个数据集进行描述的过程。

其主要依据是聚到同一个数据集中的样本应该彼此相似,而属于不同组的样本应该足够不相似。

二、基本思想的异同(一)共同点主成分分析法和因子分析法都是用少数的几个变量(因子) 来综合反映原始变量(因子) 的主要信息,变量虽然较原始变量少,但所包含的信息量却占原始信息的85 %以上,所以即使用少数的几个新变量,可信度也很高,也可以有效地解释问题。

并且新的变量彼此间互不相关,消除了多重共线性。

这两种分析法得出的新变量,并不是原始变量筛选后剩余的变量。

在主成分分析中,最终确定的新变量是原始变量的线性组合,如原始变量为x1 ,x2 ,. . . ,x3 ,经过坐标变换,将原有的p个相关变量xi 作线性变换,每个主成分都是由原有p 个变量线性组合得到。

在诸多主成分Zi中,Z1 在方差中占的比重最大,说明它综合原有变量的能力最强,越往后主成分在方差中的比重也小,综合原信息的能力越弱。

因子分析是要利用少数几个公共因子去解释较多个要观测变量中存在的复杂关系,它不是对原始变量的重新组合,而是对原始变量进行分解,分解为公共因子与特殊因子两部分。

金融商业算法建模:基于Python和SAS

金融商业算法建模:基于Python和SAS

2.1客户价值预测 2.2营销响应预测
2.3细分画像 2.4交叉销售
2.1.1线性回归模型概述 2.1.2 Python案例:线性回归建模 2.1.3多元线性回归的变量筛选 2.1.4 Python案例:多元线性回归变量筛选 2.1.5模型假设检验 2.1.6残差分析 2.1.7强影响点分析 2.1.8 Python案例:线性回归调优实战 2.1.9线性回归的完整流程小结
目录分析
1.2操作层面的数 据分析对象与成果
1.1企业中数据分 析的层级
1.3数据挖掘方法 分类介绍
1.5数据挖掘建模 框架的3个原则
1.4数据挖掘方法 论
1.6利用SAS EM创 建数据挖掘项目
1.3.1预测性——有监督学习 1.3.2描述性——无监督学习
1.6.1创建数据挖掘项目 1.6.2给项目添加逻辑库和数据集 1.6.3 SAS EM项目的系统文档介绍
2.2.1使用逻辑回归预测用户响应率 2.2.2比较逻辑回归与线性回归 2.2.3图解逻辑回归 2.2.4逻辑回归算法概述 2.2.5分类模型的评估 2.2.6分类变量的处理 2.2.7 Python案例:逻辑回归建模实战 2.2.8 SAS EM案例:贷款违约预测实战 2.2.9逻辑回归建模小结
3.2.1孤立森林 3.2.2局部异常因子
4.2运筹优化
4.1预测技术
4.3流程挖掘
4.1.1效应分解法 4.1.2基于动力模型的ARIMA 4.1.3基于深度学习的LSTM
4.2.1线性规划 4.2.2整数规划 4.2.3非线性规划
4.3.1业务流程挖掘的总体理念 4.3.2流程发现 4.3.3流程监控 4.3.4流程遵循 4.3.5 Python案例:利用pm4py实现流程挖掘

主成分分析方法在主成分分析方法中的应用

主成分分析方法在主成分分析方法中的应用

主成分分析与因子分析及SPSS实现(一):原理与方法(2021-09-08 13:33:57)转载▼一、主成分分析(1)问题提出在问题研究中,为了不遗漏和准确起见,往往会面面俱到,取得大量的指标来进行分析。

比如为了研究某种疾病的影响因素,我们可能会收集患者的人口学资料、病史、体征、化验检查等等数十项指标。

如果将这些指标直接纳入多元统计分析,不仅会使模型变得复杂不稳定,而且还有可能因为变量之间的多重共线性引起较大的误差。

有没有一种办法能对信息进行浓缩,减少变量的个数,同时消除多重共线性?这时,主成分分析隆重登场。

(2)主成分分析的原理主成分分析的本质是坐标的旋转变换,将原始的n个变量进行重新的线性组合,生成n 个新的变量,他们之间互不相关,称为n个“成分”。

同时按照方差最大化的原则,保证第一个成分的方差最大,然后依次递减。

这n个成分是按照方差从大到小排列的,其中前m个成分可能就包含了原始变量的大部分方差(及变异信息)。

那么这m个成分就成为原始变量的“主成分”,他们包含了原始变量的大部分信息。

注意得到的主成分不是原始变量筛选后的剩余变量,而是原始变量经过重新组合后的“综合变量”。

我们以最简单的二维数据来直观的解释主成分分析的原理。

假设现在有两个变量X1、X2,在坐标上画出散点图如下:可见,他们之间存在相关关系,如果我们将坐标轴整体逆时针旋转45°,变成新的坐标系Y1、Y2,如下图:根据坐标变化的原理,我们可以算出:Y1 = sqrt(2)/2 * X1 + sqrt(2)/2 * X2Y2 = sqrt(2)/2 * X1 - sqrt(2)/2 * X2其中sqrt(x)为x的平方根。

通过对X1、X2的重新进行线性组合,得到了两个新的变量Y1、Y2。

此时,Y1、Y2变得不再相关,而且Y1方向变异(方差)较大,Y2方向的变异(方差)较小,这时我们可以提取Y1作为X1、X2的主成分,参与后续的统计分析,因为它携带了原始变量的大部分信息。

主成分分析和聚类分析的比较

主成分分析和聚类分析的比较

主成分分析和聚类分析的比较摘要:主成分分析和聚类分析方多元统计中两种重要的分析方法,但却容易在使用中混淆。

本文从基本思想,应用的优缺点、应用实例中讨论两者的异同,并简述两种方法在实际问题中的应用。

关键词:主成分分析;聚类分析一、引言主成分分析是利用降维的思想,在缺失很少信息的前提下,把多个指标转化为几个综合指标的多元统计方法。

通常把转化生成的综合指标称为主成分,其中每个主成分都是原始变量的线性组合,且各个主成分之间互不相关,使得主成分比原始变量具有某些更优越的性能。

聚类分析是依据实验数据本身所具有的定性或定量的特征来对大量的数据进行分组归类以了解数据集的内在结构,并且对每一个数据集进行描述的过程。

其主要依据是聚到同一个数据集的样本应该性质相似,而属于不同组的样本应该足够不相似。

两种方法既有区别又有联系,本文将两者的异同进行比较,并举例说明两者在实际应用中的联系,以便更好地理解这两种统计方法而为实际所应用。

二、基本思想的异同相同点:主成分分析方法是用少数的几个变量来综合反映原始变量的主要信息,变量虽然较原始变量少,但所包含的信息量却占原始信息的85%以上,因此其可信度很高。

通过主成分分析,可以将事物之间错综复杂的关系中找出一些主要成分,从而能有效利用大量统计数据进行定量分析,解释变量之间的内在关系。

因此主成分变量比原始变量少了很多,从而起到了降维的作用。

聚类分析的基本思想是采用多变量的统计值,定量的确定相互之间的亲疏关系,考虑对象多因素的联系和主导作用。

按它们亲疏差异程度,归类不同的分类中的一元。

使分类更具有客观实际并能反映事物的内在必然联系。

聚类分析是通过一种大的对称矩阵来探索相关关系的一种数学分析方法。

对变量分类后,我们对数据的处理难度也降低,所以从某种意义上说,聚类分析也起到了降维的作用。

不同点:主成分分析是研究如何通过原来变量的少数几个变量组合来解释原来变量绝大多数信息的一种多元统计方法。

结构方程建模数据的PLS分析

结构方程建模数据的PLS分析

PLS分析的步骤和流程
数据准备
收集和整理数据,进行必要的 预处理,包括缺失值处理、异
常值检测和数据标准化等。
构建模型
选择合适的自变量和因变量, 构建预测模型,确定模型的复 杂度和拟合度。
模型评估
使用交叉验证、外部验证等方 法评估模型的预测能力和稳定 性。
结果解释
解释模型的预测结果,并根据 结果进行相应的分析和决策。
02 PLS分析方法介绍
PLS分析的基本概念
01
PLS分析是一种基于偏最小二 乘回归的多元数据分析方法, 用于处理复杂的数据结构和变 量关系。
02
它通过构建预测模型来描述因 变量和自变量之间的关系,并 评估模型的有效性和预测能力 。
03
PLS分析特别适用于处理具有 潜在变量和交互效应的数据结 构,能够处理更多的变量和更 复杂的关系。
PLS分析的优缺点
优点
PLS分析能够处理复杂的变量关系和 潜在变量,适用于大数据集和小样本 数据,能够提供更准确的预测和更好 的解释性。
缺点
PLS分析对数据结构和共线性较为敏 感,需要选择合适的自变量和因变量, 对模型的复杂度和拟合度也需要进行 适当控制。
03
结构方程建模数据的收集与处 理
数据收集的方法与技巧
结果解读
根据分析结果,解 读模型的有效性、 预测精度等指标。
确定研究目的
明确研究的目标和 问题,为结果解读 提供指导。
建立模型
选择适当的结构方 程模型,并使用PLS 算法进行拟合。
结论与建议
根据解读结果,得 出结论并提出相应 的建议。
结果解读的注意事项
数据的可靠性
确保数据的准确性和可靠性,避免误 差和异常值的影响。

第三方物流供应商评价的实证研究_基于探索性因子分析与综合赋权法_孙文清

第三方物流供应商评价的实证研究_基于探索性因子分析与综合赋权法_孙文清

中图分类号:F259.23
文献标识码:A
文章编号:1007-8266(2014)03-0091-05
一、引 言
随着经济的发展,越来越多的企业在思考如 何将传统基于自身资源的“纵向一体化”管理模式 向基于外部资源的“横向一体化”管理模式转变, 把诸如仓储、运输等非核心业务外包出去,着力培 养自身的核心竞争力。因此,如何对外包企业进行 评价、选择,建立战略同盟,实现强强联合,便成为 许多企业特别是制造企业面对的紧迫课题。
共因子的个数。公共因子筛选方法通常有凯泽 (Kaiser)特征根法、斯科瑞(Scree)图检验法、方差 百分比法等几种方法。特征根是公共因子影响力 度的指标,表示引入该公共因子后可解释平均多 少原始变量信息。一般采用特征根取一定值或被 提取公共因子所能解释全体指标变量的累加变异 量达到某一预设百分比作为提取公共因子的筛选 标准。研究表明,当题项变量数目介于 20 至 50 之
Fj = β j 1X1+ β j 2 X2 + ... + β j p Xp ,j=1,2,...,m (1) 式(1)为公共因子得分函数。如果给出一组样 本数值,则可带入该函数求出公共因子的估计得 分,将每一个公共因子的得分进行加权综合,就可 得到原始变量的综合得分,实现基于原始变量整 体属性的排序和评价。[ 2 ] 因此,探索性因子分析适 合应用在顾客满意度调查、服务质量调查、形象调 查和市场划分识别等社会科学领域。 探索性因子分析在社会科学领域中的应用是 借助调查问卷这个载体实现的,其应用的另一目 的是检验问卷量表的构建效度。[ 3 ] 所谓构建效度
由表 2 可知,前 4 个公共因子的特征根均大 于 1,其解释的指标变量变异部分之和占指标变量
便于对公共因子进行解释。探索性因子分析常用 的旋转方法大致分为正交旋转和斜交旋转两种。 一般认为,当公共因子间的相关系数在 0.3 以上 时,宜采用斜交旋转法;若公共因子间的相关系数

条件随机场模型的效果评估与优化(九)

条件随机场(Conditional Random Fields, CRF)是一种概率图模型,常被用于标注和序列标注的任务中。

它通过考虑输入数据的特征之间的关联关系,来进行标注的预测。

在自然语言处理、生物信息学、计算机视觉等领域,条件随机场都有着广泛的应用。

然而,条件随机场模型在实际应用中,如何进行效果评估与优化,却是一个具有挑战性的问题。

首先,我们来看看条件随机场模型的效果评估。

通常来说,我们会用准确率(Accuracy)、精确率(Precision)、召回率(Recall)和F1值等指标来评估模型的性能。

在标注和序列标注任务中,我们可以通过比较模型预测的标注结果与真实标注结果之间的差异,来计算这些指标。

另外,我们还可以使用混淆矩阵(Confusion Matrix)来更细致地分析模型在不同类别上的表现。

除了定量指标,我们还可以通过可视化的方式来观察模型的预测结果,比如绘制标注结果的热力图或者误差分析图。

通过以上多种方式的效果评估,可以更全面地了解模型的性能表现。

然而,单纯地使用这些指标和可视化手段来评估模型的效果,往往还不够。

在实际应用中,我们还需要考虑模型在不同场景下的泛化能力、稳定性和鲁棒性。

泛化能力指模型在新的未见数据上的表现能力,稳定性指模型在不同数据集上的性能稳定程度,鲁棒性指模型对噪声、干扰的抵抗能力。

除此之外,我们还需要考虑模型的计算效率和资源消耗。

因此,我们需要综合考虑定量指标、可视化分析和实际应用场景,来综合评估条件随机场模型的效果。

接着,我们来看看条件随机场模型的优化方法。

在实际应用中,我们常常会面临模型的训练时间长、模型复杂度高等问题。

因此,如何提高模型的训练效率和减小模型的复杂度,是需要重点关注的问题。

首先,我们可以考虑对模型进行特征选择和维度约减,以减小模型的复杂度。

特征选择可以通过领域知识、统计分析等方法来筛选和剔除无用的特征,维度约减可以通过主成分分析、奇异值分解等方法来降低输入数据的维度。

影像组学代码复现

影像组学代码复现
影像组学是一种利用医学影像数据进行研究和分析的方法。

复现影像组学代码需要具备以下几个步骤:
1. 数据准备:收集和整理相关的医学影像数据,例如CT、MRI 等。

确保数据集的质量和完整性,并进行预处理,如图像归一化、去噪等操作。

2. 特征提取:根据具体的研究目标和问题,使用合适的特征提取方法从影像数据中提取关键特征。

常见的特征提取方法包括传统的图像处理技术、深度学习网络等。

3. 特征选择与降维:对提取的特征进行选择和降维,以减少特征维度和提高分类或回归模型的性能。

常见的特征选择和降维方法有主成分分析(PCA)、线性判别分析(LDA)等。

4. 模型训练和评估:根据具体的任务需求选择合适的机器学习或深度学习模型,并使用准备好的数据集对模型进行训练和验证。

常见的模型包括支持向量机(SVM)、随机森林(Random Forest)、卷积神经网络(CNN)等。

5. 模型优化与调参:通过调整模型超参数和优化算法,进一步提高模型的性能和泛化能力。

常见的优化方法包括网格搜索、随机搜索、交叉验证等。

6. 结果分析与可视化:对训练好的模型进行测试和评估,并对结果进行分析和可视化展示。

可以使用混淆矩阵、ROC曲线、特征重要性等方法来评估模型的性能和解释模型的结果。

需要注意的是,影像组学是一个复杂的领域,涉及到医学影像学、统计学、机器学习等多个学科。

复现代码需要具备相关的专业知识和技能,并对具体任务进行合理的调整和优化。

一文全览机器学习建模流程(Python代码)

一文全览机器学习建模流程(Python代码)1.1 明确问题明确业务问题是机器学习的先决条件,即抽象出该问题为机器学习的预测问题:需要学习什么样的数据作为输入,目标是得到什么样的模型做决策作为输出。

1.2 数据选择“数据和特征决定了机器学习结果的上限,而模型算法只是尽可能逼近这个上限”,意味着数据及其特征表示的质量决定了模型的最终效果,且在实际的工业应用中,算法通常占了很小的一部分,大部分的工作都是在找数据、提炼数据、分析数据及特征工程。

数据选择是准备机器学习原料的关键,需要关注的是:① 数据的代表性:数据质量差或无代表性,会导致模型拟合效果差;② 数据时间范围:对于监督学习的特征变量X及标签Y,如与时间先后有关,则需要划定好数据时间窗口,否则可能会导致数据泄漏,即存在和利用因果颠倒的特征变量的现象。

;③ 数据业务范围:明确与任务相关的数据表范围,避免缺失代表性数据或引入大量无关数据作为噪音。

2 特征工程特征工程就是对原始数据分析处理转化为模型可用的特征,这些特征可以更好地向预测模型描述潜在规律,从而提高模型对未见数据的准确性。

特征工程按技术上可分为如下几步:① 探索性数据分析:数据分布、缺失、异常及相关性等情况;② 数据预处理:缺失值/异常值处理,数据离散化,数据标准化等;③ 特征提取:特征表示,特征衍生,特征选择,特征降维等;2.1 探索性数据分析拿到数据后,可以先做探索性数据分析(EDA)去理解数据本身的内部结构及规律,如果你对数据情况不了解也没有相关的业务背景知识,不做相关的分析及预处理,直接将数据喂给传统模型往往效果不太好。

通过探索性数据分析,可以了解数据分布、缺失、异常及相关性等情况,利用这些基本信息做数据的处理及特征加工,可以进一步提高特征质量,灵活选择合适的模型方法。

2.2 数据预处理异常值处理收集的数据由于人为或者自然因素可能引入了异常值(噪音),这会对模型学习进行干扰。

通常需要处理人为引起的异常值,通过业务或技术手段(如3σ准则)判定异常值,再由(正则式匹配)等方式筛选异常的信息,并结合业务情况删除或者替换数值。

主成分分析与因子分析的联系与区别

一、问题的提出在科学研究或日常生活中,常常需要判断某一事物在同类事物中的好坏、优劣程度及其发展规律等问题。

而影响事物的特征及其发展规律的因素(指标)是多方面的,因此,在对该事物进行研究时,为了能更全面、准确地反映出它的特征及其发展规律,就不应仅从单个指标或单方面去评价它,而应考虑到与其有关的多方面的因素,即研究中需要引入更多的与该事物有关系的变量,来对其进行综合分析和评价。

多变量大样本资料无疑能给研究人员或决策者提供很多有价值的信息,但在分析处理多变量问题时,由于众变量之间往往存在一定的相关性,使得观测数据所反映的信息存在重叠现象。

因此为了尽量避免信息重叠和减轻工作量,人们就往往希望能找出少数几个互不相关的综合变量来尽可能地反映原来数据所含有的绝大部分信息。

而主成分分析和因子分析正是为解因子分相关。

1.2.),3. 主成分的各系数,是唯一确定的、正交的。

不可以对系数矩阵进行任何的旋转,且系数大小并不代表原变量与主成分的相关程度;而因子模型的系数矩阵是不唯一的、可以进行旋转的,且该矩阵表明了原变量和公共因子的相关程度。

4. 主成分分析,可以通过可观测的原变量X直接求得主成分Y,并具有可逆性;因子分析中的载荷矩阵是不可逆的,只能通过可观测的原变量去估计不可观测的公共因子,即公共因子得分的估计值等于因子得分系数矩阵与原观测变量标准化后的矩阵相乘的结果。

还有,主成分分析不可以像因子分析那样进行因子旋转处理。

5.综合排名。

主成分分析一般依据第一主成分的得分排名,若第一主成分不能完全代替原始变量,则需要继续选择第二个主成分、第三个等等,此时综合得分=∑(各主成分得分×各主成分所对应的方差贡献率),主成分得分是将原始变量的标准化值,代入主成分表达式中计算得到;而因子分析的综合得分=∑(各因子得分×各因子所对应的方差贡献率)÷∑各因子的方差贡献率,因子得分是将原始变量的标准化值,代入因子得分函数中计算得到。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第33卷第9期2016萃9月

计算机应用研究 Application Research of ComputersVol. 33 No. 9 Sep. 2016

基于主成分分析的代码混淆有效性综合评估模型$林水明,吴伟民,陶桂华,林志毅,苏庆(广东工业大学计算机学院,广州510006)

摘要:针对目前代码混淆有效性评估问题的复杂性和不一致性,提出一种基于主成分分析的代码混淆有效性

综合评估模型。该模型将传统主成分分析进行改进,提出动态自适应主成分分析并应用于代码混淆有效性的指 标体系中,通过实现变量重命名、数据编码、控制流压扁算法和插入不透明谓词死代码四种混淆方法,同时定义 代码复杂度综合评估值和代码混淆度两个反映代码混淆有效性的综合指标进行模型的有效性验证。实验结果 表明,该模型能提供一种有效证明代码混淆有效性的综合评估方法。最后还讨论不同的混淆方法和主成分赋权 方法对结果的影响。关键词:动态自适应;主成分分析;综合评估模型;代码混淆度

中图分类号:TP309.2 文献标志码:A 文章编号:1001-3695(2016)09-2819-04

doi:10. 3969/j. issn. 1001-3695.2016.09.059

PC A-based code obfuscation effective comprehensive assessment model

Lin Shuiming, Wu Weimin, Tao Guihua, Lin Zhiyi, Su Qing (Faculty of Computer, Guangdong University of Technology, Guangzhou 510006 , China)

Abstract: In order to solve the complicated and inconsistent problem of code obfuscation effective evaluation existed, this pa­

per proposed a comprehensive evaluation model of code obfuscation effective based on principle component analysis (PCA).

This model improved basic PCA to dynamic self-adaptive PCA that applied to index system of code obfuscation effective. By implementing variables renaming, data encoding, control flow flatten algorithm and opaque predicates dead code inserted algo­rithm ,meanwhile it defined comprehensive assessment value of code complexity and code obfuscated rate for model effective confirming. Experimental result shows that this model is an effective method for assessing code obfuscation. Finally, it also discussed the influence of different obfuscation algorithms and PCA weight methods on the result.Key words: dynamic adaptive; principle component analysis(PCA) ; comprehensive assessment model; code obfuscation rate

代码保护是软件安全领域中最重要的策略之一,而基于代 码的各类静态和动态混淆技术是实现反逆向工程、保护软件知 识产权和取缔各类非法盗版的基本手段。目前代码混淆技术 的研究已相对成熟,然而对混淆后代码反逆向工程和抵制各类 攻击的能力缺乏有效的定量分析方法。因此,混淆后代码有效 性评估成为亟待解决的问题。目前评估代码混淆有效性的研究主要从代码静态属性复 杂度度量和动态运行时攻击度量两个方面出发。基于代码静 态属性复杂度度量的研究包括高鹰等人提出基于语义的代码 有效性度量方法,并给出了基于抽象解释的代码混淆有效性的 实现框架[1'2],但缺乏从形式语义的角度进行代码混淆有效性 证明的研究;Bertholon等人提出基于多目标优化的C语言代 码混淆算法,在算法中将度量代码复杂度归结为程序长度、圈 复杂度、数据流复杂度、嵌套复杂度、扇人/扇出复杂度、数据结 构复杂度六个静态属性[3'4],并在Ja™SCnpt代码混淆过程中 进行优化,将静态属性进行降维[5>6]。从运行时代码抵抗攻击 的角度出发,基于动态运行时攻击度量代码有效性的研究主要 有王妮[7]提出的基于带标志Petn网的软件攻击模型,分析和收稿日期:2015-06-29;修回日期:2015-08- 10 基金项目:国家自然科学基金资助项目(61502108 );广东省科技计划资助项目 (2〇l2B〇6〇5〇0〇7l);广东省自然科学基金资助项目(2〇l4A〇3〇3l35l2)作者简介:林水明(1990-),男,广东汕尾人,硕士研究生,主要研究方向为软件安全、水印技术(ShuimingHn@ 163. com);吴伟民(1956-),男,广 东深圳人,教授,硕导,主要研究方向为可视计算、系统工具与平台;陶桂华(1994-),男,广东惠州人,本科生;林志毅(1979-),男,福建永春人,讲 师,博士,主要研究方向为自然计算、模式识别;苏庆(1979-),男,广东茂名人,副教授,硕导,主要研究方向为信息安全.推导出动态攻击成本的计算方法;文献[8 ]将代码运行时受到 攻击的可能性定义为被攻破概率,并提供计算概率的建模方法 和框架;文献[9,10]中混合静态和动态的度量值,将代码有效 性评估的指标确定为指令执行率、控制流循环复杂度和扇人/ 扇出复杂度,并借助IDA插件进行相关属性的计算。上述的研究表明,目前对代码混淆后有效性评估的研究主 要从代码的单一属性出发,如文献[3,5,9,10]采用多属性进 行混淆有效性的评估,文献[9,10]只对不同属性进行单独讨 论,文献[3,5 ]无法识别和处理属性之间的关联,均无法提供 综合的评价体系,如果对属性进行简单的累加,必定造成信息 的重叠。据此,本文提出一种基于动态自适应主成分分析的代 码混淆有效性综合评估模型,并给出独立于编程语言的具体框 架和算法实现。最后,以JavaScript代码为例,对多种混淆技术

进行综合评估,验证模型和算法的有效性。而对于其他语言诸 如C/C + +、JaVa、Pyth〇n等,该模型框架仍然适用。

1动态自适应主成分分析主成分分析是多元统计的重要分支之一,以严格的数学理• 2820 •计算机A用研究第_33卷

论为基础,通过降维的方法实现多个相关联属性指标的主要信 息提取,用少量构造的属性指标解释数据源的大部分信息,构 造属性指标即为主戚分。本文采用主成分分折进行代码混淆 有效性评括的理由如W估代码混淆有效性的揞标都蠢 从代码出发,指标之间存在信息重叠的现象,而主成分分析适 用于原属性指标之间存在一定关联的情况,能在统计意义上提 取出相S独立的主成分;b)本文旨在为大型软件系统提供一

套代码混淆安全性评估的模型与定量方法,代码数量大和结构 复亲是评估的难题所在,主成分分析适合统计数据的记录数远 大宁属性个数的情形,能为本文提供理论基础。

1.1基本原理以下给出东戚分分析{ p_r細却1© ._npon_ent auslysis, PCA ) 的相关定义。定义1食處分。设1—=(萬为歹维随杌赛 量,它的主成分矩阵为^ =(乃,&,'. ‘, r,寡:中:第?主成分分 量& = = 1,2,…,P),M是班突矩阵U的第,列询量,并

满足如节蠢件;aJ A *爲A,

“的线牲组含甲方差最大者?

b ) ^是与& , F2 f " ‘,这_:不相关的^,X2,_ Xp的线性 组:合中方差最大者JI中= 2,3,…,p0K也_示为飞=“馬+ e,2lj +…〜其中 (心_YlfT是随机变量X的协方差集阵r的第i个特征 值》;.貌对.斑:的特征.向量屋Jl: & A. ^ & 0 〇.定义2主成分决策阵。定义1中轉JE家矩阵(;和(負,

1也称为主成分决.策.ff。定义3象成分贡献率。假设弋士是随机变蠢晨

协方差矩阵r的p.个特征:值..ptA: & A.2 &... &人& 0,第L

成分的贡献率定义为(;=^^,則前A个主成分累计贡

献率为上 i =1 A.i

12改进思路

基本主成分分析的分析对象为确走的数据集X,对于相同 问題针对不同的数据集,其分析的主成分结果不同,故不同数 据集之间梅绪果不具备可比性:4.而本文的目=顧是对添加混淆 操作前后的代码有效性进行综合评估和对比分析,因此,本文 在主成分分析基本原理的基础上,结合代码混淆有效性评估指 标的相关特性,提.出动_态,自_截::应1主成分分析(<^1«»&=301£-

sdaption PCA,DS-PCA) d _蠢義本思路为采用轮转算法对数据 集中的混淆前后代码片段样本进行动态更新,并根据更新后的 结果进行自适应主成分提取,据此得出混淆前后不同的主成分 分析结果。假设程序源码为5‘,将其分成顺序执行的#个代码段5^ ,

.SC2,.…,5'Cwf:对应.的海淆后代码段为0C, ,0C2,,…S0C„:雜阵

S = U )# .为源代码段关于p种属性指标的统计结果,其中Sj,

为第Z源码段的第J属性指标的统计结果;矩阵〇 = (、)~为

混淆后代码段关于P种属性指标的统计结果,_其中%为第/混 淆后代码段的第/属性指标的统计结果。劫态自逭应主成分 分析的结果是为每一代码段求解主成分。和0CJ / = 1,2,

…,茂)傲主戚分求解方法如下a) V SQ e SC, S = U, 为数据源矩阵,计算主成分的方法采用基本*成分分析。

b) V 0Cf e 0C,采用轮转黨讀雜态遽新数据.氣并根据M 新后结果进行自适虛_成分提取6具体算法过程如下所示: 算法 1 DS-PCA

Loop : for i = 1 to N

相关文档
最新文档