System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 源代码混淆方法、混淆逆转方法、相应装置及存储介质制造方法及图纸_技高网

源代码混淆方法、混淆逆转方法、相应装置及存储介质制造方法及图纸

技术编号:39935177 阅读:4 留言:0更新日期:2024-01-08 22:07
本申请提出了一种源代码混淆方法、混淆逆转方法、相应装置及存储介质,该源代码混淆方法包括:对原始源代码进行语义分析,获得分析后的源代码;获取原始源代码运行时的配置参数;根据配置参数,确定混淆级别为深度混淆时,对分析后的源代码进行语义混淆;输出混淆后的源代码。该源代码混淆逆转方法包括:对混淆后的源代码进行语义分析,识别混淆后的源代码中的目标关键词,目标关键词包括位运算符、unicode转义字符和类型重定义关键词;将目标关键词替换为简单代码,以实现混淆后的源代码逆转为原始源代码;输出原始源代码。本申请能够有效防止源代码泄露,还可以实现混淆后的源代码逆转为原始源代码。

【技术实现步骤摘要】

本申请涉及一种软件安全,尤其涉及一种源代码混淆方法、混淆逆转方法、相应装置及存储介质


技术介绍

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-6任一项所述的方法,或实现如权利要求7所述的方法。

...

【技术特征摘要】

1.一种源代码混淆方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,对所述分析后的源代码进行语义混淆包括:

3.根据权利要求2所述的方法,其特征在于,对所述分析后的源代码执行注释混淆操作包括:在所述分析后的源代码的注释中使用unicode编码,通过unicode转义字符,将注释中的unicode编码自动翻译后转换为执行代码;

4.根据权利要求2所述的方法,其特征在于,对所述分析后的源代码执行语义含义颠倒操作包括:

5.根据权利要求2所述的方法,其特征在于,对所...

【专利技术属性】
技术研发人员:陈秋宇侯瑞霞
申请(专利权)人:深圳润世华软件和信息技术服务有限公司
类型:发明
国别省市:

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

1