基于自然语言处理的程序语义混淆方法及系统技术方案

技术编号:33706060 阅读:19 留言:0更新日期:2022-06-06 08:28
本发明专利技术属于网络安全技术领域,特别涉及一种基于自然语言处理的程序语义混淆方法及系统,首先,从流程性描述文本语料中提取用于描述程序执行过程的文本序列,并构建具有诱导和模糊功能的混淆语料素材库;然后,对目标程序代码片段进行向量化处理,并依据语义信息从混淆语料素材库中选取与目标程序代码片段不相关的文本序列作为提示输出类代码,融合到目标程序代码片段位置。本发明专利技术将具有诱导性、模糊性的语义混淆语料融入到目标代码中,生成具备抗语义分析能力的混淆代码,能够误导逆向分析人员对程序真实功能的理解,加大代码理解难度,可有效防止合法软件被盗版或恶意篡改,具有较好的应用前景。有较好的应用前景。有较好的应用前景。

【技术实现步骤摘要】
基于自然语言处理的程序语义混淆方法及系统


[0001]本专利技术属于网络安全
,特别涉及一种基于自然语言处理的程序语义混淆方法及系统。

技术介绍

[0002]为防止合法软件被盗版或恶意篡改,软件开发者一般会采用加壳、混淆、加密等软件保护技术对软件进行保护。所有软件保护技术的核心思想都是尽可能加大软件被破解的难度,使得软件破解人员难以在短时间内分析出软件的具体功能、组织结构、工作过程等实现细节。代码混淆是一种常用的软件保护方法,混淆前后的程序在功能和行为上保持一致,主要目的是让软件破解者难以采用逆向手段提取出软件关键代码。代码混淆的系统性研究可追溯到上个世纪90年代,根据混淆原理和对象的不同,可将代码混淆技术分为外形混淆、控制混淆、数据混淆和预防混淆。外形混淆是一种针对程序外形及布局的变换来迷惑破解者的混淆,数据混淆是一种针对数值变量及数据类型变换的混淆,控制混淆是一种通过改变程序代码的控制流结构来增加代码结构复杂度的混淆方法,预防性混淆是一种针对专用反汇编器或反编译器的混淆。
[0003]代码混淆作为国内外网络安全领域研究的热点问题,虽已取得很多研究成果,包括垃圾指令插入、等价指令替换、控制流扁平化等,但仍存在以下制约代码混淆变形技术实际应用效果的一些主要问题,有待深入研究和解决:(1)混淆特征较为明显。当前现有混淆算法已具备针对静态逆向分析的对抗能力,但在保护程序的同时,会引入大量模式固定的混淆特征,严重影响了算法安全性,造成许多混淆算法应用效果急剧下降;(2)混淆算法抗语义分析效果较差。抗语义分析始终是混淆算法设计的难点,现有混淆算法虽然对静态反汇编、符号执行、行为监测、动态调试具有一定对抗效果,但随着混合执行、混淆分析等概念和方法的提出,动静结合的逆向手段,特别是专业化的人工分析给代码混淆算法带来了巨大挑战。整体来看,传统的代码混淆保护方法已经难以应对发展迅速的软件逆向分析和破解手段,亟需探索新的软件保护思想和方法。

技术实现思路

[0004]为此,本专利技术提供一种基于自然语言处理的程序语义混淆方法及系统,将具有诱导性、模糊性的语义混淆语料融入到目标代码中,生成具备抗语义分析能力的混淆代码,能够误导逆向分析人员对程序真实功能的理解,加大代码理解难度,可有效防止合法软件被盗版或恶意篡改。
[0005]按照本专利技术所提供的设计方案,一种基于自然语言处理的程序语义混淆方法,包含如下内容:
[0006]从流程性描述文本语料中提取用于描述程序执行过程的文本序列,并构建具有诱导和模糊功能的混淆语料素材库;
[0007]对目标程序代码片段进行向量化处理,并依据语义信息从混淆语料素材库中选取
与目标程序代码片段不相关的文本序列作为提示输出类代码,融合到目标程序代码片段位置。
[0008]作为本专利技术基于自然语言处理的程序语义混淆方法,进一步地,流程性描述文本语料至少包含协议描述RFC文档及算法描述文档,利用自然语言处理技术抽取不同协议描述RFC文档和不同算法描述文档中的文本摘要,利用抽取的文本摘要来构建混淆语料素材库。
[0009]作为本专利技术基于自然语言处理的程序语义混淆方法,进一步地,抽取文本摘要的过程包含如下内容:首先,利用图排序TextRank算法过滤描述文档中长文本信息冗余句子,提取关键句;然后,利用预训练BERT模型将文本摘要建模为序列标注任务,输出文档摘要。
[0010]作为本专利技术基于自然语言处理的程序语义混淆方法,进一步地,利用图排序TextRank算法过滤描述文档句子中,首先,构建有向结构图,以输入的长文本句子单元作为图节点,将相似度大于预设阈值节点进行连接,并利用节点相似度来计算节点之间边的权重;然后,计算有向结构图中每个节点得分,依据得分大小选取得分最高的若干句子单元作为获取摘要的关键句。
[0011]作为本专利技术基于自然语言处理的程序语义混淆方法,进一步地,节点之间边的权重计算公式表示为:其中,w
k
为句子单元中的单词,ω
ji
为边权重,sim(S
i
,S
j
)为句子S
i
和S
j
的相似度。
[0012]作为本专利技术基于自然语言处理的程序语义混淆方法,进一步地,节点得分计算公式表示为:其中,d为阻尼系数,In(V
i
)表示所有指向节点V
i
的节点集合,Out(V
i
)表示节点V
i
指向的节点集合,i、j、k分别表示对应的节点标号。
[0013]作为本专利技术基于自然语言处理的程序语义混淆方法,进一步地,利用预训练BERT模型将文本摘要建模中,首先,将关键句的每个句子前后均插入标记符,并对文本进行语义特征提取;然后,将提取的语义特征输入预训练的BERT模型,利用BERT模型构建描述文本语义特征的字向量,在每一个标记符位置对应输出句子单元向量表示;并利用全连接层对向量表示进行线性变换,通过Sigmoid激活函数进行二分类和序列标注。
[0014]作为本专利技术基于自然语言处理的程序语义混淆方法,进一步地,将混淆语料素材库中文本序列与目标程序代码融合中,首先,利用自然语言处理技术对目标程序代码片段进行向量化处理,其中,向量化处理的内容至少包含目标程序代码中的模块、函数、基本块和指令;然后,利用asm2vec模型分析目标程序代码片段语义信息,并结合代码插桩技术在编译层将混合语料素材库中文本序列与目标程序代码片段进行融合编译。
[0015]作为本专利技术基于自然语言处理的程序语义混淆方法,进一步地,融合过程中,将目标程序代码编译成中间语言形态,从不同粒度对代码进行切片处理,将代码片段的语义信息与混合语料素材库中文本序列语义相似性进行比较,构建代码片段与混合语料素材库之间的相关性矩阵,依据语义相似性或语义差异性将文本序列与目标程序代码片段插桩融合,并对融合混淆后的目标代码进行混合编译。
[0016]进一步地,本专利技术还提供一种基于自然语言处理的程序语义混淆系统,包含:素材构建模块和代码混淆模块,其中,
[0017]素材构建模块,用于从流程性描述文本语料中提取用于描述程序执行过程的文本序列,并构建具有诱导和模糊功能的混淆语料素材库;
[0018]代码混淆模块,用于对目标程序代码片段进行向量化处理,并依据语义信息从混淆语料素材库中选取与目标程序代码片段不相关的文本序列作为提示输出类代码,融合到目标程序代码片段位置。
[0019]本专利技术的有益效果:
[0020]本专利技术通过构建大量具有诱导性、模糊性的文本序列,并将其融合到目标程序合适代码片段处,实现代码语义诱导、模糊的混淆目的,步骤清晰、方案可行,能够解决传统混淆算法普遍存在的混淆特征明显、语义混淆效果较差等问题,且融合过程不会破坏原始程序功能,在程序语义混淆方面具有明显优势,能够有效防止他人剽窃软件中的智力成果,并可防止他人对软件进行的有目的的篡改,提升软件逆向防御能力和安全系数,具有较好的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于自然语言处理的程序语义混淆方法,其特征在于,包含如下内容:从流程性描述文本语料中提取用于描述程序执行过程的文本序列,并构建具有诱导和模糊功能的混淆语料素材库;对目标程序代码片段进行向量化处理,并依据语义信息从混淆语料素材库中选取与目标程序代码片段不相关的文本序列作为提示输出类代码,融合到目标程序代码片段位置。2.根据权利要求1所述的基于自然语言处理的程序语义混淆方法,其特征在于,流程性描述文本语料至少包含协议描述RFC文档及算法描述文档,利用自然语言处理技术抽取不同协议描述RFC文档和不同算法描述文档中的文本摘要,利用抽取的文本摘要来构建混淆语料素材库。3.根据权利要求2所述的基于自然语言处理的程序语义混淆方法,其特征在于,抽取文本摘要的过程包含如下内容:首先,利用图排序TextRank算法过滤描述文档中长文本信息冗余句子,提取关键句;然后,利用预训练BERT模型将文本摘要建模为序列标注任务,输出文档摘要。4.根据权利要求3所述的基于自然语言处理的程序语义混淆方法,其特征在于,利用图排序TextRank算法过滤描述文档句子中,首先,构建有向结构图,以输入的长文本句子单元作为图节点,将相似度大于预设阈值节点进行连接,并利用节点相似度来计算节点之间边的权重;然后,计算有向结构图中每个节点得分,依据得分大小选取得分最高的若干句子单元作为获取摘要的关键句。5.根据权利要求4所述的基于自然语言处理的程序语义混淆方法,其特征在于,节点之间边的权重计算公式表示为:其中,w
k
为句子单元中的单词,ω
ji
为边权重,sim(S
i
,S
j
)为句子S
i
和S
j
的相似度。6.根据权利要求5所述的基于自然语言处理的程序语义混淆方法,其特征在于,节点得分计算公式表示为:其中,d为阻尼系数,In(V
i
)表示所有指向节点V
i<...

【专利技术属性】
技术研发人员:熊小兵舒辉康绯杨巨光焱卜文娟赵耘田魏然沙子涵李卓伦
申请(专利权)人:中国人民解放军战略支援部队信息工程大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1