[发明专利]一种二进制程序分析方法、终端设备及存储介质在审
申请号: | 202111609503.5 | 申请日: | 2021-12-27 |
公开(公告)号: | CN114443055A | 公开(公告)日: | 2022-05-06 |
发明(设计)人: | 黄庆发;沈长达;黄志炜;施剑朕 | 申请(专利权)人: | 厦门市美亚柏科信息股份有限公司 |
主分类号: | G06F8/52 | 分类号: | G06F8/52;G06F8/53 |
代理公司: | 厦门市精诚新创知识产权代理有限公司 35218 | 代理人: | 赵薇 |
地址: | 361000 福建省厦门市*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 二进制 程序 分析 方法 终端设备 存储 介质 | ||
本发明涉及一种二进制程序分析方法、终端设备及存储介质,该方法中包括:S1:获取二进制程序的指令集架构特征;S2:通过dump内存与指令集架构特征进行特征匹配的方式,获取运行起始地址;S3:通过二进制程序中的连续出现的常量字符串来确定只读数据区起始地址和只读数据区大小;S4:根据堆栈初始化代码得到的堆的起始地址和只读数据区大小确定数据区起始地址;S5:根据二进制程序的运行起始地址、只读数据区起始地址和数据区起始地址,将二进制程序重新构造为可执行格式二进制程序文件;S6:通过反编译工具对重新构造的可执行格式二进制程序文件进行反编译分析。本发明可以使无可执行程序结构的二进制程序能够进行反编译分析。
技术领域
本发明涉及嵌入式技术领域,尤其涉及一种二进制程序分析方法、终端设备及存储介质。
背景技术
随着物联网设备安全复杂化,物联网设备取证存在着系统账号密码加密、通信协议私有化、存储数据加密处理、数据格式自定义等取证难题,需要通过对芯片二进制程序进行分析解决。然而物联网设备上的固件程序往往是不带可执行程序结构的裸二进制程序,分析难度大。
目前针对二进制程序进行分析的方法主要是采用常用的反编译工具,如IDA、WinDBG、ObjDump等。这些工具针对带可执行程序格式的反编译效果较好,对没有可执行程序格式的二进制程序反编译后,由于起始地址未确定,代码区、只读数据区、数据区等未区分开,往往可能导致字符串数据无法正常关联、数据被当成代码反编译、函数无法正常关联等问题。因此,目前针对没有特定程序结构的二进制程序的分析还缺少较好的方法。
发明内容
为了解决上述问题,本发明提出了一种二进制程序分析方法、终端设备及存储介质。
具体方案如下:
一种二进制程序分析方法,包括以下步骤:
S1:获取二进制程序的指令集架构特征;
S2:通过dump内存与该二进制程序的指令集架构特征进行特征匹配的方式,获取二进制程序的运行起始地址;
S3:通过二进制程序中的连续出现的多个常量字符串来提取二进制程序的只读数据区起始地址,并通过只读数据区起始地址之后连续多个不符合常量字符串特征的字符来获取只读数据区结束地址,从而得到只读数据区大小;
S4:通过分析二进制程序的堆栈初始化代码,将其中堆的起始地址作为二进制程序的数据区结束地址,将数据区结束地址减去只读数据区大小后得到数据区起始地址;
S5:根据二进制程序的运行起始地址、只读数据区起始地址和数据区起始地址,将二进制程序重新构造为可执行格式二进制程序文件;
S6:通过反编译工具对重新构造的可执行格式二进制程序文件进行反编译分析。
进一步的,获取二进制程序的指令集架构的方式可以通过对应的嵌入式芯片资料或预先构建的指令架构特征集合来进行获取。
进一步的,步骤S2中获取二进制程序的运行起始地址的方式还可以通过启动日志或中断向量表进行获取。
进一步的,可执行格式二进制程序文件的文件格式包括:elf格式、exe格式、ipa格式。
进一步的,步骤S5之前还包括:判断二进制程序中是否包含自定义格式的二进制子程序,如果包含,根据该自定义格式的二进制子程序的头部区的内容确定该自定义格式的二进制子程序的运行起始地址、只读数据区起始地址和数据区起始地址;
步骤S5中还包括:根据该自定义格式的二进制子程序的运行起始地址、只读数据区起始地址和数据区起始地址,将该自定义格式的二进制子程序重新构造为可执行格式二进制程序文件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门市美亚柏科信息股份有限公司,未经厦门市美亚柏科信息股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111609503.5/2.html,转载请声明来源钻瓜专利网。