CN107103213B - 一种基于遗传算法的软件代码混淆操作选择方法 - Google Patents

一种基于遗传算法的软件代码混淆操作选择方法 Download PDF

Info

Publication number
CN107103213B
CN107103213B CN201710179465.1A CN201710179465A CN107103213B CN 107103213 B CN107103213 B CN 107103213B CN 201710179465 A CN201710179465 A CN 201710179465A CN 107103213 B CN107103213 B CN 107103213B
Authority
CN
China
Prior art keywords
obscure
obscures
chromosome
genetic algorithm
obscuring
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710179465.1A
Other languages
English (en)
Other versions
CN107103213A (zh
Inventor
薛惠锋
王潇茵
巴峰
张伟
葛慧
李宁
高金梁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Academy Of Aerospace Systems Science And Engineering
Original Assignee
China Academy Of Aerospace Systems Science And Engineering
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Academy Of Aerospace Systems Science And Engineering filed Critical China Academy Of Aerospace Systems Science And Engineering
Priority to CN201710179465.1A priority Critical patent/CN107103213B/zh
Publication of CN107103213A publication Critical patent/CN107103213A/zh
Application granted granted Critical
Publication of CN107103213B publication Critical patent/CN107103213B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Software Systems (AREA)
  • Biophysics (AREA)
  • Evolutionary Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Physiology (AREA)
  • Genetics & Genomics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一种基于遗传算法的软件代码混淆操作选择方法,首先建立混淆操作模块库;然后对待混淆的可执行程序进行反汇编,从代码入口处开始寻找代码中的CALL、JUMP和XOR代码段,作为混淆操作的加入位置;从混淆操作模块库中随机选取多个混淆操作,并组合,形成N种混淆操作分配方式;最后采用遗传算法,对形成的N种混淆操作分配方式进行优化筛选,筛选出最优混淆操作分配方式。本发明方法能够综合考虑程序响应时间和代码混淆程度两个因素,对可执行程序的代码混淆操作进行筛选,在对软件代码进行有效充分混淆的前提下,尽量提高程序响应时间,极大的减少程序混淆对于程序执行效率的影响。

Description

一种基于遗传算法的软件代码混淆操作选择方法
技术领域
本发明属于信息安全技术领域,涉及一种基于遗传算法的软件代码混淆操作选择方法。
背景技术
随着软件逆向技术的快速发展,软件出售之后,被非授权用户破解的可能性有所提高,一旦攻击者通常利用静态反汇编或动态调试等逆向工程技术对软件的可执行程序进行分析和破解,那么,将会盗取该软件核心算法等知识产权,还可能对软件和灌装参数表等进行篡改,谋取利益,甚至寻找软件中的安全漏洞,伺机利用。
软件代码混淆技术是防止软件被非授权用户破解的一个有效手段,且在软件代码保护中逐渐发挥越来越大的作用。软件代码混淆将程序代码进行混淆处理,使得程序功能保持不变,但具体程序结构已经发生了比较大的变化,程序就转换成难以被他人理解和修改的程序,必须付出较大的代价才能够理解程序,这样就极大的保护了程序本身的知识产权。
由于软件代码混淆对于软件本身的性能会有一定程度的影响,因此,要平衡性能和混淆程度,得到满意的代码混淆工作。当前研究者的工作主要集中在代码混淆方法和技术的选择和探索方面,甚少提出平衡软件可执行程序本身性能和代码混淆程度的优化方法。《基于垃圾代码的控制流混淆算法》一文中,曾经提出“当操作模块数过大时(大于某个值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};
(2.2)为每个染色体设定适应度,其中染色体R i的适应度为F i,F i为经过染色体R i混淆操作后的软件代码响应时间的倒数;
(2.3)每个染色体进行交叉或变异;
(2.4)当达到设定的遗传代数后,选择适应度最高的染色体RH,作为最优的混淆操作分配方式。
所述步骤(2.1)中,染色体Ri={H1,H2…Hj…Hm},其中Hj表示第j个加入位置处分配的混淆操作组合,Hj可以为空。
所述步骤(2.3)中,对染色体Ri进行交叉的方法如下:
从Ri中随机选取一个特征值Hj,对于该特征值的两边特征Hj-1和Hj+1进行交叉处理,得到交叉之后的结果;
对染色体Ri进行变异的方法如下:
从Ri中随机选取一个特征值Hc,将Hc的混淆操作组合变异为混淆操作模块库中其他混淆操作的组合,实现变异,c∈[1,m]。
本发明与现有技术相比的优点在于:
(1)本发明建立了包括多种混淆实现方式的混淆操作模块库,根据可执行程序中加入位置的不同,形成多种混淆操作分配方式,每种混淆操作分配方式均为不同类型不同实现方式的混淆操作组合,从而能够实现对待混淆可执行程序的充分有效混淆。
(2)本发明方法采用遗传算法对可执行程序混淆操作的多个混淆操作分配方式,进行选择、交叉和变异,优化选择出对可执行程序响应时间影响最小的混淆操作分配方式,避免了随机选择方式的不足,使得选择得到的软件代码混淆操作能够在充分进行代码混淆的前提下,尽可能小的影响代码本身的运行效率,将对软件性能的影响降到最低。
附图说明
图1为本发明流程图。
具体实施方式
如图1所示,本发明提出一种基于遗传算法的软件代码混淆操作选择方法,具体步骤包括:
(1)建立混淆操作模块库,混淆操作模块库由混淆操作构成,混淆操作包括控制流混淆操作、数据混淆操作以及综合控制流混淆和数据混淆的混淆操作。例如,控制流混淆操作包括在程序里面加入多余跳转、重新组织程序里面的控制流等,数据混淆操作包括对变量进行重组、对数值变量进行混合变换等。
(2)找到待混淆可执行程序的入口,对待混淆可执行程序进行反汇编。
(3)对反汇编得到的代码进行遍历,寻找其中的JUMP、CALL、XOR代码,以此作为混淆操作的加入位置。
一种实现方式为:
(3.1)建立空的指令链表;
(3.2)判断第k行程序是否为JUMP、CALL、XOR指令,如果是,则将该代码段存入指令链表,如果不是,则进入步骤(3.3),k的初值为1;
(3.3)判断是否为最后一条指令,如果为否,则k的值加1,返回步骤(3.2);如果是最后一条指令,则进入步骤(4)。
(4)从混淆操作模块库中随机选择若干个混淆操作,并组合,将组合后的混淆操作分配给各个混淆操作的加入位置,形成N种混淆操作分配方式。
(5)采用遗传算法对N种混淆操作分配方式进行优化选择,选择最优的混淆操作分配方式作为本次软件代码混淆操作的选择结果。
采用遗传算法对N种混淆操作分配方式进行优化选择的具体实现方法为:
1)特征选择及编码
针对遗传算法,确定混淆操作组合为遗传算法的特征。
对N种混淆操作分配方式进行编码,形成N个染色体,N个染色体构成遗传算法的种群,Ri={H1,H2…Hj…Hm},其中Hj表示第j个加入位置处分配的混淆操作组合,Hj可以为空。j∈[1,m]。m表示待混淆可执行程序需要加入混淆操作的位置数量。H1,H2…Hj…Hm为遗传算法的特征。
N个染色体构成遗传算法的种群R,
R={R 1,R 2…R i…R N}
2)适应度确定
采用遗传算法中的轮盘赌选择方法,每一个染色体占据虚拟轮盘中的一个扇区,各染色体占据的扇区面积正比于适应度数值,染色体R i对应的适应度为F i,F i为经过染色体R i混淆操作后的软件代码响应时间的倒数,软件代码响应时间越长,所对应的染色体适应度越低,反之亦然。
3)特征交叉及变异
采用简单交叉的方法,在每个染色体中随机设定一个交叉点,实行交叉的时候,该点前后两个特征进行交换,生成一个新的染色体。即,从染色体R i中随机选取一个特征值Hj,对于特征值的两边特征Hj-1和Hj+1进行交叉处理,得到交叉之后的结果。
变异过程中,随机选择染色体R i一个特征值Hc,将Hc的混淆操作组合变异为混淆操作模块库中其他混淆操作组合,实现变异。c∈[1,m]。
4)遗传终止条件
预先设定遗传代数D,经过选择、交叉和变异操作,到规定代数D之后,选择适应度最高的染色体RH,作为优化选择的结果。
(5)遗传算法结束后,RH所对应的混淆操作分配方式即为本次软件代码混淆操作的选择结果。
本发明首先建立混淆操作模块库,然后从反汇编后的代码中确定混淆操作的加入位置,从混淆操作模块库中选择多个混淆操作,并组合,形成N种混淆操作分配方式;最后采用遗传算法,对形成的N种混淆操作分配方式进行优化筛选,筛选出适应程度最高的混淆操作分配方式。本发明对可执行程序的代码混淆操作进行筛选,能够综合考虑程序响应时间和代码混淆程度两个因素,在对软件代码进行有效充分混淆的前提下,尽量提高程序响应时间,极大的减少程序混淆对于程序执行效率的影响。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。

Claims (4)

1.一种基于遗传算法的软件代码混淆操作选择方法,其特征在于包括步骤如下:
(1)建立混淆操作模块库,所述混淆操作模块库由混淆操作构成,混淆操作包括控制流混淆操作、数据混淆操作以及综合控制流混淆和数据混淆的混淆操作;
(2)找到待混淆可执行程序的入口,对待混淆可执行程序进行反汇编;
(3)对反汇编后的代码进行遍历,寻找其中的JUMP、CALL、XOR代码,以此作为混淆操作的加入位置;
(4)从混淆操作模块库中随机选择若干个混淆操作,将所选的混淆操作分配给各个混淆操作的加入位置,形成N种混淆操作分配方式;
(5)采用遗传算法对N种混淆操作分配方式进行优化选择,选择最优的混淆操作分配方式作为本次软件代码混淆操作的选择结果。
2.根据权利要求1所述的一种基于遗传算法的软件代码混淆操作选择方法,其特征在于:所述步骤(5)的实现方法如下:
(2.1)确定混淆操作组合为遗传算法的特征,对N种混淆操作分配方式进行编码,形成N个染色体,N个染色体构成遗传算法的种群R,R={R1,R2…Ri…RN};
(2.2)为每个染色体设定适应度,其中染色体Ri的适应度为Fi,Fi为经过染色体Ri混淆操作后的软件代码响应时间的倒数;
(2.3)每个染色体进行交叉或变异;
(2.4)当达到设定的遗传代数后,选择适应度最高的染色体RH,作为最优的混淆操作分配方式。
3.根据权利要求2所述的一种基于遗传算法的软件代码混淆操作选择方法,其特征在于:所述步骤(2.1)中,染色体Ri={H1,H2…Hj…Hm},其中Hj表示第j个加入位置处分配的混淆操作组合。
4.根据权利要求2所述的一种基于遗传算法的软件代码混淆操作选择方法,其特征在于:所述步骤(2.3)中,对染色体Ri进行交叉的方法如下:
从Ri中随机选取一个特征值Hj,对于该特征值的两边特征Hj-1和Hj+1进行交叉处理,得到交叉之后的结果;
对染色体Ri进行变异的方法如下:
从Ri中随机选取一个特征值Hc,将Hc的混淆操作组合变异为混淆操作模块库中其他混淆操作的组合,实现变异,c∈[1,m]。
CN201710179465.1A 2017-03-23 2017-03-23 一种基于遗传算法的软件代码混淆操作选择方法 Active CN107103213B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710179465.1A CN107103213B (zh) 2017-03-23 2017-03-23 一种基于遗传算法的软件代码混淆操作选择方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710179465.1A CN107103213B (zh) 2017-03-23 2017-03-23 一种基于遗传算法的软件代码混淆操作选择方法

Publications (2)

Publication Number Publication Date
CN107103213A CN107103213A (zh) 2017-08-29
CN107103213B true CN107103213B (zh) 2018-08-31

Family

ID=59675955

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710179465.1A Active CN107103213B (zh) 2017-03-23 2017-03-23 一种基于遗传算法的软件代码混淆操作选择方法

Country Status (1)

Country Link
CN (1) CN107103213B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111680271A (zh) * 2020-06-02 2020-09-18 浙江大学 基于智能合约字节码特征的合约代码混淆平台和混淆方法
CN112487493A (zh) * 2020-11-25 2021-03-12 电子科技大学 一种基于遗传算法的安全策略调度优化方法
CN117118615B (zh) * 2023-10-23 2024-02-06 烽台科技(北京)有限公司 基于遗传算法的流量混淆方法、装置和可读存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102323906B (zh) * 2011-09-08 2014-01-08 哈尔滨工程大学 一种基于遗传算法的mc/dc测试数据自动生成方法
CN109872771A (zh) * 2013-09-27 2019-06-11 科德克希思公司 基于定向进化的方法、装置和系统
CN104992083B (zh) * 2015-07-09 2018-02-16 广州视源电子科技股份有限公司 应用程序的代码混淆方法和系统
CN105550541B (zh) * 2015-12-02 2019-09-06 深圳市国微电子有限公司 可编程器件、标识信息、编程数据流的配置方法及装置

Also Published As

Publication number Publication date
CN107103213A (zh) 2017-08-29

Similar Documents

Publication Publication Date Title
CN107103213B (zh) 一种基于遗传算法的软件代码混淆操作选择方法
Tanabe et al. Improving the search performance of SHADE using linear population size reduction
Jadoun et al. Modulated particle swarm optimization for economic emission dispatch
Lee et al. A novel data hiding scheme based on modulus function
Zhang et al. A symmetric color image encryption algorithm using the intrinsic features of bit distributions
Koumousis et al. A saw-tooth genetic algorithm combining the effects of variable population size and reinitialization to enhance performance
Deb et al. Controlled elitist non-dominated sorting genetic algorithms for better convergence
Wezeman et al. Military spending and arms imports by Iran, Saudi Arabia, Qatar and the UAE
CN108366181A (zh) 一种基于超混沌系统和多级置乱的图像加密方法
CN1892542A (zh) 智能通讯终端的密码安全输入方法
Guo et al. Improved reverse zigzag transform and DNA diffusion chaotic image encryption method
CN108600756A (zh) 基于蒙特卡洛法马尔可夫链的编码参数自适应调整方法
Su et al. A three-dimensional (3d) space permutation and diffusion technique for chaotic image encryption using merkel tree and dna code
Liping et al. Application of shuffled frog leaping algorithm to an uncapacitated SLLS problem
McCulloch et al. Phase diagram of the 1D Kondo lattice model
Żychowski et al. Evolutionary approach to Security Games with signaling
Becerra et al. A cultural algorithm for solving the job shop scheduling problem
CN107943754B (zh) 一种基于遗传算法的异构冗余系统优化方法
CN107113430B (zh) 码率控制的方法、计算机系统和装置
CN114070655A (zh) 网络流量检测规则生成方法及装置、电子设备、存储介质
CN103888250B (zh) 一种基于自反馈演化序列的密钥序列生成方法
CN109033520A (zh) 一种基于随机增强和声算法的系统多目标优化方法
Duan et al. Research and improvement of the real-coded chaotic quantum-inspired genetic algorithm
Dashko et al. Sintering of polycrystalline ferroelectrics and the percolation problem in stochastically packed networks
Tao et al. Secure and Efficient Allocation of Virtual Machines in Cloud Data Center

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Xue Huifeng

Inventor after: Wang Xiaoyin

Inventor after: Ba Feng

Inventor after: Zhang Wei

Inventor after: Ge Hui

Inventor after: Li Ning

Inventor after: Gao Jinliang

Inventor before: Wang Xiaoyin

Inventor before: Ba Feng

Inventor before: Zhang Wei

Inventor before: Ge Hui

Inventor before: Li Ning

Inventor before: Gao Jinliang

GR01 Patent grant
GR01 Patent grant