[发明专利]一种固件装载基址的定位方法、装置及电子设备有效
申请号: | 201711089856.0 | 申请日: | 2017-11-08 |
公开(公告)号: | CN107861729B | 公开(公告)日: | 2021-08-24 |
发明(设计)人: | 朱瑞瑾;张宝峰;毛军捷;谭毓安;骆扬 | 申请(专利权)人: | 中国信息安全测评中心 |
主分类号: | G06F8/53 | 分类号: | G06F8/53;G06F8/61 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王宝筠 |
地址: | 100085 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 装载 基址 定位 方法 装置 电子设备 | ||
1.一种固件装载基址的定位方法,其特征在于,包括:
获取固件的第一函数和第一函数偏移量,所述第一函数的个数为多个,所述第一函数与所述第一函数偏移量一一对应,所述第一函数偏移量为所述固件的起始位置与所述第一函数的开始位置之间的距离;
依据所述固件的LDR指令,获取所述LDR指令加载的地址,作为第二函数偏移量,所述第二函数偏移量与第二函数一一对应,所述第二函数为将所述固件的第一函数映射到嵌入式设备内存后产生的函数,所述第二函数偏移量为所述嵌入式设备内存的起始位置与所述第二函数的开始位置之间的距离;
将每一个所述第一函数偏移量分别与每一个所述第二函数偏移量相减,获得多个差值结果;
从全部所述差值结果中确定出目标差值,作为固件的装载基址,所述目标差值为出现次数最多的差值结果;
所述获取固件的第一函数和第一函数偏移量,包括:
从所述固件的起始位置开始获取第一函数;
当获取到所述第一函数时,获取所述第一函数的序言偏移量,作为所述第一函数对应的第一函数偏移量,所述序言偏移量为所述固件的起始位置与所述第一函数的序言所在位置之间的距离,所述序言为在所述第一函数的开始位置的代码;
判断获取到的所述第一函数是否为最后一个第一函数;
若获取到的所述第一函数不为所述最后一个第一函数,将位于获取到的所述第一函数之后的下一个第一函数所在位置作为所述固件的起始位置,并返回执行所述从所述固件的起始位置开始获取第一函数,直到获取到所述最后一个第一函数;
所述依据所述固件的LDR指令,获取所述LDR指令加载的地址,作为第二函数偏移量,包括:
从所述固件的起始位置开始获取指令;
判断获取到的所述指令是否为所述LDR指令;
若获取到的所述指令为所述LDR指令,获取所述LDR指令加载的地址,作为所述第二函数偏移量;
判断获取到的所述LDR指令是否为最后一条指令;
若获取到的所述LDR指令不为所述最后一条指令,将位于获取到的所述LDR指令之后的下一条指令所在位置作为所述固件的起始位置,并返回执行所述从所述固件的起始位置开始获取指令,直到所述LDR指令为所述最后一条指令;
若获取到的所述指令不为所述LDR指令,判断获取到的所述指令是否为所述最后一条指令;
若获取到的所述指令不为所述最后一条指令,将位于获取到的所述指令之后的下一条指令所在位置作为所述固件的起始位置,并返回执行所述从所述固件的起始位置开始获取指令,直到所述指令为所述最后一条指令。
2.根据权利要求1所述的定位方法,其特征在于,所述从全部所述差值结果中确定出目标差值,作为固件的装载基址,包括:
计算每一个所述差值结果的出现次数;
按照所述差值结果的出现次数,降序排列所述差值结果;
将处于第一排列位置的差值结果作为所述固件的装载基址。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国信息安全测评中心,未经中国信息安全测评中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711089856.0/1.html,转载请声明来源钻瓜专利网。