首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到19条相似文献,搜索用时 421 毫秒
1.
提出了一种基于混沌不透明谓词的压扁控制流算法.该算法将一种新的基于Arnold cat二维混沌映射的N态不透明谓词的构造方法用于改进压扁控制流混淆算法的全局索引变量,并开发了一个基于该算法的JavaScript脚本混淆系统.通过对混淆前后JavaScript程序的静动态分析证明了该混淆算法具有正确性和有效性,同时还能提高混淆后程序的安全性.  相似文献   

2.
目前的平展控制流主要是结合不透明谓词使用,例如混沌映射和同余方程算法。这些算法会引起大量额外开销。此外,这种结合不透明谓词的平展控制流混淆方法难抵御动态逆向攻击。针对这些问题,提出了在插入与原基本块结构类似、但数据随机生成且与原基本块不同的冗余块,使攻击者难以区分实际执行基本块的基础上,对实际执行基本块和冗余块进行控制流平展化处理,进一步混淆控制流结构。此外,构建分支函数动态赋值算法,对分支变量进行强化,提高混淆弹性。该控制流混淆算法在mbed TLS程序测试集上进行控制流、逆向工程和性能测试与分析,测试与分析结果表明该混淆算法不仅能大大提高混淆强度,还能有效保护程序控制流信息,抵抗动静态逆向分析。  相似文献   

3.
通过改进Logistic混沌映射,提出了En_Logistic映射,将该映射应用到不透明谓词簇的构造过程中,形成混沌不透明谓词.将混沌不透明谓词应用于代码混淆过程.分别给出在程序分支判断点处和在顺序执行语句决中插入混沌不透明谓词的方法.对应用不透明谓词进行代码混淆的过程给出了程序复杂度评价以及控制流复杂度评价.安全性分析表明,混沌不透明谓词具备对抗动、静态攻击的安全性,并通过实验验证了其在代码混淆应用中的效果.  相似文献   

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

5.
在介绍了代码混淆技术和中国剩余定理的基础上,利用密钥和一组同余方程解的状态构造了一种参数化的不透明谓词,并采用一元多项式环上的中国剩余定理判断不透明谓词的输出。理论分析表明构造的不透明谓词由若干多项式组成,对密钥敏感,具有单向性、随机性和较高的隐蔽性,密码安全性高,能抵抗静态和动态攻击。测试实验表明,混淆程序增加了混淆后程序的复杂度,保证了混淆后程序的正确性,且混淆变换不会给程序带来太大的空间和时间开销。  相似文献   

6.
符号执行在辅助挖掘软件漏洞和软件去混淆等领域取得了很大的进展,作为保护软件安全最有效手段之一的代码混淆系统如今几乎无法对抗符号执行的攻击.为解决上述问题,文章从混淆系统的功能扩展和符号执行工具的弱点利用出发,通过丰富OLLVM的同义指令替换集合和恒真谓词集合,设计不透明谓词对软件控制流进行混淆以及对分支条件进行加固,提...  相似文献   

7.
针对现有软件水印算法存在性能开销大或无法抵抗各类攻击的缺点和鲜有在JavaScript源码中实现的现状,提出一种基于哈希不透明谓词的JavaScript软件水印算法。该算法构造一种新的基于除留余数法哈希映射不透明谓词并将软件水印信息嵌入不透明谓词的表达式中,进而构造此不透明谓词的永假基本块嵌入程序中实现软件水印。开发了一个基于此算法的JavaScript软件水印系统。实验证明,该算法能在增加较少的系统开销的前提下有效抵抗各种常见的静动态攻击,同时还能提高水印的隐秘性和鲁棒性。  相似文献   

8.
随着软件功能的日趋复杂和网络攻击技术的不断演进,软件盗版、软件破解、数据泄露、软件恶意修改等恶意行为呈上升趋势,软件安全问题逐渐成为行业领域普遍关注的焦点和研究方向。代码混淆是一种典型的对抗逆向工程的软件保护技术,它能够在保持程序原有功能不变的条件下加大攻击者对程序进行分析和理解的难度,被广泛应用和深入研究。现有的代码混淆技术大多由于追求混淆效果而普遍存在性能损耗偏高、隐蔽性差等问题。控制结构混淆是代码混淆技术中应用较广泛的一种,它通过扰乱程序的控制流从而提高代码逆向工程难度,不透明谓词混淆是其一大分支。为了弥补现有代码混淆技术的缺陷,提出了基于浮点数类型转换和运算的不透明谓词构造方法,利用计算机浮点数类型转换和运算过程中伴随的精度损失现象使特定条件下产生与常理相悖的运算结果,通过选择若干个小数进行强制类型转换、加法运算和乘法运算,基于其运算结果统计可以构造一系列不透明谓词,实现代码混淆功能。相较于传统的不透明谓词,该构造方法具有隐蔽性高、通用性好、可逆性、开销低等优点。实验验证表明,该方法在大幅降低攻击者对软件进行逆向工程等工作速度的同时,对于符号执行等动态分析技术具有良好的抵御性能...  相似文献   

9.
为了有效解决电网隐私数据传输路径信息容易受到攻击和泄露,导致数据传输安全性下降问题,提出基于隐藏分类算法的电网隐私数据多层级加密方法。利用二态非透明谓词改变电网隐私数据传输路径形式获得相应的控制流。对所获取的控制流展开平展化处理并混淆其逻辑顺序,采用分支混淆算法隐藏经混淆处理后的路径信息。在电网传输路径信息隐藏的基础上,利用k-means算法将不同传输路径上的隐私数据分为电力数据和用户数据2个层级,采用RC6算法和Fiestel算法实现电力数据和用户数据的加密处理,结合多级身份验证方案实现电网隐私数据的多层级加密。实验结果表明,这种方法的电网隐私数据加解密效率高、空间占用低、能耗低、安全性高,电网隐私数据加密效果好。  相似文献   

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

11.
苏庆  孙金田 《计算机科学》2017,44(12):114-114
为了更好地进行代码混淆,提出了一种基于混沌映射和二次映射的混沌不透明表达式构造方法。根据混沌不透明表达式的定义,采用具有初值敏感依赖性、伪随机性、状态空间均匀分布性、多分支性和无特殊符号等性质的混沌映射。以二维帐篷映射为例,创建与之相匹配的二次映射,将混沌映射的运行状态空间映射至表达式的结果空间,以进行混沌不透明表达式的构造。将混沌不透明表达式与不透明谓词相结合,形成了一种新的不透明谓词构造方法,同时提出了一种新构造谓词与原有谓词融合于一体的不透明谓词插入方法,两者结合形成了一种新型的不透明谓词混淆技术。实验结果表明,该技术令各项软件的复杂度指标都有明显的提升,并且增加的程序开销较小。  相似文献   

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

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

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.
不透明谓词是一类轻量级的代码混淆方法,能以单向的执行复杂度对抗程序的逆向分析。广义不透明谓词扩展狭义不透明谓词的值恒定属性至逻辑恒定属性,已经应用于部分恶意代码中以提升抗查杀能力。为消除不透明谓词对程序恶意性判定的影响,以广义不透明谓词后趋依赖的属性为依据,结合逻辑恒定判定,提出了基于逻辑一致性的广义不透明谓词检测方法。通过静态分析提取谓词前置条件约束、后趋逻辑约束和谓词判定表达式,以相交基本块搜寻初筛谓词,并依据约束求解方法判定广义不透明谓词。构造原型系统并进行测试,结果表明该方法能精准高效地检测出恶意代码中的不透明谓词。  相似文献   

16.
A similarity metric method of obfuscated malware using function-call graph   总被引:1,自引:0,他引:1  
Code obfuscating technique plays a significant role to produce new obfuscated malicious programs, generally called malware variants, from previously encountered malwares. However, the traditional signature-based malware detecting method is hard to recognize the up-to-the-minute obfuscated malwares. This paper proposes a method to identify the malware variants based on the function-call graph. Firstly, the function-call graphs were created from the disassembled codes of program; then the caller–callee relationships of functions and the operational code (opcode) information about functions, combining the graph coloring techniques were used to measure the similarity metric between two function-call graphs; at last, the similarity metric was utilized to identify the malware variants from known malwares. The experimental results show that the proposed method is able to identify the obfuscated malicious softwares effectively.  相似文献   

17.
总结软件迷乱技术的发展现状,提出了一种分布式环境下基于控制流迷乱变换的代码保护方案。该方案利用分布式环境下各并发进程的局部状态构造全局不透明分支,并利用并发进程间的同步通信模式改变局部状态以增强迷乱强度,经性能分析认为该方案具有较好的隐蔽性和鲁棒性,能有效抵抗分布式环境下的窃听攻击。  相似文献   

18.
传统的不透明谓词对谓词内部逻辑结构进行复杂化,难以有效应对软件的动态逆向分析。通过插入运行环境检测代码并将检测结果返回给不透明谓词,动态选择分支路径使软件仅在安全环境下运行被保护代码,防止代码被动态分析。引入一般和关键节点概念,提高谓词内部逻辑结构的复杂度并使用形式化方法进行描述。实验证明,成功检测出虚拟机和调试器并避开了受保护代码;在静态指令统计上与使用变形隐匿的方法对比,具有更好的隐匿效果。  相似文献   

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

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

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