[发明专利]一种基于遗传算法的软件代码混淆操作选择方法有效
申请号: | 201710179465.1 | 申请日: | 2017-03-23 |
公开(公告)号: | CN107103213B | 公开(公告)日: | 2018-08-31 |
发明(设计)人: | 薛惠锋;王潇茵;巴峰;张伟;葛慧;李宁;高金梁 | 申请(专利权)人: | 中国航天系统科学与工程研究院 |
主分类号: | G06F21/14 | 分类号: | G06F21/14;G06N3/12 |
代理公司: | 中国航天科技专利中心 11009 | 代理人: | 臧春喜 |
地址: | 100048*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 遗传 算法 软件 代码 混淆 操作 选择 方法 | ||
一种基于遗传算法的软件代码混淆操作选择方法,首先建立混淆操作模块库;然后对待混淆的可执行程序进行反汇编,从代码入口处开始寻找代码中的CALL、JUMP和XOR代码段,作为混淆操作的加入位置;从混淆操作模块库中随机选取多个混淆操作,并组合,形成N种混淆操作分配方式;最后采用遗传算法,对形成的N种混淆操作分配方式进行优化筛选,筛选出最优混淆操作分配方式。本发明方法能够综合考虑程序响应时间和代码混淆程度两个因素,对可执行程序的代码混淆操作进行筛选,在对软件代码进行有效充分混淆的前提下,尽量提高程序响应时间,极大的减少程序混淆对于程序执行效率的影响。
技术领域
本发明属于信息安全技术领域,涉及一种基于遗传算法的软件代码混淆操作选择方法。
背景技术
随着软件逆向技术的快速发展,软件出售之后,被非授权用户破解的可能性有所提高,一旦攻击者通常利用静态反汇编或动态调试等逆向工程技术对软件的可执行程序进行分析和破解,那么,将会盗取该软件核心算法等知识产权,还可能对软件和灌装参数表等进行篡改,谋取利益,甚至寻找软件中的安全漏洞,伺机利用。
软件代码混淆技术是防止软件被非授权用户破解的一个有效手段,且在软件代码保护中逐渐发挥越来越大的作用。软件代码混淆将程序代码进行混淆处理,使得程序功能保持不变,但具体程序结构已经发生了比较大的变化,程序就转换成难以被他人理解和修改的程序,必须付出较大的代价才能够理解程序,这样就极大的保护了程序本身的知识产权。
由于软件代码混淆对于软件本身的性能会有一定程度的影响,因此,要平衡性能和混淆程度,得到满意的代码混淆工作。当前研究者的工作主要集中在代码混淆方法和技术的选择和探索方面,甚少提出平衡软件可执行程序本身性能和代码混淆程度的优化方法。《基于垃圾代码的控制流混淆算法》一文中,曾经提出“当操作模块数过大时(大于某个值M),则采用Hash函数选取操作模块,进行混淆操作,以限制混淆操作的次数,减小程序混淆后的时空开销”的方法,但是该方法随机性较强,在软件代码性能和混淆程度平衡的优化选择方面尚有欠缺。
因此,需要提出一种优化算法,在进行软件代码混淆的过程中,对代码混淆操作进行优化选择,选择既能对软件代码进行有效的充分的混淆,又能够将对软件性能的影响降到最低的选择方法,提高软件代码混淆的功效。
发明内容
本发明解决的技术问题是:克服现有技术的不足,提供一种基于遗传算法的软件代码混淆操作选择方法,实现了对软件代码有效的充分的混淆,同时将对软件性能的影响降到最低,提高了软件代码混淆的有效性。
本发明的技术解决方案是:一种基于遗传算法的软件代码混淆操作选择方法,包括步骤如下:
(1)建立混淆操作模块库,所述混淆操作模块库由混淆操作构成,混淆操作包括控制流混淆操作、数据混淆操作以及综合控制流混淆和数据混淆的混淆操作;
(2)找到待混淆可执行程序的入口,对待混淆可执行程序进行反汇编;
(3)对反汇编后的代码进行遍历,寻找其中的JUMP、CALL、XOR代码,以此作为混淆操作的加入位置;
(4)从混淆操作模块库中随机选择若干个混淆操作,将所选的混淆操作分配给各个混淆操作的加入位置,形成N种混淆操作分配方式;
(5)采用遗传算法对N种混淆操作分配方式进行优化选择,选择最优的混淆操作分配方式作为本次软件代码混淆操作的选择结果。
所述步骤(5)的实现方法如下:
(2.1)确定混淆操作组合为遗传算法的特征,对N种混淆操作分配方式进行编码,形成N个染色体,N个染色体构成遗传算法的种群R,R={R 1,R 2…R i…R N};
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国航天系统科学与工程研究院,未经中国航天系统科学与工程研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710179465.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:SDK发送、应用发布、应用运行方法及装置
- 下一篇:业务信息防护装置