闭源项目代码审计方法、装置,电子设备及存储介质制造方法及图纸

技术编号:35863469 阅读:17 留言:0更新日期:2022-12-07 10:54
本申请提供一种闭源项目代码审计方法、装置,电子设备及存储介质,该方法包括:调用代码审计工具对闭源项目对应的源代码文件进行编译,且在编译过程中,将编译完成后的文件存储在本地;其中,所述源代码文件通过对所述闭源项目进行反编译后得到;若当前进行编译的源代码文件编译失败,获取本地存储的目标文件;其中,所述目标文件为已编译完成的源代码文件所对应的文件;继续调用所述代码审计工具对所述目标文件进行审计。通过上述方式能够实现在编译失败后,对已编译完成的源代码文件所对应的文件进行审计。文件进行审计。文件进行审计。

【技术实现步骤摘要】
闭源项目代码审计方法、装置,电子设备及存储介质


[0001]本申请涉及互联网
,具体而言,涉及一种闭源项目代码审计方法、装置,电子设备及存储介质。

技术介绍

[0002]代码审计是指通过对代码间的逻辑检查发现其中的无效、无用代码或是有着安全隐患的代码。代码审计的前提在于需要源代码,代码审计的具体过程为:通过代码审计工具对源代码进行编译,在编译完成后,进行审计。
[0003]尽管目前很多组件都是开源软件,可以通过在开源平台下载这些组件的源代码,可仍然有很多项目是闭源的,即不公开源代码。目前,一些编程语言的反编译技术也较为成熟,大部分的闭源项目也可以通过反编译技术来获取还原度较高的源代码。但同时被反编译的代码有时会有一些语法语义上的缺陷,进而导致后续编译会失败。当编译失败后,代码审计工具会自动退出,进而无法完成后续的审计工作。

技术实现思路

[0004]本申请实施例的目的在于提供一种闭源项目代码审计方法、装置,电子设备及存储介质,以改善“当编译失败后,代码审计工具会自动退出,进而无法完成后续的审计工作”的问题。
[0005]本专利技术是这样实现的:
[0006]第一方面,本申请实施例提供一种闭源项目代码审计方法,包括:调用代码审计工具对闭源项目对应的源代码文件进行编译,且在编译过程中,将编译完成后的文件存储在本地;其中,所述源代码文件通过对所述闭源项目进行反编译后得到;若当前进行编译的源代码文件编译失败,获取本地存储的目标文件;其中,所述目标文件为已编译完成的源代码文件所对应的文件;继续调用所述代码审计工具对所述目标文件进行审计。
[0007]在本申请实施例中,通过将代码审计工具对闭源项目对应的源代码文件进行编译完后的文件存储在本地,进而使得在代码审计工具对当前进行编译的源代码文件编译失败导致停止运行后,能够通过重新调用代码审计工具来实现对本地存储的编译完成后的文件的审计。可见,通过上述方式能够实现在编译失败后,对已编译完成的源代码文件所对应的文件继续进行审计。
[0008]结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述若当前进行编译的源代码文件编译失败,获取本地存储的目标文件,包括:若所述当前进行编译的源代码文件编译失败,跳过所述当前进行编译的源代码文件,继续对下一个源代码文件进行编译,直至遍历完与所述闭源项目对应的所有源代码文件;获取本地存储的所有所述目标文件。
[0009]在本申请实施例中,若是当前进行编译的源代码文件编译失败,则会自动跳过当前进行编译的源代码文件,然后对下一个源代码文件进行编译,以此类推,直至遍历完与闭
源项目对应的所有源代码文件;通过该方式,以便于获取得到所有能够成功编译的源代码文件,进而使得后续对闭源项目的审计能够覆盖到更多的源代码文件。
[0010]结合上述第一方面提供的技术方案,在一些可能的实现方式中,在所述调用代码审计工具对闭源项目对应的源代码文件进行编译之前,所述方法还包括:获取所述闭源项目对应的源代码文件;对所述源代码文件进行优先级排序;其中,所述源代码文件的依赖越少,该源代码文件对应的优先级越高;相应的,所述调用代码审计工具对闭源项目对应的源代码文件进行编译,包括:调用所述代码审计工具,基于所述闭源项目对应的源代码文件的优先级从高至低的排序顺序依次进行编译。
[0011]在本申请实施例中,对源代码文件的依赖的数量进行排序,源代码文件的依赖越少则其优先级越高,由于源代码文件的依赖越少则反编译的缺陷越少,因此,通过该方式,使得后续代码审计工具基于排序顺序进行编译,能够提高编译过程中的成功编译的源代码文件的数量,即,通过该方式,能够使得后续对闭源项目的审计能够覆盖到更多的源代码文件。
[0012]结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述获取所述闭源项目对应的源代码文件,包括:获取所述闭源项目;对所述闭源项目进行反编译,生成所述闭源项目对应的源代码文件。
[0013]结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述代码审计工具为CodeQL;所述获取本地存储的目标文件,包括:触发所述CodeQL的导出指令将本地存储的所有trap格式文件导出;其中,所述trap格式文件为所述目标文件;将所述trap文件转换为CodeQL数据库文件;相应的,所述继续调用所述代码审计工具对所述目标文件进行审计,包括:继续调用所述代码审计工具对所述CodeQL数据库文件进行审计。
[0014]结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述闭源项目为闭源Java项目;所述调用代码审计工具对闭源项目对应的源代码文件进行编译,包括:调用所述CodeQL,并触发所述CodeQL的编译指令,以使用javac编译器对所述闭源Java项目对应的源代码文件进行编译。
[0015]结合上述第一方面提供的技术方案,在一些可能的实现方式中,在所述调用代码审计工具对闭源项目对应的源代码文件进行编译之前,所述方法还包括:调用Java反编译工具对所述闭源Java项目进行反编译,生成所述闭源Java项目对应的源代码文件。
[0016]第二方面,本申请实施例提供一种闭源项目代码审计装置,包括:编译模块,用于调用代码审计工具对闭源项目对应的源代码文件进行编译,且在编译过程中,将编译完成后的文件存储在本地;其中,所述源代码文件通过对所述闭源项目进行反编译后得到;获取模块,用于若当前进行编译的源代码文件编译失败,获取本地存储的目标文件;其中,所述目标文件为已编译完成的源代码文件所对应的文件;审计模块,用于继续调用所述代码审计工具对所述目标文件进行审计。
[0017]第三方面,本申请实施例提供一种电子设备,包括:处理器和存储器,所述处理器和所述存储器连接;所述存储器用于存储程序;所述处理器用于调用存储在所述存储器中的程序,执行如上述第一方面实施例和/或结合上述第一方面实施例的一些可能的实现方式提供的方法。
[0018]第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,
Memory,PROM)、可擦可编程序只读存储器(Erasable Programmable Read

Only Memory,EPROM),以及电可擦编程只读存储器(Electric Erasable Programmable Read

Only Memory,EEPROM)。存储器120用于存储程序,处理器110在接收到执行指令后,执行该程序。
[0031]需要说明的是,图1所示的结构仅为示意,本申请实施例提供的电子设备100还可以具有比图1更少或更多的组件,或是具有与图1所示不同的配置。此外,图1所示的各组件可以通过软件、硬件或其组合实现。
[0032]请参阅图2,图2为本申请实施例提供的闭源项目代码审计方法的步骤流程图,该方法应用于图1所示的电子设备100。需要说明的是,本申请实施例提供的闭源项目代码审计方法不以图2及以下所本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种闭源项目代码审计方法,其特征在于,包括:调用代码审计工具对闭源项目对应的源代码文件进行编译,且在编译过程中,将编译完成后的文件存储在本地;其中,所述源代码文件通过对所述闭源项目进行反编译后得到;若当前进行编译的源代码文件编译失败,获取本地存储的目标文件;其中,所述目标文件为已编译完成的源代码文件所对应的文件;继续调用所述代码审计工具对所述目标文件进行审计。2.根据权利要求1所述的方法,其特征在于,所述若当前进行编译的源代码文件编译失败,获取本地存储的目标文件,包括:若所述当前进行编译的源代码文件编译失败,跳过所述当前进行编译的源代码文件,继续对下一个源代码文件进行编译,直至遍历完与所述闭源项目对应的所有源代码文件;获取本地存储的所有所述目标文件。3.根据权利要求1

2中任一项所述的方法,其特征在于,在所述调用代码审计工具对闭源项目对应的源代码文件进行编译之前,所述方法还包括:获取所述闭源项目对应的源代码文件;对所述源代码文件进行优先级排序;其中,所述源代码文件的依赖越少,该源代码文件对应的优先级越高;相应的,所述调用代码审计工具对闭源项目对应的源代码文件进行编译,包括:调用所述代码审计工具,基于所述闭源项目对应的源代码文件的优先级从高至低的排序顺序依次进行编译。4.根据权利要求3所述的方法,其特征在于,所述获取所述闭源项目对应的源代码文件,包括:获取所述闭源项目;对所述闭源项目进行反编译,生成所述闭源项目对应的源代码文件。5.根据权利要求1所述的方法,其特征在于,所述代码审计工具为CodeQL;所述获取本地存储的目标文件,包括:触发所述CodeQL的导出指令将本地存储的所有trap格式文件导出;其中,所述trap格式文件为...

【专利技术属性】
技术研发人员:史辛泽徐钟豪谢忱刘伟
申请(专利权)人:成都斗象信息科技有限公司
类型:发明
国别省市:

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

1