[发明专利]一种二进制文件中合法指令的识别方法及装置在审
申请号: | 202110481096.8 | 申请日: | 2021-04-30 |
公开(公告)号: | CN113296833A | 公开(公告)日: | 2021-08-24 |
发明(设计)人: | 陈李维;田力楠;史阳阳;史岗;孟丹 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | G06F8/74 | 分类号: | G06F8/74;G06F8/75 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 谢志超 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 二进制文件 合法 指令 识别 方法 装置 | ||
本发明提供一种二进制文件中合法指令的识别方法及装置,涉及二进制技术领域,包括以下步骤获取待执行的二进制文件;沿着二进制文件的路径执行所述二进制文件的每一条路径,获取执行过的每一条路径中执行过的指令,在执行过程中根据代码块的状态标记代码块类型,对不同类型的所述代码块类型执行不同的迭代策略,识别所有潜在的间接控制流目标地址,并将所述潜在的间接控制流目标地址确定为所述二进制文件的路径的入口地址并继续探索,其中,所述执行过的指令为合法指令,本发明实现二进制重写技术的准确性和完全性。
技术领域
本发明涉及二进制技术领域,尤其涉及一种二进制文件中合法指令的识别方法及装置
背景技术
二进制重写技术是指在程序源码缺失的情况下,将编译好的二进制文件提升到更高级的编程语言如汇编语言、中间表示语言(intermediate representation,IR),并对其进行二次开发、优化和利用(包括二进制强化、Profiling、插桩和添加安全策略),并再次编译成二进制可执行文件的技术。
由于原始程序在编译成二进制后,原程序语言中的数据类型、程序执行控制流信息和符号信息等都会被舍弃,因此二进制重写技术的难点如何在二进制文件中识别所有的合法指令。目前,在二进制重写技术中识别合法指令的主要存在以下难点:
(1)二进制程序的指令中会混有数据:在现代编译器的实现中,为了编译出的程序的执行的性能优化,编译器会在代码中混入数据以加速程序的执行(例如:将跳转表JumpTable存储在代码段)。另一方面,在变长指令集中为了指令对齐,编译器也会插入数据padding(例如在在函数地址入口前)。由于二进制文件中的数据和指令没有明显界线,所以这些情况会都阻碍合法指令的识别。
(2)动态计算的间接控制流(Indirect Control Flow,ICF)目标地址:由于在二进制文件中存在间接控制流转移指令,它们的目标地址存储在一个寄存器或者一段内存中,这些目标值只能在程序运行的过程中被确定。例如,存储在跳转表中的间接控制流目标地址,要想获得这些目标地址就需要通过一个base基地址加index索引乘以offset偏移来计算;函数指针,它被初始化为一个函数的地址并且通过会经过任意的计算和解引用被确定;还有一些指针例如虚函数指针和回调函数也是需要被动态的计算所确定。
现有的二进制重写技术并不能精确的识别出二进制文件中的所有合法指令,这将会影响对二进制程序再次开发利用。
发明内容
本发明提供一种二进制文件中合法指令的识别方法及装置,用以解决现有技术中二进制重写技术不能精确识别合法指令的缺陷,实现二进制重写技术的准确性和完全性。
本发明提供一种二进制文件中合法指令的识别方法,包括以下步骤:
获取待执行的二进制文件;
沿着二进制文件的路径执行所述二进制文件的每一条路径,获取执行过的每一条路径中执行过的指令,在执行过程中根据代码块的状态标记代码块类型,对不同类型的所述代码块类型执行不同的迭代策略,识别所有潜在的间接控制流目标地址,并将所述潜在的间接控制流目标地址确定为所述二进制文件的路径的入口地址并继续探索,其中,所述执行过的指令为合法指令。
根据本发明提供的一种二进制文件中合法指令的识别方法,所述执行过的指令的起始地址为该执行过的指令的合法地址,执行过的指令的结束地址为解码下一条指令的起始地址。
根据本发明提供的一种二进制文件中合法指令的识别方法,沿着二进制文件的路径执行所述二进制文件的每一条路径,在执行过程中根据代码块的状态标记代码块类型,对不同类型的所述代码块类型执行不同的迭代策略,识别所有潜在的间接控制流目标地址,并将所述潜在的间接控制流目标地址确定为二进制文件的路径的入口地址并继续探索,具体包括以下步骤:
沿着二进制文件的入口地址执行所述二进制文件的每一条路径;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110481096.8/2.html,转载请声明来源钻瓜专利网。