CN110908664B - 嵌入式卡件程序处理方法、装置、计算机设备和存储介质 - Google Patents
嵌入式卡件程序处理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN110908664B CN110908664B CN201910932860.1A CN201910932860A CN110908664B CN 110908664 B CN110908664 B CN 110908664B CN 201910932860 A CN201910932860 A CN 201910932860A CN 110908664 B CN110908664 B CN 110908664B
- Authority
- CN
- China
- Prior art keywords
- program
- embedded card
- embedded
- determining
- configuration information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000012545 processing Methods 0.000 title claims description 7
- 238000004590 computer program Methods 0.000 claims description 20
- 238000004458 analytical method Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/74—Reverse engineering; Extracting design information from source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及一种嵌入式卡件程序处理方法、装置、计算机设备和存储介质。所述方法包括:确定嵌入式卡件的嵌入式卡件程序;获取所述嵌入式卡件对应的程序配置信息;确定所述嵌入式卡件程序的各程序段和所述各程序段的地址空间分布;确定所述嵌入式卡件程序的运行空间;根据所述程序配置信息、所述运行空间以及所述各程序段的地址空间分布,将所述各程序段重新链接得到结构化的嵌入式卡件程序。采用本方法能够针对嵌入式卡件程序添加程序装载信息和运行信息,从而能够对非结构化的嵌入式卡件程序进行修复,转换为结构化的嵌入式卡件程序,结构化的嵌入式卡件程序能够更好的复用结构化程序逆向时的各种工具、方法,提高逆向工程时的质量和效率。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种嵌入式卡件程序处理方法、装置、计算机设备和存储介质。
背景技术
逆向工程(又称逆向技术),是一种产品设计技术再现过程,即对一项目标产品进行逆向分析及研究,从而演绎并得出该产品的处理流程、组织结构、功能特性及技术规格等设计要素,以制作出功能相近,但又不完全一样的产品。
当前逆向工程的主要应用领域为结构化程序逆向工程,这类程序具有规范的文件格式,包含了程序动态执行与静态分析相关的程序信息。PE、ELF等格式的目标代码就是典型的结构化二进制程序。在对结构化程序逆向过程中使用的各种工具和方法,并不能移植到嵌入式卡件中。也即是说,传统的逆向工具,无法直接识别嵌入式卡件上的程序。
在当前工程界,针对嵌入式卡件的逆向工程主要借用的是嵌入式卡件开发过程中用到的工具集,如各类仿真器、JTAG调试器,通过这些工具,聚焦重点代码逻辑功能,针对性地对模块进行具体而详细地跟踪分析,记录比较关键的中间结果或指令地址。然而,上述方法聚焦了局部关键指令的执行与分析,无法从整体上了解代码的基本思路,缺乏静态反汇编过程。
发明内容
基于此,有必要针对上述技术问题,提供一种能够将非结构化的嵌入式卡件程序转换为结构化的嵌入式卡件程序的嵌入式卡件程序处理方法、装置、计算机设备和存储介质。
一种嵌入式卡件程序处理方法,所述方法包括:
确定嵌入式卡件的嵌入式卡件程序;
获取所述嵌入式卡件对应的程序配置信息;
确定所述嵌入式卡件程序的各程序段和所述各程序段的地址空间分布;
确定所述嵌入式卡件程序的运行空间;
根据所述程序配置信息、所述运行空间以及所述各程序段的地址空间分布,将所述各程序段重新链接得到结构化的嵌入式卡件程序。
在其中一个实施例中,所述确定所述嵌入式卡件程序的运行空间的步骤,包括:
获取所述嵌入式卡件的硬件处理器手册;
采用所述硬件处理器手册,确定所述嵌入式卡件程序的运行空间。
在其中一个实施例中,所述根据所述程序配置信息、所述运行空间以及所述各程序段的地址空间分布,将所述各程序段重新链接得到结构化的嵌入式卡件程序的步骤,包括:
按照所述程序配置信息和所述运行空间加载所述嵌入式卡件程序;
获取链接工具集;
采用所述链接工具集,根据所述各程序段的地址空间分布将所述各程序段重新链接,得到结构化的嵌入式卡件程序。
在其中一个实施例中,所述程序配置信息包括:编译器和链接器配置的信息以及输出信息,所述编译器和链接器的配置信息包括程序装载地址和程序入口地址。
在其中一个实施例中,还包括:
对所述结构化的嵌入式卡件程序进行逆向工程。
一种嵌入式卡件程序处理装置,所述装置包括:
嵌入式卡件程序确定模块,用于确定嵌入式卡件的嵌入式卡件程序;
程序配置信息获取模块,用于获取所述嵌入式卡件对应的程序配置信息;
程序段信息获取模块,用于确定所述嵌入式卡件程序的各程序段和所述各程序段的地址空间分布;
运行空间确定模块,用于确定所述嵌入式卡件程序的运行空间;
程序重新链接模块,用于根据所述程序配置信息以及所述各程序段的地址空间分布,将所述各程序段重新链接得到结构化的嵌入式卡件程序。
在其中一个实施例中,所述运行空间确定模块,包括:
获取所述嵌入式卡件的硬件处理器手册;
采用所述硬件处理器手册,确定所述嵌入式卡件程序的运行空间。
在其中一个实施例中,所述程序重新链接模块,用于:
按照所述程序配置信息和所述运行空间加载所述嵌入式卡件程序;
获取链接工具集;
采用所述链接工具集,根据所述各程序段的地址空间分布将所述各程序段重新链接,得到结构化的嵌入式卡件程序。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
确定嵌入式卡件的嵌入式卡件程序;
获取所述嵌入式卡件对应的程序配置信息;
确定所述嵌入式卡件程序的各程序段和所述各程序段的地址空间分布;
确定所述嵌入式卡件程序的运行空间;
根据所述程序配置信息、所述运行空间以及所述各程序段的地址空间分布,将所述各程序段重新链接得到结构化的嵌入式卡件程序。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
确定嵌入式卡件的嵌入式卡件程序;
获取所述嵌入式卡件对应的程序配置信息;
确定所述嵌入式卡件程序的各程序段和所述各程序段的地址空间分布;
确定所述嵌入式卡件程序的运行空间;
根据所述程序配置信息、所述运行空间以及所述各程序段的地址空间分布,将所述各程序段重新链接得到结构化的嵌入式卡件程序。
上述嵌入式卡件程序处理方法、装置、计算机设备和存储介质,确定嵌入式卡件的嵌入式卡件程序,并确定嵌入式卡件对应的程序配置信息和运行空间,以及确定嵌入式卡件程序的各程序段和各程序段的地址空间分布,最后根据程序配置信息以及各程序段的地址空间分布,对各程序段重新链接得到结构化的嵌入式卡件程序,应用本申请对能够针对嵌入式卡件程序添加程序装载信息和运行信息,从而能够对非结构化的嵌入式卡件程序进行修复,转换为结构化的嵌入式卡件程序,结构化的嵌入式卡件程序能够更好的复用结构化程序逆向时的各种工具、方法,提高逆向工程时的质量和效率。
附图说明
图1为一个实施例中嵌入式卡件程序处理方法的流程图;
图2为一个实施例中嵌入式卡件程序处理装置的结构框图;
图3为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
传统的逆向工具,由于缺少程序装载信息和运行信息,无法直接识别嵌入式卡件上的程序,本申请针对这个问题,提出了一种嵌入式卡件程序处理策略,解决传统的嵌入式卡件逆向难以静态反汇编的问题,是一种对非结构化程序做结构化修复的方法。通过修复,原先的嵌入式卡件程序能够更好的复用结构化程序逆向时的各种工具、方法,提高逆向的质量和效率。
在一个实施例中,如图1所示,提供了一种嵌入式卡件程序处理方法的流程图,可以应用于电脑等具有计算功能的终端,所述方法具体可以包括以下步骤:
步骤S102,确定嵌入式卡件的嵌入式卡件程序。
嵌入式卡件是指的具有嵌入式系统的设备或者部件,嵌入式系统是用于控制、监视或者辅助操作机器和设备的装置,是一种专用的计算机系统,以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
在具体实现中,嵌入式卡件的嵌入式卡件程序为非结构化的程序,因此传统的逆向工具,无法直接识别嵌入式卡件程序。当然,本申请实施例可以应用于除嵌入式卡件之外其他类型设备中的非结构化的程序,对此并不限制。
步骤S104,获取所述嵌入式卡件对应的程序配置信息。
在本申请中,确定嵌入式卡件的嵌入式卡件程序,并获取嵌入式卡件对应的程序配置信息,其中,嵌入式卡件的程序配置信息可以包括编译器和链接器配置信息以及输出信息等,其中,编译器和链接器配置信息包括程序装载地址和程序入口地址等。
在一种实施例中,通过程序装载地址可以将嵌入式卡件程序从磁盘拷贝到内存中,然后可以根据程序入口地址确定程序运行的入口,从而执行整个嵌入式卡件程序。输出信息是指的最后输出的是什么类型的文件,比如可以输出可执行文件。
步骤S106,确定所述嵌入式卡件程序的各程序段和所述各程序段的地址空间分布。
嵌入式卡件程序可以由多个程序段(Segment)组成,本申请确定嵌入式卡件程序中的各程序段,以及各程序段的地址空间分布,也即是各程序段分别所占用的内存。
步骤S108,确定所述嵌入式卡件程序的运行空间。
运行空间是指的运行嵌入式卡件程序所需要的内存空间。在一种优选实施例中,所述步骤S108可以包括如下步骤:获取所述嵌入式卡件的硬件处理器手册;采用所述硬件处理器手册,确定所述嵌入式卡件程序的运行空间。
在具体实施过程中,可以获取到嵌入式卡件的硬件处理器手册,从而能够根据硬件处理器手册,确定嵌入式卡件程序的运行空间。其中,硬件处理器手册是收录了嵌入式卡件资料的工具书,里面介绍嵌入式卡件的相关结构和使用方法等,因此可以基于硬件处理器手册来查询获取到关于嵌入式卡件的所需资料。
步骤S110,根据所述程序配置信息、所述运行空间以及所述各程序段的地址空间分布,将所述各程序段重新链接得到结构化的嵌入式卡件程序。
在本申请中,根据程序配置信息和运行空间可以确定程序装载信息和运行信息,从而可以根据已经确定的各程序段的地址空间分布,来对于各程序段进行重新链接,从而得到结构化的嵌入式卡件程序。
在一种优选实施例中,所述步骤S110可以包括如下步骤:按照所述程序配置信息和所述运行空间加载所述嵌入式卡件程序;获取链接工具集;采用所述链接工具集,根据所述各程序段的地址空间分布将所述各程序段重新链接,得到结构化的嵌入式卡件程序。
链接工具集是一个程序集合,通过链接工具集可以将一个或多个程序外加库链接为一个可执行文件。具体的,在本申请中可以根据程序配置信息中的程序加载地址和程序入口地址来确定程序装载信息,已从相应位置装载到嵌入式卡件程序,然后再根据基于处理器手册确定的运行空间,再确定程序运行信息,本申请通过程序装载信息和程序运行信息加载嵌入式卡件程序,即可进一步获取链接工具集,基于嵌入式卡件的各程序段的空间地址分布,对于各个程序段重新链接,得到结构化的嵌入式卡件程序。
应用本申请实施例可以首先确定嵌入式卡件的嵌入式卡件程序,并确定嵌入式卡件对应的程序配置信息和运行空间,以及确定嵌入式卡件程序的各程序段和各程序段的地址空间分布,最后根据程序配置信息以及各程序段的地址空间分布,对各程序段重新链接得到结构化的嵌入式卡件程序,应用本申请对能够针对嵌入式卡件程序添加程序装载信息和运行信息,从而能够对非结构化的嵌入式卡件程序进行修复,转换为结构化的嵌入式卡件程序。
在一种优选实施例中,所述方法还可以包括如下步骤:对所述结构化的嵌入式卡件程序进行逆向工程。
应用本申请可以将嵌入式卡件的非结构化的嵌入式卡件程序,转换为结构化的嵌入式卡件程序。转换后的结构化的入式卡件程序可以被传统的逆向分析工具识别,进而提升逆向分析的质量和效率。
在逆向的过程中,通过传统的静态分析逆向工具,可以快速的研究程序的整体结构和语义,再结合关键代码的动态分析,能够快速准确的完成逆向工程。除此之外,本申请转换程序的方法通用,不受嵌入式卡件的硬件版本、类型等影响,适用范围广。
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图2所示,提供了一种嵌入式卡件程序处理装置,包括:其中:
嵌入式卡件程序确定模块202,用于确定嵌入式卡件的嵌入式卡件程序;
程序配置信息获取模块204,用于获取所述嵌入式卡件对应的程序配置信息;
程序段信息获取模块206,用于确定所述嵌入式卡件程序的各程序段和所述各程序段的地址空间分布;
运行空间确定模块208,用于确定所述嵌入式卡件程序的运行空间;
程序重新链接模块210,用于根据所述程序配置信息以及所述各程序段的地址空间分布,将所述各程序段重新链接得到结构化的嵌入式卡件程序。
本申请的嵌入式卡件程序处理装置,可以通过确定嵌入式卡件的嵌入式卡件程序,并确定嵌入式卡件对应的程序配置信息和运行空间,以及确定嵌入式卡件程序的各程序段和各程序段的地址空间分布,最后根据程序配置信息以及各程序段的地址空间分布,对各程序段重新链接得到结构化的嵌入式卡件程序,应用本申请对能够针对嵌入式卡件程序添加程序装载信息和运行信息,从而能够对非结构化的嵌入式卡件程序进行修复,转换为结构化的嵌入式卡件程序,结构化的嵌入式卡件程序能够更好的复用结构化程序逆向时的各种工具、方法,提高逆向工程时的质量和效率。
在其中一个实施例中,所述运行空间确定模块208,具体用于获取所述嵌入式卡件的硬件处理器手册;采用所述硬件处理器手册,确定所述嵌入式卡件程序的运行空间。
在其中一个实施例中,所述程序重新链接模块210,具体用于按照所述程序配置信息和所述运行空间加载所述嵌入式卡件程序;获取链接工具集;采用所述链接工具集,根据所述各程序段的地址空间分布将所述各程序段重新链接,得到结构化的嵌入式卡件程序。
在其中一个实施例中,所述程序配置信息包括:编译器和链接器的配置信息以及输出信息,所述编译器和链接器的配置信息包括程序装载地址和程序入口地址。
在其中一个实施例中,所述装置还包括:对所述结构化的嵌入式卡件程序进行逆向工程。
关于嵌入式卡件程序处理装置的具体限定可以参见上文中对于嵌入式卡件程序处理方法的限定,在此不再赘述。上述嵌入式卡件程序处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种嵌入式卡件程序处理装置方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
确定嵌入式卡件的嵌入式卡件程序;
获取所述嵌入式卡件对应的程序配置信息;
确定所述嵌入式卡件程序的各程序段和所述各程序段的地址空间分布;
确定所述嵌入式卡件程序的运行空间;
根据所述程序配置信息、所述运行空间以及所述各程序段的地址空间分布,将所述各程序段重新链接得到结构化的嵌入式卡件程序。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述确定所述嵌入式卡件程序的运行空间的步骤,包括:
获取所述嵌入式卡件的硬件处理器手册;
采用所述硬件处理器手册,确定所述嵌入式卡件程序的运行空间。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述根据所述程序配置信息、所述运行空间以及所述各程序段的地址空间分布,将所述各程序段重新链接得到结构化的嵌入式卡件程序的步骤,包括:
按照所述程序配置信息和所述运行空间加载所述嵌入式卡件程序;
获取链接工具集;
采用所述链接工具集,根据所述各程序段的地址空间分布将所述各程序段重新链接,得到结构化的嵌入式卡件程序。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
对所述结构化的嵌入式卡件程序进行逆向工程。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
确定嵌入式卡件的嵌入式卡件程序;
获取所述嵌入式卡件对应的程序配置信息;
确定所述嵌入式卡件程序的各程序段和所述各程序段的地址空间分布;
确定所述嵌入式卡件程序的运行空间;
根据所述程序配置信息、所述运行空间以及所述各程序段的地址空间分布,将所述各程序段重新链接得到结构化的嵌入式卡件程序。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述确定所述嵌入式卡件程序的运行空间的步骤,包括:
获取所述嵌入式卡件的硬件处理器手册;
采用所述硬件处理器手册,确定所述嵌入式卡件程序的运行空间。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述根据所述程序配置信息、所述运行空间以及所述各程序段的地址空间分布,将所述各程序段重新链接得到结构化的嵌入式卡件程序的步骤,包括:
按照所述程序配置信息和所述运行空间加载所述嵌入式卡件程序;
获取链接工具集;
采用所述链接工具集,根据所述各程序段的地址空间分布将所述各程序段重新链接,得到结构化的嵌入式卡件程序。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
对所述结构化的嵌入式卡件程序进行逆向工程。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种嵌入式卡件程序处理方法,其特征在于,所述方法包括:
确定嵌入式卡件的嵌入式卡件程序;所述嵌入式卡件程序为非结构化的程序;
获取所述嵌入式卡件对应的程序配置信息;
确定所述嵌入式卡件程序的各程序段和所述各程序段的地址空间分布;所述地址空间分布表示所述各程序段分别占用的内存;
确定所述嵌入式卡件程序的运行空间;所述运行空间表示运行所述嵌入式卡件程序所需的内存空间;
根据所述程序配置信息、所述运行空间以及所述各程序段的地址空间分布,将所述各程序段重新链接得到结构化的嵌入式卡件程序。
2.根据权利要求1所述的方法,其特征在于,所述确定所述嵌入式卡件程序的运行空间的步骤,包括:
获取所述嵌入式卡件的硬件处理器手册;
采用所述硬件处理器手册,确定所述嵌入式卡件程序的运行空间。
3.根据权利要求2所述的方法,其特征在于,所述根据所述程序配置信息、所述运行空间以及所述各程序段的地址空间分布,将所述各程序段重新链接得到结构化的嵌入式卡件程序的步骤,包括:
按照所述程序配置信息和所述运行空间加载所述嵌入式卡件程序;
获取链接工具集;
采用所述链接工具集,根据所述各程序段的地址空间分布将所述各程序段重新链接,得到结构化的嵌入式卡件程序。
4.根据权利要求1所述的方法,其特征在于,所述程序配置信息包括:编译器和链接器的配置信息以及输出信息,所述编译器和链接器的配置信息包括程序装载地址和程序入口地址。
5.根据权利要求1至4任一项所述的方法,其特征在于,还包括:
对所述结构化的嵌入式卡件程序进行逆向工程。
6.一种嵌入式卡件程序处理装置,所述装置包括:
嵌入式卡件程序确定模块,用于确定嵌入式卡件的嵌入式卡件程序;所述嵌入式卡件程序为非结构化的程序;
程序配置信息获取模块,用于获取所述嵌入式卡件对应的程序配置信息;
程序段信息获取模块,用于确定所述嵌入式卡件程序的各程序段和所述各程序段的地址空间分布;所述地址空间分布表示所述各程序段分别占用的内存;
运行空间确定模块,用于确定所述嵌入式卡件程序的运行空间;所述运行空间表示运行所述嵌入式卡件程序所需的内存空间;
程序重新链接模块,用于根据所述程序配置信息以及所述各程序段的地址空间分布,将所述各程序段重新链接得到结构化的嵌入式卡件程序。
7.根据权利要求6所述的装置,其特征在于,所述运行空间确定模块,包括:
获取所述嵌入式卡件的硬件处理器手册;
采用所述硬件处理器手册,确定所述嵌入式卡件程序的运行空间。
8.根据权利要求7所述的装置,其特征在于,所述程序重新链接模块,用于:
按照所述程序配置信息和所述运行空间加载所述嵌入式卡件程序;
获取链接工具集;
采用所述链接工具集,根据所述各程序段的地址空间分布将所述各程序段重新链接,得到结构化的嵌入式卡件程序。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910932860.1A CN110908664B (zh) | 2019-09-29 | 2019-09-29 | 嵌入式卡件程序处理方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910932860.1A CN110908664B (zh) | 2019-09-29 | 2019-09-29 | 嵌入式卡件程序处理方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110908664A CN110908664A (zh) | 2020-03-24 |
CN110908664B true CN110908664B (zh) | 2023-12-05 |
Family
ID=69815244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910932860.1A Active CN110908664B (zh) | 2019-09-29 | 2019-09-29 | 嵌入式卡件程序处理方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110908664B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103927187A (zh) * | 2014-05-09 | 2014-07-16 | 成都凯智科技有限公司 | 嵌入式系统程序执行方法 |
CN104850503A (zh) * | 2015-05-06 | 2015-08-19 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种通用地址空间管理方法及其结构 |
CN105760201A (zh) * | 2016-02-29 | 2016-07-13 | 华为技术有限公司 | 一种嵌入式装置的启动方法和装置 |
CN107729085A (zh) * | 2017-10-19 | 2018-02-23 | 北京空间飞行器总体设计部 | 一种支持地址重定向的星载软件动态加载方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080005719A1 (en) * | 2006-06-30 | 2008-01-03 | Morris Robert P | Methods, systems, and computer program products for providing a program execution environment |
US7729786B2 (en) * | 2006-09-26 | 2010-06-01 | Rockwell Automation Technologies, Inc. | Natively retaining project documentation in a controller |
WO2011088396A1 (en) * | 2010-01-15 | 2011-07-21 | Group Business Software Ag | Apparatus and method for constructing data applications in an unstructured data environment |
-
2019
- 2019-09-29 CN CN201910932860.1A patent/CN110908664B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103927187A (zh) * | 2014-05-09 | 2014-07-16 | 成都凯智科技有限公司 | 嵌入式系统程序执行方法 |
CN104850503A (zh) * | 2015-05-06 | 2015-08-19 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种通用地址空间管理方法及其结构 |
CN105760201A (zh) * | 2016-02-29 | 2016-07-13 | 华为技术有限公司 | 一种嵌入式装置的启动方法和装置 |
CN107729085A (zh) * | 2017-10-19 | 2018-02-23 | 北京空间飞行器总体设计部 | 一种支持地址重定向的星载软件动态加载方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110908664A (zh) | 2020-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109901834B (zh) | 文档页面生成方法、装置、计算机设备和存储介质 | |
CN111061475B (zh) | 软件代码生成方法、装置、计算机设备和存储介质 | |
CN105183592A (zh) | 用于支持性能分析的方法和装置 | |
CN105302717A (zh) | 一种大数据平台的检测方法及装置 | |
CN104035863A (zh) | 一种浏览器测试方法及装置 | |
US20190087208A1 (en) | Method and apparatus for loading elf file of linux system in windows system | |
CN111897711B (zh) | 代码中bug的定位方法、装置、电子设备及可读存储介质 | |
CA3157678A1 (en) | Method and apparatus for automatically testing visual report tool based on vuex | |
CN108241516B (zh) | 嵌入式系统程序加载方法、装置、计算机设备和存储介质 | |
CN110597552B (zh) | 项目持续集成流水线的配置方法、装置、设备及存储介质 | |
CN103226510B (zh) | 解析vmcore文件的方法和装置 | |
US20110029953A1 (en) | System and Method for Scalable Handling of Debug Information | |
CN110908664B (zh) | 嵌入式卡件程序处理方法、装置、计算机设备和存储介质 | |
CN105824750A (zh) | 一种在NorFlash程序空间调试的软断点模拟方法 | |
CN107766228B (zh) | 一种基于多语种的自动化测试方法和装置 | |
CN115509608B (zh) | 指令优化方法、装置、电子设备及计算机可读存储介质 | |
CN116595588A (zh) | 铁路信号系统开发过程安全分析方法及装置 | |
CN111552503A (zh) | 工程文件处理方法、装置、计算机设备及存储介质 | |
CN114020278B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN111078574A (zh) | 生成影响分析报告的方法及装置 | |
CN106897588B (zh) | 一种标签函数的处理方法及装置 | |
CN107341423B (zh) | 智能卡的测试方法及测试设备、计算机可读存储介质 | |
CN116483639B (zh) | eMMC信息获取方法和系统、电子设备和存储介质 | |
CN110389724A (zh) | 基于固态硬盘的parity page识别方法和装置 | |
CN116700840B (zh) | 文件执行方法、装置、电子设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |