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

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

3.
混淆转换作为一种防止逆向工程的代码保护技术伴随着Java,语言的迅速发展应运而生。以保护软件代码、提高逆向工程代价为目标,从破解与反破解的角度对控制流混淆转换技术进行了研究,提出了重构程序整体控制结构及隐藏用于控制转换的短暂变量的方法,并通过试验对控制流混淆转换给程序带来的时间和空间上的过载进行了客观评析。  相似文献   

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

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

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

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

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

9.
为轻松获得程序的可能执行路径,进而实现程序变量的状态跟踪,提出了一种C/C++源代码控制流提取算法,通过该模型获取控制流切片,产生局部控制流图,将数据流异常检测与安全子集检测相结合,弥补了单独使用安全子集方法无法跟踪数据流的不足,增强代码安全隐患的挖掘能力.利用控制流图化简,排除部分不可达控制流信息,提高跟踪效率.通过对3个Linux内核源文件的检测,验证了该方法不仅可以检测出违反安全子集的代码安全隐患,同时对代码数据流异常检测提供支持,准确率达94.9%.  相似文献   

10.
基于控制流的静态反汇编算法研究   总被引:4,自引:0,他引:4  
该文在分析各种类型的指令对程序静态流程影响的基础上,提出了一种基于程序流程遍历图的静态反汇编算法,并给出了一种基于统计学的代码间隙填充技术对由间接跳转和间接调用所引用的代码区进行反汇编的方法。  相似文献   

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

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

13.
基于分支条件混淆的代码加密技术,实现了秘钥和程序的分离,能够对抗程序静态和动态分析手段,但仅能用于相等条件分支.通过引入拉格朗日插值法,生成输入处理函数,在保证分支条件混淆安全的前提下,解决了多输入分支条件下通过输入产生秘钥的问题,实现多输入分支下的条件代码加密;把多输入分支下生成唯一秘钥方法应用到等于条件取或分支、大小比较条件分支和复杂条件分支,实现了基于分支条件混淆的代码加密技术从相等条件分支到区间条件分支和复杂条件分支的扩展.  相似文献   

14.
潘雁  祝跃飞  林伟 《软件学报》2019,30(6):1778-1792
软件程序是按一定顺序排列的指令序列,指令的排列组合构成了千变万化的程序语义.指令顺序重排通常会相应地导致程序语义的变化,通过分析相邻指令序列的相对独立性,可以在不影响程序语义的前提下交换相邻指令序列,增大指令距离,改变程序特征,在一定程度上增加逆向分析代价.通过改进程序的形式化定义论证相邻指令交换的充分条件,采用模拟退火算法实现随机化的指令乱序混淆方法,并将指令乱序方法与虚拟机代码保护技术融合,实现基于指令乱序的虚拟机代码保护系统IS-VMP,使用加密算法实例进行系统测试,验证了指令乱序混淆算法的可行性与有效性.  相似文献   

15.
为了在高吞吐量应用程序中快速进行测量来监视物理过程,论文将通信吞吐量传输到中心服务器之前的测量数据预过滤过程转化为代码路径分支混淆技术,并将其视为二进制分类问题.利用决策树与随机随机森林构建了每种体系结构并提出了不同的实现方案,使用改进的冯·诺依曼体系结构的CPU理论模型和现场可编程门阵列(FPGA)来构建计算体系结构...  相似文献   

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

17.
自修改代码混淆方法是一种隐藏程序重要信息的有效技术。为减少代码混淆造成的额外开销而又不影响代码混淆的质量,利用程序流敏感分析方法选择比较重要的指令进行混淆。为提高代码混淆的质量,有效地防止反汇编,提出一个二步比较混淆模型。该模型包括两个子混淆器,混淆器1采用程序流敏感分析方法获得混淆的指令并产生两个混淆代码文件和一个混淆代码映射文件。混淆器2通过比较两个混淆代码文件精确地定位混淆指令在二进制代码中的位置,然后利用混淆代码映射文件对二进制代码进行混淆,以进一步提高代码混淆的质量。通过实验分析,混淆后二进制文件的额外开销只占整个代码的3%左右,并且混淆后的反汇编代码明显异于原始的反汇编代码,甚至出现了一些无法识别的错误指令。  相似文献   

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

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