首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到18条相似文献,搜索用时 218 毫秒
1.
基于函数指针数组的代码迷惑技术   总被引:7,自引:1,他引:7  
李永祥  陈意云 《计算机学报》2004,27(12):1706-1711
移动代理在网络计算中经常遇到有目的的篡改攻击,只要通过代码迷惑技术使得对移动代理的程序分析复杂度增加或精确性降低,就能有效地增加这种攻击的难度,从而在一定程度上阻止这种攻击.函数指针分析及控制流分析是程序分析中的难点,也是引起分析的精确度降低的原因.文章首先给出一种增添函数指针数组的程序变换方法,使得函数之间的调用关系函数变得难以分析;同时提出一种控制流变换方法来增加程序分析中的数据流及控制流分析的复杂度,从而使得程序分析的精确度大大降低,最终使篡改攻击难以达到目的。  相似文献   

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

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

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

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

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

7.
基于抽象解释的代码迷惑有效性比较框架   总被引:8,自引:0,他引:8  
高鹰  陈意云 《计算机学报》2007,30(5):806-814
代码迷惑是一种以增加理解难度为目的的程序变换技术,用来保护软件免遭逆向剖析.代码迷惑是否有效是代码迷惑研究中首要解决的问题.目前对有效性证明的研究大都是基于非语义的方式.文章将语义与有效性证明联系起来,建立了基于语义的代码迷惑有效性比较框架,该框架能够为迷惑算法在静态分析这样的限定环境下提供有效性证明,而且也能严格比较迷惑算法之间的有效性,最后使用实例描述比较框架如何应用到证明代码迷惑的有效性.  相似文献   

8.
IA-64二进制代码switch语句恢复技术研究   总被引:1,自引:1,他引:0  
在对IA-64二进制代码进行分析的过程中,一个基本的问题就是识别通过跳转表实现的switch语句中n-条件分支的目标地址,该问题的解决使得对指定过程的机器指令的解码更加完整。文章基于切片和表达式置换技术,结合IA-64中为switch语句生成的汇编代码特点,给出了恢复跳转表及目标地址的方法,从而可以将包含跳转表的IA-64二进制代码恢复为高级switch语句。  相似文献   

9.
代码迷惑可以使恶意代码绕过基于特征匹配的恶意代码检测器的检测.本文利用抽象解释理论,从程序语义的角度对高鹰等人提出的基于语义的恶意代码检测算法处理代码迷惑的能力进行了分析.在对该算法形式化描述的基础上,建立了一个与其等价的基于迹语义的检测器,并通过证明基于迹语义的检测器对于保持变体关系的代码迷惑算法的谕示可靠性和谕示完备性,从理论上阐述了高鹰等人的恶意代码检测算法的谕示可靠性和谕示完备性.  相似文献   

10.
沙子涵  舒辉  武成岗  熊小兵  康绯 《软件学报》2022,33(5):1833-1848
控制流是程序过程的抽象表现, 对控制流进行混淆, 可有效提高代码抗逆向能力. 提出了控制流深度模糊思想:针对循环结构, 利用回调函数构造等价循环模型, 将过程内基本块跳转变更为过程间函数调用, 对抗逆向技术. 综合应用控制流分析和数据流依赖性分析, 建立了基于回调函数的控制流深度模糊模型, 并给出功能一致性证明. 为进...  相似文献   

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

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

13.
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.  相似文献   

14.
基于垃圾代码的控制流混淆算法   总被引:1,自引:0,他引:1       下载免费PDF全文
针对控制流混淆会引入额外开销的问题,提出一种利用垃圾代码进行控制流混淆的算法。将分支垃圾代码算法和循环垃圾代码算法相结合,并引入Hash函数以限制代码的插入操作,从而控制代码长度的增长,降低程序分析的精确度,抵抗篡改攻击。实验结果表明,该算法能有效防御逆向工程攻击。  相似文献   

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

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

17.
针对现有代码混淆仅限于某一特定编程语言或某一平台,并不具有广泛性和通用性,以及控制流混淆和数据混淆会引入额外开销的问题,提出一种基于底层虚拟机(LLVM)的标识符混淆方法。该方法实现了4种标识符混淆算法,包括随机标识符算法、重载归纳算法、异常标识符算法以及高频词替换算法,同时结合这些算法,设计新的混合混淆算法。所提混淆方法首先在前端编译得到的中间文件中候选出符合混淆条件的函数名,然后使用具体的混淆算法对这些函数名进行处理,最后使用具体的编译后端将混淆后的文件转换为二进制文件。基于LLVM的标识符混淆方法适用于LLVM支持的语言,不影响程序正常功能,且针对不同的编程语言,时间开销在20%内,空间开销几乎无增加;同时程序的平均混淆比率在77.5%,且相较于单一的替换算法和重载算法,提出的混合标识符算法理论分析上可以提供更强的隐蔽性。实验结果表明,所提方法具有性能开销小、隐蔽性强、通用性广的特点。  相似文献   

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

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

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