共查询到10条相似文献,搜索用时 15 毫秒
1.
王应邦 《电子制作.电脑维护与应用》2015,(2):86
控制流的混淆能够运用在混淆程序的运行流程中,阻止了软件的逆向工程,但在通常情况下,混淆后的程序增大了程序的代码量和执行时间。通过构建随机插入混淆策略,利用分支插入和循环条件插入两种算法的结合,引入随机函数来控制代码的插入,达到防止代码长度增长的目的。采用BCEL的设计并且实现了在以Java为字节码的控制流混淆转换工具的基础上,实现Java字节码一代代的重复混淆,并且使混淆的结果不能再一次显现。通过实验结果表明,这一策略能够有效地防止出现由于控制混淆器的转换操作引起性能的超负荷状态,同时更有效地阻碍逆向工程的攻击。 相似文献
2.
混淆转换作为一种防止逆向工程的代码保护技术伴随着Java,语言的迅速发展应运而生。以保护软件代码、提高逆向工程代价为目标,从破解与反破解的角度对控制流混淆转换技术进行了研究,提出了重构程序整体控制结构及隐藏用于控制转换的短暂变量的方法,并通过试验对控制流混淆转换给程序带来的时间和空间上的过载进行了客观评析。 相似文献
3.
4.
为了提高基于垃圾代码的控制流混淆方法的优化效果, 针对插入分支垃圾代码以及循环垃圾代码会引入大量额外开销的问题, 从软件保护中代码混淆技术出发, 对代码混淆技术的研究现状和原理、混淆算法攻击以及基于控制流混淆技术作了深入研究, 提出一种基于Java代码控制混淆中插入垃圾代码的改进方法。新方法与基于垃圾代码的控制流混淆变换方法比较, 结果表明, 新方法增加了代码抵抗攻击者的静态分析的能力, 增加了反编译以及逆向工程的难度, 既达到了很好的防御逆向工程攻击的效果, 又不会大量引入额外的系统开销。 相似文献
5.
6.
7.
8.
由于跨平台需求和动态连接的特性,使Java类文件容易被反编译。该文从提高程序模糊度出发,研究了数据混淆这一主流的代码混淆技术,并对类拆分、变量拆分等算法进行了完善和细节化。能有效防止java程序被逆向工程,使反编译工具反编译出来的源程序可读性极差。 相似文献
9.
针对ARM程序高层代码混淆存在盲目性较强而降低混淆准确度,且很容易被逆向还原的问题。从ARM汇编指令底层研究ARM程序混淆,通过结合ARM架构指令系统的特点,基于模式切换提出一种ARM汇编代码混淆算法,包括指令模式切换混淆、寄存器随机分配混淆和虚假指令混淆,使混淆后汇编代码的控制流变得更加复杂,且对切换地址的寄存器混淆也提高了动态调试跟踪的难度。模式切换及虚假指令混淆也会造成反汇编错误,从复杂强度、逆向弹性和性能开销三方面进行测试评估。测试结果表明,该混淆算法不仅有效地提高了程序的控制流循环复杂度,而且能够抵抗反汇编工具的逆向分析。该混淆算法引发的额外体积开销和时间开销较低,具有实用性。 相似文献
10.
为改善软件的验证安全性机制,针对软件代码的混淆强度是否足够抵抗攻击的问题,提出一种基于分存技术的代码控制流混淆方法。利用分存技术得到多个能够动态检验非法操作的验证函数;将其与原有的代码控制流混淆方法结合,隐藏插入到程序中;通过改变软件代码的控制流结构,增加破解者逆向工程的难度,达到保护代码的目的。实验结果表明,该方法具备抵抗破解者攻击和动态验证系统安全性的能力。 相似文献