The invention discloses a method and a device for positioning ARM jumplists firmware loader based on base. The method to determine the firmware in the switch language compiler generated after the memory address of the jump table, storage table jump to sort and select the minimum memory address as the memory address of the switch statement in the first case block. Then, determine the offset of the first case block, according to the memory address of the first case block and the offset, calculate and output the firmware loader base. The invention can realize the positioning of the firmware loader base, and thus more effectively the reverse engineering of firmware.
【技术实现步骤摘要】
一种基于跳转表定位ARM固件装载基址的方法和装置
本申请涉及软件领域,更具体地说,涉及一种基于跳转表定位ARM固件装载基址的方法和装置。
技术介绍
嵌入式设备已经在生活变得越来越常见,比如数码摄像机、打印机、智能手表、固态盘等。所有这些设备运行着一个特殊软件,通常称为固件。固件是嵌入式设备的灵魂,因为一些嵌入式设备除了固件以外没有其它软件组成,因此固件也就很大程度上决定着嵌入式设备的功能及性能。和传统软件一样,嵌入式设备的固件通常有缺陷或者漏洞,可以导致设备失效或者安全威胁。当需要分析固件的安全性或者维护遗留设备时,需要对固件进行逆向工程。逆向工程(ReverseEngineering)是指从可运行的软件产品出发,运用反汇编、反编译等技术,对软件产品进行逆向拆解和分析,推导出软件产品的设计原理、结构、算法、处理过程、运行方法及相关文档等。在逆向工程中,当反汇编固件时,需要已知固件的运行环境的处理器类型和固件的装载基址。在对嵌入式系统固件进行逆向工程时,我们通常可以获得嵌入式系统的处理器类型,而无法得到固件的装载基址。
技术实现思路
有鉴于此,本申请提供一种基于跳转表定位ARM固件装载基址的方法和装置,以实现固件装载基址的定位。为了实现上述目的,现提出的方案如下:一种基于跳转表定位ARM固件装载基址的方法,包括:获取固件中switch语句编译生成的跳转表;对所述跳转表中存储的内存地址进行排序,选取最小的内存地址作为所述switch语句中第一个case语句块的内存地址;确定所述第一个case语句块的偏移量;根据所述第一个case语句块的内存地址以及所述偏移量,计算 ...
【技术保护点】
一种基于跳转表定位ARM固件装载基址的方法,其特征在于,包括:获取固件中switch语句编译生成的跳转表;对所述跳转表中存储的内存地址进行排序,选取最小的内存地址作为所述switch语句中第一个case语句块的内存地址;确定所述第一case语句块的偏移量;根据所述第一case语句块的内存地址以及所述偏移量,计算并输出所述固件装载基址。
【技术特征摘要】
1.一种基于跳转表定位ARM固件装载基址的方法,其特征在于,包括:获取固件中switch语句编译生成的跳转表;对所述跳转表中存储的内存地址进行排序,选取最小的内存地址作为所述switch语句中第一个case语句块的内存地址;确定所述第一case语句块的偏移量;根据所述第一case语句块的内存地址以及所述偏移量,计算并输出所述固件装载基址。2.根据权利要求1所述的方法,其特征在于,所述获取固件中switch语句编译生成的跳转表,包括:依次对固件中的指令代码进行检测,以判断当前位置的三条指令代码是否依次为CMP指令、LDRLS指令以及B指令;若是,则继续对所述B指令后的指令代码进行检测,以获取所述跳转表;若否,则跳过当前指令代码,对下一条指令代码进行检测。3.根据权利要求2所述的方法,其特征在于,所述计算并输出所述固件装载基址,之后还包括:判断固件所有指令代码是否检测完毕;若是,则结束对固件装载基址的定位过程;若否,则继续对剩余的指令代码进行检测。4.根据权利要求1所述的方法,其特征在于,所述确定所述第一case语句块偏移量,包括:依次对固件中switch语句的指令代码进行检测,当检测到所述第一case语句块时,记录所述第一case语句块与固件文件起始位置之间的偏移量。5.一种基于跳转表定位ARM固件装...
【专利技术属性】
技术研发人员:朱瑞瑾,张宝峰,毛军捷,谭毓安,骆扬,
申请(专利权)人:中国信息安全测评中心,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。