System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及一种软件安全,尤其涉及一种源代码混淆方法、混淆逆转方法、相应装置及存储介质。
技术介绍
1、源代码是互联网企业的核心数字资产,具有巨大的商业价值。因此,一旦源代码泄露或将对企业造成毁灭性地打击。为保持核心竞争力,互联网企业对其源代码的保护也愈加重视。
2、目前,企业在处理代码安全事务上,一般是通过对可能造成源代码泄露风险的行为进行检测,以防止源代码泄露。
3、然而,在互联网企业内,源代码泄露是没办法完全避免的问题,而且源代码泄露是互联网企业丧失核心产品竞争力的原因之一。比如,当某个企业没能做到完全防范源代码泄露问题时,泄露的源代码经过修改会迅速成为市场竞品,会导致该企业的核心价值贬值,市场份额降低。
4、综上,有必要提供一种能够有效防止源代码泄露的方案。
技术实现思路
1、本申请实施例提供一种源代码混淆方法、混淆逆转方法、相应装置及存储介质,以解决相关技术存在的问题,技术方案如下:
2、第一方面,本申请实施例提供了一种源代码混淆方法,包括:
3、对原始源代码进行语义分析,获得分析后的源代码;
4、获取所述原始源代码运行时的配置参数;
5、根据所述配置参数,确定混淆级别为深度混淆时,对所述分析后的源代码进行语义混淆;
6、输出所述混淆后的源代码。
7、在一种实施方式中,对所述分析后的源代码进行语义混淆包括:
8、对所述分析后的源代码执行如下混淆操作:
>9、注释混淆;
10、位运算逻辑控制;
11、语义含义颠倒;
12、排他分支变为并行执行;
13、内存级变量控制。
14、在一种实施方式中,对所述分析后的源代码执行注释混淆操作包括:在所述分析后的源代码的注释中使用unicode编码,通过unicode转义字符,将注释中的unicode编码自动翻译后转换为执行代码;
15、对所述分析后的源代码执行位运算逻辑控制操作包括:使用位无符号右移位运算符,将所述分析后的源代码中int类型的数字进行右移。
16、在一种实施方式中,对所述分析后的源代码执行语义含义颠倒操作包括:
17、通过反射读取所述分析后的源代码中的目标变量,所述目标变量为boolean类中定义的true变量或false变量;
18、通过反射去掉所述目标变量的final修饰符,再将所述目标变量的值进行颠倒设置;
19、通过采用unicode编码对所述目标变量的原型值进行隐藏。
20、在一种实施方式中,对所述分析后的源代码执行排他分支变为并行执行操作包括:
21、对所述分析后的源代码进行语义改造,自动添加if和else,并定义if和else在相同条件下分别被执行;
22、使用匿名内部类实例化初始块代码,执行if的代码块和else的代码块。
23、在一种实施方式中,对所述分析后的源代码执行内存级变量控制操作包括:
24、通过反射在所述分析后的源代码中构造unsafe对象。
25、第二方面,本申请实施例还提供了一种源代码混淆逆转方法,包括:
26、对混淆后的源代码进行语义分析,识别所述混淆后的源代码中的目标关键词,所述目标关键词包括位运算符、unicode转义字符和类型重定义关键词;
27、将所述目标关键词替换为简单代码,以实现所述混淆后的源代码逆转为原始源代码;
28、输出所述原始源代码。
29、第三方面,本申请实施例还提供了一种源代码混淆装置,包括:
30、处理单元,用于对原始源代码进行语义分析,获得分析后的源代码;获取所述原始源代码运行时的配置参数;根据所述配置参数,确定混淆级别为深度混淆时,对所述分析后的源代码进行语义混淆;
31、输出单元,用于输出所述混淆后的源代码。
32、第四方面,本申请实施例还提供了一种源代码混淆逆转装置,包括:
33、处理单元,用于对混淆后的源代码进行语义分析,识别所述混淆后的源代码中的目标关键词,所述目标关键词包括位运算符、unicode转义字符和类型重定义关键词;将所述目标关键词替换为简单代码,以实现所述混淆后的源代码逆转为原始源代码;
34、输出单元,用于输出所述原始源代码。
35、第五方面,本申请实施例还提供了一种计算机装置,该计算机装置包括:存储器和处理器,所述存储器中存储指令,所述指令由所述处理器加载并执行,以实现上述各方面任一种实施方式中的方法,其中,所述存储器和所述处理器通过内部连接通路互相通信。
36、第六方面,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,当计算机程序在计算机上运行时,实现上述各方面任一种实施方式中的方法。
37、上述技术方案中的优点或有益效果至少包括:
38、本申请通过对原始原点进行语义分析,再对分析后的源代码进行语义混淆,可以直接作用于原始源代码,对原始源代码进行一系列的转换和重组,使得原始原地阿妈难以理解和分析,可以加强泄露者对原始源代码的掌握难度,从而可以提高原始源代码的安全性和保密性,能够有效防止源代码泄露。
39、同时,本申请通过对混淆后的源代码进行语义分析,识别混淆后的源代码中的目标关键词,再将目标关键词替换为简单代码,即可实现将被混淆后的源代码回退到原始状态。
40、上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本申请进一步的方面、实施方式和特征将会是容易明白的。
本文档来自技高网...【技术保护点】
1.一种源代码混淆方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,对所述分析后的源代码进行语义混淆包括:
3.根据权利要求2所述的方法,其特征在于,对所述分析后的源代码执行注释混淆操作包括:在所述分析后的源代码的注释中使用unicode编码,通过unicode转义字符,将注释中的unicode编码自动翻译后转换为执行代码;
4.根据权利要求2所述的方法,其特征在于,对所述分析后的源代码执行语义含义颠倒操作包括:
5.根据权利要求2所述的方法,其特征在于,对所述分析后的源代码执行排他分支变为并行执行操作包括:
6.根据权利要求2所述的方法,其特征在于,对所述分析后的源代码执行内存级变量控制操作包括:
7.一种源代码混淆逆转方法,其特征在于,包括:
8.一种源代码混淆装置,其特征在于,包括:
9.一种源代码混淆逆转装置,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,当所述计算机程序在计算机上运行时,实
...【技术特征摘要】
1.一种源代码混淆方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,对所述分析后的源代码进行语义混淆包括:
3.根据权利要求2所述的方法,其特征在于,对所述分析后的源代码执行注释混淆操作包括:在所述分析后的源代码的注释中使用unicode编码,通过unicode转义字符,将注释中的unicode编码自动翻译后转换为执行代码;
4.根据权利要求2所述的方法,其特征在于,对所述分析后的源代码执行语义含义颠倒操作包括:
5.根据权利要求2所述的方法,其特征在于,对所...
【专利技术属性】
技术研发人员:陈秋宇,侯瑞霞,
申请(专利权)人:深圳润世华软件和信息技术服务有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。