一种源代码混淆方法及装置制造方法及图纸

技术编号:35740390 阅读:11 留言:0更新日期:2022-11-26 18:43
本申请涉及一种源代码混淆方法及装置,涉及车辆代码开发技术领域,该源代码混淆方法包括以下步骤:获取原始状态的源代码中的Token,并获得对应的Token列表;基于Token列表的长度,生成对应长度的二进制编码列表;对Token列表中的Token,基于预设顺序进行排序,获得Token排序对应表;按照Token排序对应表中的Token排序,将源代码中的Token替换为二进制编码列表中对应的编码字符串。本申请对源代码中的Token进行收集,并按照预设顺序,对Token进行编码替换,从而在实现源代码混淆目的的前提下,保障混淆后源代码的运行可行性,满足使用需求。需求。需求。

【技术实现步骤摘要】
一种源代码混淆方法及装置


[0001]本申请涉及车辆代码开发
,具体涉及一种源代码混淆方法及装置。

技术介绍

[0002]在当前车辆代码开发
,往往根据技术需求,需要对源代码进行混淆,以实现对源代码的保密工作。
[0003]现阶段的源代码混淆技术,存在部分技术缺陷:
[0004]在代码混淆过程中,存在一定概率毁坏源代码,致使源代码无法正常运行,尽管满足了保密要求,但是可靠性较低,存在一定概率使得源代码无法执行其原有的正常功能。
[0005]因此,现提供一种源代码混淆技术,以弥补当前源代码混淆技术的缺陷。

技术实现思路

[0006]本申请提供一种源代码混淆方法及装置,对源代码中的Token进行收集,并按照预设顺序,对Token进行编码替换,从而在实现源代码混淆目的的前提下,保障混淆后源代码的运行可行性,满足使用需求。
[0007]第一方面,本申请提供了一种源代码混淆方法,所述方法包括以下步骤:
[0008]获取原始状态的源代码中的Token,并获得对应的Token列表;
[0009]基于Token列表的长度,生成对应长度的二进制编码列表;
[0010]对所述Token列表中的所述Token,基于预设顺序进行排序,获得Token排序对应表;
[0011]按照所述Token排序对应表中的Token排序,将所述源代码中的Token替换为所述二进制编码列表中对应的编码字符串。
[0012]需要说明的是,源代码的原始状态是指源代码进行源代码混淆处理之前源代码的状态,即未混淆的源代码。
[0013]另外,Token,其在计算机身份认证中是令牌(临时)的意思,在词法分析中是标记的意思,一般作为邀请、登录系统使用;
[0014]Token更通俗点可以叫暗号,在一些数据传输之前,要先进行暗号的核对,不同的暗号被授权不同的数据操作;
[0015]例如在USB1.1协议中定义了4类数据包:Token包、data包、handshake包和special包;
[0016]主机和USB设备之间连续数据的交换可以分为三个阶段,第一个阶段由主机发送Token包,不同的Token包内容不一样(暗号不一样)可以告诉设备做不同的工作,第二个阶段发送data包,第三个阶段由设备返回一个handshake包。
[0017]本申请实施例中,对源代码中的Token进行收集,并按照预设顺序,对Token进行编码替换,从而在实现源代码混淆目的的前提下,保障混淆后源代码的运行可行性,满足使用需求;
[0018]基于上述技术方案,能够使得混淆后的源代码可以被机器正确理解并正确运行,使得人类读者难于理解混淆后的源代码,并且混淆后的源代码具有可恢复性。
[0019]进一步的,所述获取原始状态的源代码中的Token,并获得对应的Token列表之前,所述方法还包括以下步骤:
[0020]获取所述源代码中的保留字,并获得对应的保留字集合。
[0021]进一步的,所述获取原始状态的源代码中的Token,并获得对应的Token列表中,所述方法还包括以下步骤:
[0022]基于所述保留字集合,筛选读取所述源代码中的Token,并获得对应的所述Token列表。
[0023]具体的,所述基于Token列表的长度,生成对应长度的二进制编码列表中,包括以下步骤:
[0024]基于Token列表的长度,按照格雷码编码模式,生成对应长度的二进制编码列表;其中,
[0025]所述二进制编码列表为格雷码列表。
[0026]具体的,所述按照所述Token排序对应表中的Token排序,将所述源代码中的Token替换为所述二进制编码列表中对应的编码字符串中,包括以下步骤:
[0027]按照所述Token排序对应表中的Token排序,对所述二进制编码列表进行对应排序,获得对应排序后二进制编码列表;
[0028]基于对应顺序,将所述源代码中的Token替换为所述对应排序后二进制编码列表中对应的编码字符串。
[0029]具体的,所述按照所述Token排序对应表中的Token排序,将所述源代码中的Token替换为所述二进制编码列表中对应的编码字符串中,包括以下步骤:
[0030]按照所述Token排序对应表中的Token排序,在所述二进制编码列表中的编码字符串前添加预设标志符,并替换所述源代码中的对应的所述Token。
[0031]进一步的,所述按照所述Token排序对应表中的Token排序,将所述源代码中的Token替换为所述二进制编码列表中对应的编码字符串之后,所述方法包括以下步骤:
[0032]基于所述二进制编码列表,对所述源代码中的编码字符串进行恢复处理,将所述源代码恢复为原始状态。
[0033]第二方面,本申请提供了一种源代码混淆装置,所述装置包括:
[0034]信息获取模块,其用于获取原始状态的源代码中的Token,并获得对应的Token列表;
[0035]预处理模块,其用于基于Token列表的长度,生成对应长度的二进制编码列表;
[0036]排序模块,其用于对所述Token列表中的所述Token,基于预设顺序进行排序,获得Token排序对应表;
[0037]编码替换模块,其用于按照所述Token排序对应表中的Token排序,将所述源代码中的Token替换为所述二进制编码列表中对应的编码字符串。
[0038]需要说明的是,源代码的原始状态是指源代码进行源代码混淆处理之前源代码的状态,即未混淆的源代码。
[0039]本申请实施例中,对源代码中的Token进行收集,并按照预设顺序,对Token进行编
码替换,从而在实现源代码混淆目的的前提下,保障混淆后源代码的运行可行性,满足使用需求;
[0040]基于上述技术方案,能够使得混淆后的源代码可以被机器正确理解并正确运行,使得人类读者难于理解混淆后的源代码,并且混淆后的源代码具有可恢复性。
[0041]进一步的,所述信息获取模块还用于获取所述源代码中的保留字,并获得对应的保留字集合;
[0042]所述信息获取模块还用于基于所述保留字集合,筛选读取所述源代码中的Token,并获得对应的所述Token列表。
[0043]进一步的,所述信息获取模块还用于基于所述保留字集合,筛选读取所述源代码中的Token,并获得对应的所述Token列表。
[0044]进一步的,预处理模块还用于基于Token列表的长度,按照格雷码编码模式,生成对应长度的二进制编码列表;其中,
[0045]所述二进制编码列表为格雷码列表。
[0046]进一步的,所述编码替换模块还用于按照所述Token排序对应表中的Token排序,对所述二进制编码列表进行对应排序,获得对应排序后二进制编码列表;
[0047]基于对应顺序,将所述源代码中的Token替换为所述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种源代码混淆方法,其特征在于,所述方法包括以下步骤:获取原始状态的源代码中的Token,并获得对应的Token列表;基于Token列表的长度,生成对应长度的二进制编码列表;对所述Token列表中的所述Token,基于预设顺序进行排序,获得Token排序对应表;按照所述Token排序对应表中的Token排序,将所述源代码中的Token替换为所述二进制编码列表中对应的编码字符串。2.如权利要求1所述的源代码混淆方法,其特征在于,所述获取原始状态的源代码中的Token,并获得对应的Token列表之前,所述方法还包括以下步骤:获取所述源代码中的保留字,并获得对应的保留字集合。3.如权利要求2所述的源代码混淆方法,其特征在于,所述获取原始状态的源代码中的Token,并获得对应的Token列表中,所述方法还包括以下步骤:基于所述保留字集合,筛选读取所述源代码中的Token,并获得对应的所述Token列表。4.如权利要求1所述的源代码混淆方法,其特征在于,所述基于Token列表的长度,生成对应长度的二进制编码列表中,包括以下步骤:基于Token列表的长度,按照格雷码编码模式,生成对应长度的二进制编码列表;其中,所述二进制编码列表为格雷码列表。5.如权利要求1所述的源代码混淆方法,其特征在于,所述按照所述Token排序对应表中的Token排序,将所述源代码中的Token替换为所述二进制编码列表中对应的编码字符串中,包括以下步骤:按照所述Token排序对应表中的Token排序,对所述二进制编码列表进行对应排序,获得对应排序后二进制编码列表;基于对应顺序,将所述源代码中的Token替换为所述对应排序后二进制编码列表中对应的编码字符串。6.如权利要求1所述的...

【专利技术属性】
技术研发人员:余亮陈秀李琪
申请(专利权)人:东风商用车有限公司
类型:发明
国别省市:

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

1