一种基于控制流和外形混淆的Python代码混淆方法技术

技术编号:15501179 阅读:113 留言:0更新日期:2017-06-03 22:40
本发明专利技术公开了一种基于控制流和外形混淆的Python代码混淆方法,包括:将Python代码以函数为单位将每个函数中的代码分割成相应的基本块;对函数中的基本块进行编号;使用基于分段Logistic混沌映射的密钥生成算法,生成两套与前面的编号对应的密钥;打乱函数中基本块的顺序,并使用控制语句进行控制,封装控制基本块执行顺序的控制变量,使用两套密钥作为生成下一步需要执行的基本块的编号和if语句中的条件变量;对之前进行控制流混淆后的代码进行外形混淆,将其替换成无意义的字符串。本发明专利技术能保护使用Python语言开发的软件的知识产权。

A Python code obfuscation method based on control flow and shape obfuscation

The invention discloses a method for control flow and the shape of confusion, confusion code based on the Python include: the Python code to function as a unit to each function of the code is divided into corresponding basic blocks; the number of functions in the basic block; using the key generation algorithm based on piecewise Logistic chaotic map, corresponding to generate two sets and in front of the number keys; disrupt the order of the basic block function, and use the control statement to control, the control variable control package basic block execution order, using two sets of keys as the next generation needs to execute the basic block number and the condition in the if variable; before the control flow confusion after the shape code confusion, replacing it with a string of meaningless. The invention can protect the intellectual property of the software developed by using the Python language.

【技术实现步骤摘要】
一种基于控制流和外形混淆的Python代码混淆方法
本专利技术涉及一种程序混淆方法,具体地说是一种基于控制流和外形混淆的Python代码混淆方法。
技术介绍
软件代码的安全保护是计算机安全领域的一个重点研究内容。随着互联网的飞速发展和大数据时代的到来,分布式计算环境在给人们带来更强的计算能力和更大的灵活性的同时,也使软件代码不可避免的地运行在不可信的节点上,从而使软件代码面临更加严峻的安全问题。相对于攻击者并不知晓攻击对象内部情况的黑盒子攻击,这种暴露软件代码,通过逆向分析代码的运行,并对代码进行恶意篡改或盗取的安全攻击成为白盒子攻击。目前白盒子攻击的威胁正在快速上升和不断演化。软件代码混淆技术是近十年来发展起来的一种软件白盒子安全保护技术。Python语言现在变得越来越流行,它是一种面向对象、解释型计算机程序设计语言。Python语法简洁而清晰,具有丰富和强大的类库,常被昵称为胶水语言,它能够把其他语言制作的各种模板(尤其是C/C++)很轻松地联结在一起。现阶段,由于Python语言的方便性,大量应用开始采用Python语言来实现。但是现在存在很多开源的反编译工具,可以直接将使用P本文档来自技高网...
一种基于控制流和外形混淆的Python代码混淆方法

【技术保护点】
一种基于控制流和外形混淆的Python代码混淆方法,其特征是按如下步骤进行:步骤1、以一个函数的开始与结束为单位,将Python代码中所有函数进行划分,得到若干个单独的函数;步骤2、针对任意一个单独的函数fun,对其函数体中若干个连续执行的代码进行分割,得到若干个基本块并依次进行编号,记为B={b

【技术特征摘要】
1.一种基于控制流和外形混淆的Python代码混淆方法,其特征是按如下步骤进行:步骤1、以一个函数的开始与结束为单位,将Python代码中所有函数进行划分,得到若干个单独的函数;步骤2、针对任意一个单独的函数fun,对其函数体中若干个连续执行的代码进行分割,得到若干个基本块并依次进行编号,记为B={b1,b2,…,bi,…,bn};bi表示第i个基本块;所述第i个基本块bi中的代码只有一个入口和一个出口;1≤i≤n;步骤3、使用基于分段Logistic混沌映射的密钥生成算法,生成两套密钥;步骤3.1、利用式(1)所示的分段Logistic混沌映射产生第i个实数ai,从而得到随机实数序列A={a1,a2,…,ai,…,an}:式(1)中,a0=rand(0,1);u表示Logistic参数;且3.569946…≤u≤4;步骤3.2、利用式(2)所示的映射函数将第i个实数ai映射成第i个整数Fi,从而将所述实数序列A={a1,a2,…,ai,…,an}映射成整数序列F={F1,F2,…,Fi,…,Fn}:Fi=Round{ai×m}(2)式...

【专利技术属性】
技术研发人员:顾乃杰王岩陈悟王小强
申请(专利权)人:合肥康捷信息科技有限公司
类型:发明
国别省市:安徽,34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1