编译结果处理方法、装置、存储介质、处理器及编译器制造方法及图纸

技术编号:17655468 阅读:33 留言:0更新日期:2018-04-08 08:39
本发明专利技术提供了一种编译结果处理方法、装置、存储介质、处理器及编译器,该方法包括:在对Lua程序源代码进行编译时,对所述Lua程序的函数的以下信息至少之一进行加密:局部变量名、函数定义所属的文件路径;将上述函数以及加密后的上述信息保存为编译结果。通过本发明专利技术,解决了相关技术中存在的由Lua编写的软件容易被逆向工程出具有可读性的文本源代码,从而导致软件缺乏安全性的问题,进而达到了提高软件安全性的效果。

【技术实现步骤摘要】
编译结果处理方法、装置、存储介质、处理器及编译器
本专利技术涉及编程语言、软件、反逆向工程领域,具体而言,涉及一种编译结果处理方法、装置、存储介质、处理器及编译器。
技术介绍
当今的计算机网络操作系统在代码设计时,更偏重于使用的方便性,有时容易忽略其本身的安全性,进而容易引发被Hacker(黑客)攻击的事件,造成大量的信息泄露,从而引发了不必要的损失。在Lua编程中,为了防止他人破解由Lua编写的软件,目前最常见的Lua反编译方法是对源代码编译后的二进制文件进行整体加密,等到执行时,先对文件进行整体解密,然后再解析运行。然而,不管采用多复杂的算法对编译后的二进制文件进行加密,相应的解密函数、密钥也是要保存在对外发布的程序中的,否则程序就无法把二进制执行文件解密然后执行。这样就给了Hacker有可乘之机,Hacker根本不需要知道解密步骤,也不需要去找出密钥,只需要在程序把二进制执行文件解密之后,执行之前那一刻进行拦截,就可以取到解密后的二进制执行文件,进而通过逆向工程得出文本源代码。就好像先把菜谱锁在箱子里,然后把开锁步骤藏在用于烹饪的人工智能(ArtificialIntelligence,简称为AI)机器人身上,我们把箱子和机器人打包卖给客户,我们只希望客户下命令给机器人,得到他想吃的,而不想泄漏我们的菜谱。虽然客户不知道打开箱子的步骤,但是客户可以在机器人打开箱子的瞬间进行拦截,复制出菜谱。箱子再结实,开锁步骤再复杂也无济于事,机器人终究都是要打开箱子,否则机器人就无法进行烹饪了。针对相关技术中存在的由Lua编写的软件容易被逆向工程出具有可读性的文本源代码,从而导致软件缺乏安全性的问题,目前尚未提出有效的解决方案。
技术实现思路
本专利技术实施例提供了一种编译结果处理方法、装置、存储介质、处理器及编译器,以至少解决相关技术中存在的由Lua编写的软件容易被逆向工程出具有可读性的文本源代码,从而导致软件缺乏安全性的问题。根据本专利技术的一个实施例,提供了一种编译结果处理方法,包括:在对Lua程序源代码进行编译时,对所述Lua程序的函数的以下信息至少之一进行加密:局部变量名、函数定义所属的文件路径;将所述函数以及加密后的所述信息保存为编译结果。可选地,对所述局部变量名进行加密包括:利用对称加密算法对所述局部变量名进行加密。可选地,利用对称加密算法对所述局部变量名进行加密包括:利用以下至少之一的对称加密算法对所述局部变量名进行加密:数据加密标准DES、高级加密标准AES、Blowfish。可选地,对所述函数定义所属的文件路径进行加密包括:利用对称加密算法对所述函数定义所属的文件路径进行加密。可选地,利用对称加密算法对所述函数定义所属的文件路径进行加密包括:利用以下至少之一的对称加密算法对所述函数定义所属的文件路径进行加密:数据加密标准DES、高级加密标准AES、Blowfish。根据本专利技术的另一个实施例,提供了一种编译结果处理装置,包括:加密模块,用于在对Lua程序源代码进行编译时,对所述Lua程序的函数的以下信息至少之一进行加密:局部变量名、函数定义所属的文件路径;保存模块,用于将所述函数以及加密后的所述信息保存为编译结果。可选地,在对所述局部变量名进行加密时,所述加密模块用于:利用对称加密算法对所述局部变量名进行加密。可选地,在对所述函数定义所属的文件路径进行加密时,所述加密模块用于:利用对称加密算法对所述函数定义所属的文件路径进行加密。根据本专利技术的又一个实施例,还提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时执行上述任一项所述的方法。根据本专利技术的又一个实施例,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述任一项所述的方法。根据本专利技术的又一个实施例,还提供了一种编译器,包括:一个或多个处理器,存储器,以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行上述任意一项所述的编译结果处理方法。通过本专利技术,是对Lua程序源代码进行编译时得到的函数的局部变量名和/或函数定义所属的文件路径进行加密的,而由于在解析编译后的函数时,是无需利用局部变量名以及函数定义所属的文件路径进行解析,因此,局部变量名和/或函数定义所属的文件路径的解密算法、密钥都是无需保存在编译结果中的,因此,即使反编译人员解析了编译后的函数,由于缺乏正确的局部变量名和/或函数定义所属的文件路径,无法阅读理解反编译出来的代码,解决了相关技术中存在的由Lua编写的软件容易被逆向工程出具有可读性的文本源代码,从而导致软件缺乏安全性的问题,进而达到了提高软件安全性的效果。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1是根据本专利技术实施例的编译结果处理方法的流程图;图2是文本源代码图;图3是代码编译后生成的二进制指令;图4是存在错误的文本源代码图;图5是运行存在错误的文本代码后生成的二进制指令图;图6是对文件路径和局部变量名加密后的代码片段;图7是对局部变量名加密后的代码片段;图8是对文件路径和局部变量名加密后的源代码;图9是逆向工程反编译文件路径和局部变量名后得到的明文代码;图10是解密traceback后的明文代码;图11是根据本专利技术实施例的编译结果处理装置的结构框图。具体实施方式下文中将参考附图并结合实施例来详细说明本专利技术。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。需要说明的是,本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。在本专利技术实施例中,针对相关技术中存在的由Lua编写的软件容易被逆向工程出具有可读性的文本源代码,从而导致软件缺乏安全性的问题,提出一种编译结果处理方法、装置、存储介质、处理器及编译器。下面结合实施例对本专利技术进行说明:图1是根据本专利技术实施例的编译结果处理方法的流程图,如图1所示,该流程包括如下步骤:步骤S102,在对Lua程序源代码进行编译时,对所述Lua程序的函数的以下信息至少之一进行加密:局部变量名(也可称为local变量名)、函数定义所属的文件路径;步骤S104,将上述函数以及上述加密后的上述信息保存为编译结果。其中,执行上述步骤的主体可以是编译器,可选地,可以由软件系统中的编译系统来执行。在上述实施例中,是对Lua程序源代码进行编译时,对所述Lua程序的函数的局部变量名和/或函数定义所属的文件路径进行加密的,而由于在解析编译后的函数时,是无需利用局部变量名以及函数定义所属的文件路径进行解析,因此,局部变量名和/或函数定义所属的文件路径的解密算法、密钥都是无需保存在编译结果中的,因此,即使反编译人员解析了编译后的函数,由于缺乏正确的局部变量名和/或函数定义所属的文件路径,无法阅读理解反编译出来的代码,解决了相关技术中存在的由Lua编写的软件容易被逆向工程出具有可读性的文本源代码,从而导致软件缺乏安全性的问题,进而达到了提高软件安全性的效果。在上述实施例中,通过对Lua程序的函数的本文档来自技高网
...
编译结果处理方法、装置、存储介质、处理器及编译器

【技术保护点】
一种编译结果处理方法,其特征在于,包括:在对Lua程序源代码进行编译时,对所述Lua程序的函数的以下信息至少之一进行加密:局部变量名、函数定义所属的文件路径;将所述函数以及加密后的所述信息保存为编译结果。

【技术特征摘要】
1.一种编译结果处理方法,其特征在于,包括:在对Lua程序源代码进行编译时,对所述Lua程序的函数的以下信息至少之一进行加密:局部变量名、函数定义所属的文件路径;将所述函数以及加密后的所述信息保存为编译结果。2.根据权利要求1所述的方法,其特征在于,对所述局部变量名进行加密包括:利用对称加密算法对所述局部变量名进行加密。3.根据权利要求2所述的方法,其特征在于,利用对称加密算法对所述局部变量名进行加密包括:利用以下至少之一的对称加密算法对所述局部变量名进行加密:数据加密标准DES、高级加密标准AES、Blowfish。4.根据权利要求1所述的方法,其特征在于,对所述函数定义所属的文件路径进行加密包括:利用对称加密算法对所述函数定义所属的文件路径进行加密。5.根据权利要求4所述的方法,其特征在于,利用对称加密算法对所述函数定义所属的文件路径进行加密包括:利用以下至少之一的对称加密算法对所述函数定义所属的文件路径进行加密:数据加密标准DES、高级加密标准AES、Blowfish。6.一种编译结果处理装置,其特征在于,包括:加密模块,用于在对Lua程序源代码进行...

【专利技术属性】
技术研发人员:张伟智
申请(专利权)人:网易杭州网络有限公司
类型:发明
国别省市:浙江,33

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

1