可执行文件溯源方法、装置、电子设备和存储介质与流程

文档序号:34365043发布日期:2023-06-04 19:46阅读:29来源:国知局
可执行文件溯源方法、装置、电子设备和存储介质与流程

本技术涉及文件溯源,特别涉及一种可执行文件溯源方法、装置、电子设备和存储介质。


背景技术:

1、智能化的电子设备一般都包含单片机,软件开发人员将源代码编译形成可执行文件(该文件为二进制格式),再将可执行文件烧录到单片机的闪存。单片机每次上电启动后,会从闪存读取可执行文件的指令和数据。单片机的行为由可执行文件决定,而可执行文件又由源代码决定,因此,源代码、可执行文件和单片机行为具有唯一的对应关系。当电子设备的软件出现问题时,一般需要溯源找到对应的源代码,才能更好地进行问题复现和分析。

2、当前,软件开发人员通过在源代码中标记版本号,版本号会在源代码编译过程被写入可执行文件。将可执行文件烧录到单片机后,单片机解析出版本号,再通过人机界面或者上位机进行显示,以便于获知单片机运行的源代码版本,对可执行文件溯源。然而,这种方法需要在源代码中标记版本号,并且每次修改源代码都需要同步修改版本号,极大依赖于软件开发人员的规范操作,可能存在漏修改的情况。


技术实现思路

1、本技术旨在至少解决现有技术中存在的技术问题之一。为此,本技术提出一种可执行文件溯源方法、装置、电子设备和存储介质,能够解决现有的文件溯源技术需要标记和修改版本号,存在漏修改的问题。

2、根据本技术第一方面实施例的可执行文件溯源方法,包括:获取可执行文件;根据所述可执行文件生成第一校验码;对源代码集合执行查找策略,所述源代码集合包括多套源代码,所述查找策略包括以下步骤:从所述源代码集合中选择目标源代码;根据所述目标源代码生成第二校验码;判断所述第一校验码和所述第二校验码是否相同,若所述第一校验码和所述第二校验码相同,则确认所述目标源代码为所述可执行文件对应的所述源代码,否则重复执行上述步骤。

3、根据本技术第一方面实施例的可执行文件溯源方法,至少具有如下有益效果:

4、通过获取可执行文件,根据可执行文件生成第一校验码,从源代码集合中选择目标源代码,根据目标源代码生成第二校验码,若第一校验码和第二校验码相同,则确认目标源代码为可执行文件对应的源代码,溯源成功。根据本技术第一方面实施例的可执行文件溯源方法,相较于传统的文件溯源技术,在不对源文件进行标记、修改版本号的情况下,实现文件溯源,避免了漏修改的问题。

5、根据本技术的一些实施例,所述获取可执行文件,包括:

6、确定所述可执行文件在所述闪存中的起始地址;

7、从所述起始地址开始遍历所述闪存的所述存储单元得到所述可执行文件。

8、根据本技术的一些实施例,所述从所述起始地址开始遍历所述闪存的所述存储单元得到所述可执行文件,包括:

9、从所述起始地址开始,以m个字节长度为遍历单位,遍历所述闪存的所述存储单元,从所述起始地址开始判断遍历的所述存储单元的数据是否为0xff,当连续出现k个所述遍历单位的所述存储单元的数据全部为0xff时停止遍历,m和k皆为正整数;

10、依次读取所有遍历的所述存储单元的数据得到所述可执行文件。

11、根据本技术的一些实施例,所述从所述起始地址开始遍历所述闪存的所述存储单元得到所述可执行文件,包括:

12、获取目标数据段的长度,所述目标数据段为所述可执行文件在编译过程中写入了长度信息的数据段;

13、对各个目标数据段的长度进行累加得到累计长度s,s为正整数;

14、从所述起始地址开始,以m个字节长度为遍历单位,遍历所述闪存的所述存储单元,从所述起始地址后的第s个字节开始判断遍历的所述存储单元的数据是否为0xff,当连续出现k个所述遍历单位的所述存储单元的数据全部为0xff时停止遍历,m和k皆为正整数;

15、依次读取所有遍历的所述存储单元的数据得到所述可执行文件。

16、根据本技术的一些实施例,所述根据所述目标源代码生成第二校验码,包括:编译所述目标源代码生成目标二进制文件;

17、根据所述目标二进制文件生成第二校验码。

18、根据本技术的一些实施例,所述编译所述目标源代码生成目标二进制文件,包括:编译所述目标源代码得到过渡二进制文件;

19、在所述过渡二进制文件的文件尾添加y个内容为0xff的数据得到目标二进制文件,y为正整数。

20、根据本技术的一些实施例,通过以下公式计算得到y:

21、y=m-n+k*m

22、其中,n通过以下步骤获取:获取所述过渡二进制文件的数据量z;以m为除数,对z取余得到余数n。

23、根据本技术第二方面实施例的可执行文件溯源装置,包括:可执行文件获取模块,用于获取可执行文件;第一校验码生成模块,用于根据所述可执行文件生成第一校验码;查找策略执行模块,用于对源代码集合执行查找策略,所述源代码集合包括多套源代码,所述查找策略包括以下步骤:从所述源代码集合中选择目标源代码,根据所述目标源代码生成第二校验码,判断所述第一校验码和所述第二校验码是否相同,若所述第一校验码和所述第二校验码相同,则确认所述目标源代码为所述可执行文件对应的所述源代码,否则重复执行上述步骤。

24、根据本技术第二方面实施例的可执行文件溯源装置,至少具有如下有益效果:

25、通过获取可执行文件,根据可执行文件生成第一校验码,从源代码集合中选择目标源代码,根据目标源代码生成第二校验码,若第一校验码和第二校验码相同,则确认目标源代码为可执行文件对应的源代码,溯源成功。根据本技术第二方面实施例的可执行文件溯源装置,相较于传统的文件溯源技术,在不对源文件进行标记、修改版本号的情况下,实现文件溯源,避免了漏修改的问题。

26、根据本技术第三方面实施例的电子设备,包括:至少一个处理器;至少一个存储器,用于存储至少一个程序;当至少一个所述程序被至少一个所述处理器执行时实现如上述的可执行文件溯源方法。

27、根据本技术第三方面实施例的电子设备,至少具有如下有益效果:

28、通过获取可执行文件,根据可执行文件生成第一校验码,从源代码集合中选择目标源代码,根据目标源代码生成第二校验码,若第一校验码和第二校验码相同,则确认目标源代码为可执行文件对应的源代码,溯源成功。根据本技术第三方面实施例的可电子设备,相较于传统的文件溯源技术,在不对源文件进行标记、修改版本号的情况下,实现文件溯源,避免了漏修改的问题。

29、根据本技术第四方面实施例的计算机可读存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序被处理器执行时用于实现如上述的可执行文件溯源方法。

30、根据本技术第四方面实施例的计算机可读存储介质,至少具有如下有益效果:

31、通过获取可执行文件,根据可执行文件生成第一校验码,从源代码集合中选择目标源代码,根据目标源代码生成第二校验码,若第一校验码和第二校验码相同,则确认目标源代码为可执行文件对应的源代码,溯源成功。根据本技术第四方面实施例的计算机可读存储介质,相较于传统的文件溯源技术,在不对源文件进行标记、修改版本号的情况下,实现文件溯源,避免了漏修改的问题。

32、本技术的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1