首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到17条相似文献,搜索用时 156 毫秒
1.
代码迷惑可以使恶意代码绕过基于特征匹配的恶意代码检测器的检测.本文利用抽象解释理论,从程序语义的角度对高鹰等人提出的基于语义的恶意代码检测算法处理代码迷惑的能力进行了分析.在对该算法形式化描述的基础上,建立了一个与其等价的基于迹语义的检测器,并通过证明基于迹语义的检测器对于保持变体关系的代码迷惑算法的谕示可靠性和谕示完备性,从理论上阐述了高鹰等人的恶意代码检测算法的谕示可靠性和谕示完备性.  相似文献   

2.
目前代码迷惑技术已经成为构造恶意软件变体的主要方式,大量出现的病毒变体使得传统基于程序文本特征的病毒排查工具的防护作用大大降低.本文提出一种新的基于语义的恶意软件变体判定框架,为了确定一个程序是否是某种恶意软件的变体:首先基于符号执行收集程序语义状态,然后通过证明语义之间是否满足变体关系来确定该程序是否是恶意软件的变体.本框架能够识别经代码迷惑变换后得到的程序是属于变换前程序的变体,从而可以减少对病毒数据库的更新.最后,通过一个实现了该框架的原型系统来说明基于语义的恶意软件判定器框架的可行性.  相似文献   

3.
代码迷惑(保护程序的一种手段)通过增加程序的分析理解难度来阻止攻击者对代码进行有用的窜改。从攻击视角指出,盲目采用代码迷惑并不能有效增强程序安全性,而根据攻击模型,从多个角度综合运用各种码迷惑方法将能有效提高程序安全。随后建立攻击模型,将攻击描述为一个不断提取程序信息并据此分析具体语义,进而通过抽象和判断获取抽象语义的过程,并从攻击各层面出发引入相应的代码迷惑方法,进而保护代码安全。  相似文献   

4.
代码迷惑是一种以增加理解难度为目的的代码变换技术,主要来保护软件免遭逆向分析。恶意代码的作者为了躲避检测经常采用代码迷惑技术对程序进行转换。但是商用反病毒软件采用基于特征码的模式匹配技术而忽略了恶意代码的语义,因此最容易受到代码迷惑或病毒变种的攻击。文章中提出一种基于语义匹配的检测算法,能准确的检测出经过代码迷惑处理的恶意代码。该方法应用数据流分析技术,以变量定义使用链为单元检测每个模板及程序节点。最后通过部分实验展示了原型系统的检测效果。  相似文献   

5.
代码迷惑是软件防盗版、篡改和逆向工程的有效方法,但以前的代码迷惑技术多数缺乏理论依据,使得其保护效果不是十分明确.该文给出插入死代码和改变控制流两种迷惑技术,提出了新的代码迷惑模型,并利用NP-complete问题从理论上证明其可行性.最后,通过实例分析表明该模型具有很好的保护效果.  相似文献   

6.
通过反向工程可以较容易获得Java程序代码的设计类图,从而给保护软件知识产权带来困难。为此,采用Java接口融合的代码迷惑方法,提出一种保护Java程序设计类图的代码迷惑算法,并根据该算法构造一种Java接口融合迷惑器。实验结果表明,该算法具有较好的迷惑效果,有效地隐藏程序的设计类图,并且没有额外时间消耗和大量冗余代码。  相似文献   

7.
付剑晶  王珂 《软件学报》2013,24(4):730-748
为了方便程序员比较多种迷惑变换方案的优劣,提出了一种量化评价迷惑变换鲁棒性的方法.该方法从软件复杂度变化与代码功能模糊性两个相对独立的层面来刻画迷惑变换导致的鲁棒性.首先,从系统的复杂性与信息的多样性角度建立软件系统复杂度模型,模型包含软件结构、信息流、分支、循环以及元素的嵌套层次,力求从复杂性层面更准确地反映变换对软件的保护;之后,为量化描述迷惑变换的功能模糊度,根据专家指标评分法建立单种迷惑变换模糊度模型,在此基础上建立多种迷惑变换复合模糊度模型;然后,阐述了如何联合所提出的模型实现对单种迷惑变换技术有效性判定与多种迷惑方案的选优,也给出了模型的实现算法及一些示例;最后,通过实例仿真详细展示了模型的工作过程.  相似文献   

8.
基于多分支语句的控制流迷惑技术   总被引:1,自引:0,他引:1  
控制流速惑是代码迷惑的一个重要方面.程序控制流分为过程内控制流及过程间控制流.本文提出了一种基于switch_case语句的控制流迷惑技术;首先给出一种基于switch语句的程序变换方法,使得过程内的控制流关系变得复杂,同时利用switch语句对整个程序中的函数进行重新定义,从而迷惑程序中的函数调用关系,以达到迷惑过程间控制流信息的目的.最后表文定性地分析了这种代码迷惑技术的性能.  相似文献   

9.
为了提高软件的安全性,常使攻击者难以理解专利软件系统内部的工作机制,代码迷惑技术因其代价低廉而越来越受到人们的重视。代码迷惑技术的提出对于软件保护具有非常重要的意义,代码迷惑技术的使用可以对程序代码及核心算法进行保护。简要概述了代码迷惑技术基本内容,阐述了基本块和流图的相关知识,给出了可归约流图变换为不可归约流图的迷惑变换具体的算法及实验结果,并对算法的有效性进行了分析。  相似文献   

10.
陈翔  于池  杨光  濮雪莲  崔展齐 《软件学报》2023,34(3):1310-1329
Bash是Linux默认的shell命令语言.它在Linux系统的开发和维护中起到重要作用.对不熟悉Bash语言的开发人员来说,理解Bash代码的目的和功能具有一定的挑战性.针对Bash代码注释自动生成问题提出了一种基于双重信息检索的方法 ExplainBash.该方法基于语义相似度和词法相似度进行双重检索,从而生成高质量代码注释.其中,语义相似度基于CodeBERT和BERT-whitening操作训练出代码语义表示,并基于欧式距离来实现;词法相似度基于代码词元构成的集合,并基于编辑距离来实现.以NL2Bash研究中共享的语料库为基础,进一步合并NLC2CMD竞赛共享的数据以构造高质量语料库.随后,选择了来自代码注释自动生成领域的9种基准方法,这些基准方法覆盖了基于信息检索的方法和基于深度学习的方法.实证研究和人本研究的结果验证了ExplainBash方法的有效性.然后设计了消融实验,对ExplainBash方法内设定(例如检索策略、BERT-whitening操作等)的合理性进行了分析.最后,基于所提方法开发出一个浏览器插件,以方便用户对Bash代码的理解.  相似文献   

11.
程序混淆可以理解为一个编译器,它将源程序转化成一种不被理解的形式,但依然保持其功能特性。混淆的概念最早在代码混淆领域被提出,在软件保护、数字水印等领域有着实际的应用,但缺乏严格的安全分析与证明。混淆在密码学领域的研究最早由Barak等人引入,并提出了虚拟黑盒混淆的形式化定义及安全性要求。对密码函数的安全通用混淆研究具有非常重要的理论意义,其与随机预言机、全同态加密、零知识证明等其他密码原语有着紧密的联系。对具体密码函数的安全混淆在云计算、代理计算等领域也有着实际的应用价值。近年来,安全的程序混淆研究成为当前密码研究领域的一个热点。由于在Barak提出的标准定义下已证明不存在通用的安全混淆,因此后续的程序混淆方面的研究工作主要集中在3个方面:对具体函数类的混淆实现、混淆的新模型研究以及混淆与其他密码模型的关系研究及应用。文章给出了安全的程序混淆的一个研究综述,对对具体函数类的安全混淆、混淆模型的研究以及混淆的推广和应用都分别给出了一个较为详细的介绍。  相似文献   

12.
针对Miasm反混淆框架反混淆后的结果是一张图片,无法反编译恢复程序源码的问题,在对底层虚拟机混淆器(OLLVM)混淆策略和Miasm反混淆思路进行深入学习研究后,提出并实现了一种基于符号执行的OLLVM通用型自动化反混淆框架。首先,利用基本块识别算法找到混淆程序中有用的基本块和无用块;其次,采用符号执行技术确定各个有用块之间的拓扑关系;然后,直接对基本块汇编代码进行指令修复;最后,得到一个反混淆后的可执行文件。实验结果表明,该框架在保证尽量少的反混淆用时前提下,反混淆后的程序与未混淆源程序的代码相似度为96.7%,能非常好地实现x86架构下C/C++文件的OLLVM反混淆。  相似文献   

13.
静态反汇编是对程序进行逆向工程的第一步,它将程序的可执行机器码以汇编指令代码的形式表示,给盗用软件知识产权和发掘软件漏洞提供了可能。为了混淆静态反汇编过程,增加对程序进行反汇编的难度,本文深入研究基于分支函数的静态反汇编混淆技术,针对其隐蔽性较差和代码执行效率低下的缺点,提出一种改进的分支函数静态反汇编混淆技术。改进后的混淆技术不仅能够有效地隐藏程序中的跳转指令,提高了代码的执行效率,同时增加了软件逆向工程分析的难度。  相似文献   

14.
Experiment with control code obfuscation   总被引:1,自引:0,他引:1  
Control code obfuscation is intended to prevent malicious reverse engineering of software by masking the program control flow. The idea for further advancing the state of the art was presented in 2000 by WANG C. An obfuscating system for Java based on the ideas of WANG C is implemented and experimented. The experiment results show that obfuscation can be done efficiently with moderate increases in code size, execution times, while making the obfuscated code resilient to a variety of reverse engineering attacks.  相似文献   

15.
针对ARM程序高层代码混淆存在盲目性较强而降低混淆准确度,且很容易被逆向还原的问题。从ARM汇编指令底层研究ARM程序混淆,通过结合ARM架构指令系统的特点,基于模式切换提出一种ARM汇编代码混淆算法,包括指令模式切换混淆、寄存器随机分配混淆和虚假指令混淆,使混淆后汇编代码的控制流变得更加复杂,且对切换地址的寄存器混淆也提高了动态调试跟踪的难度。模式切换及虚假指令混淆也会造成反汇编错误,从复杂强度、逆向弹性和性能开销三方面进行测试评估。测试结果表明,该混淆算法不仅有效地提高了程序的控制流循环复杂度,而且能够抵抗反汇编工具的逆向分析。该混淆算法引发的额外体积开销和时间开销较低,具有实用性。  相似文献   

16.
代码混淆可有效对抗逆向工程等各类 MATE 攻击威胁,作为攻击缓和性质的内生安全技术发展较为成熟,对代码混淆效果的合理度量具有重要价值。代码混淆度量研究相对较少,针对代码混淆弹性的度量方法与泛化性、实用性度量方法相对缺乏。符号执行技术广泛应用于反混淆攻击,其生成遍历程序完整路径输入测试集的难度可为混淆弹性度量提供参考,然而基于程序嵌套结构的对抗技术可显著降低符号执行效率,增加其混淆弹性参考误差。针对上述问题,提出结合符号执行技术和N-scope复杂度的代码混淆度量方法,该方法首先基于程序符号执行时间定义程序混淆弹性;其次提出适配符号执行的N-scope复杂度,定义程序混淆强度同时增强符号执行对多层嵌套结构程序的混淆弹性度量鲁棒性;进而提出结合动态分析与静态分析的混淆效果关联性分析,通过对程序进行符号执行与控制流图提取量化混淆效果。面向 C 程序构建了该度量方法的一种实现框架并验证,实验对3个公开程序集及其混淆后程序集约4 000个程序进行混淆效果度量,度量结果表明,提出的度量方法在较好地刻画混淆效果的同时拥有一定的泛化能力与实用价值;模拟真实混淆应用场景给出了该度量方法的使用样例,为混淆技术使用人员提供有效的混淆技术度量与技术配置参考。  相似文献   

17.
于璞  舒辉  熊小兵  康绯 《软件学报》2023,34(4):1650-1665
目前,在代码保护技术研究领域,传统的混淆方法具有明显的混淆特征,分析人员可根据特征对其进行定制化的去混淆处理.为此,提出了一种基于分片融合的代码保护技术,通过在源代码层面将目标代码按照语法规则进行代码分片,依据执行顺序与语法规则,将分片插入另一程序的不同位置,在修复函数调用过程与数据关系后,形成可正常运行两个代码功能的融合后代码.在实验部分,对混淆后的代码,从运行效率、代码复杂度影响、代码相似性这3个维度,与其他混淆技术进行对比.从测试结果可以看出:基于分片融合的代码隐式混淆技术能够有效地模糊代码语义,改变控制流特征,且没有明显的混淆特征.因此,融合技术在对抗多种相似性对比算法的能力上有明显优势.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号