System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,尤其涉及一种api函数识别方法及装置。
技术介绍
1、在逆向工程的研究范畴内,api(application programming interface)调用扮演着揭示程序深层机制的关键角色,这些调用往往封装了诸如文件系统交互、网络通信协议实现、复杂字符串操作以及内存资源管理等诸多核心功能。通过深入剖析api调用链,逆向工程师能够更有效地解析程序的功能结构和内在运行逻辑。在安全漏洞探索的视域下,通过api调用能够确定那些与潜在安全风险紧密相连的代码段,尤其是牵涉到内存安全控制和用户输入验证等方面的功能模块。而当聚焦于恶意软件分析领域时,对api调用的细致追踪,则能揭示恶意软件样本如何巧妙地利用操作系统接口以达到潜行活动的目的,包括但不限于文件系统的篡改、网络通讯的隐秘传输等行为。这一洞察力不仅有助于抽丝剥茧般地解开恶意软件的运作机理,更能准确把握其实际意图与功能实现。
2、然而,在一些特殊场景下,api函数在二进制文件中的辨识过程颇具挑战性,尤其是在静态链接的可执行文件及嵌入式固件之中。针对静态链接的二进制实体,标准库与第三方库的代码会直接融入其中,形成无缝衔接。由于用户自定义代码与库代码间的界限模糊不清,且缺乏明确的符号标识,辨别哪些函数源自程序本身,哪些函数来源于库,实属不易。
3、在嵌入式环境下的逆向工程,固件通常是为了精确操控特定硬件设备而精心编排,故此可能会蕴含独具特色的api函数集。尽管这些函数在功能上或许与标准库中的部分相似,但在实际的固件中却并不常见。更进一步,制造商
技术实现思路
1、本专利技术提供一种api函数识别方法及装置,用以解决现有相关技术中在未获取原始源代码或配套文档的情况下,无法准确识别api函数的缺陷,实现在未获取原始源代码或配套文档的情况下,准确识别api函数的技术效果。
2、本专利技术提供一种api函数识别方法,包括:
3、获取固件的二进制文件,并提取所述二进制文件中的待识别函数;
4、对各所述待识别函数进行分析,确定各所述待识别函数的调用信息;
5、根据所述调用数据计算对应的所述待识别函数的重要指数,并根据所述重要指数确定目标api函数。
6、根据本专利技术提供的一种api函数识别方法,所述对各所述待识别函数进行分析,确定各所述待识别函数的调用信息,包括:
7、对各所述待识别函数进行分析,确定各所述待识别函数的被调用数据和调用数据;
8、根据各所述待识别函数的所述被调用数据和所述调用数据计算各所述待识别函数的指令数据;
9、将所述被调用数据、所述调用数据和所述指令数据作为对应的所述待识别函数的调用信息。
10、根据本专利技术提供的一种api函数识别方法,所述根据所述调用数据计算对应的所述待识别函数的重要指数,并根据所述重要指数确定目标api函数,包括:
11、将各所述待识别函数的所述调用信息中的所述被调用数据和所述指令数据进行乘积运算,得到乘积运算值;
12、将各所述待识别函数的所述乘积运算值与对应的所述调用数据进行求商运算,得到各所述待识别函数的所述重要指数,并提取各所述待识别函数的函数符号;
13、根据各所述待识别函数的所述重要指数对各所述待识别函数进行降序排列;
14、根据所述降序排列的顺序,将所述待识别函数的所述函数符号和所述重要指数以键值对的形式存储至预设数据表中;
15、根据所述预设数据表确定所述目标api函数。
16、根据本专利技术提供的一种api函数识别方法,所述根据所述预设数据表确定所述目标api函数,包括:
17、基于所述预设数据表中的顺序,提取第一预设个数的所述待识别函数;
18、依次分析所述第一预设个数的所述待识别函数中是否存在api调用;
19、若存在,将所述待识别函数作为所述目标api函数。
20、根据本专利技术提供的一种api函数识别方法,在所述根据所述调用数据计算对应的所述待识别函数的重要指数,并根据所述重要指数确定目标api函数之后,所述方法还包括:
21、分析各所述目标api函数的功能信息和/或逻辑信息;
22、根据各所述目标api函数的所述功能信息和/或所述逻辑信息,预测所述固件的行为机制。
23、根据本专利技术提供的一种api函数识别方法,在所述根据各所述目标api函数的所述功能信息和/或所述逻辑信息,预测所述固件的行为机制之后,所述方法还包括:
24、根据所述重要指数,确定第二预设个数的所述待识别函数为目标分析函数;
25、分析各所述目标分析函数的功能信息和/或逻辑信息;
26、将所述目标分析函数的功能信息和/逻辑信息,以及所述固件的行为机制展示在预设展示页面。
27、根据本专利技术提供的一种api函数识别方法,所述提取所述二进制文件中的待识别函数,包括:
28、通过预设逆向识别工具提取所述二进制文件中的所述待识别函数。
29、本专利技术还提供一种api函数识别装置,包括:
30、提取模块,配置为获取固件的二进制文件,并提取所述二进制文件中的待识别函数;
31、第一分析模块,配置为对各所述待识别函数进行分析,确定各所述待识别函数的调用信息;
32、确定模块,配置为根据所述调用数据计算对应的所述待识别函数的重要指数,并根据所述重要指数确定目标api函数。
33、本专利技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述api函数识别方法。
34、本专利技术还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述api函数识别方法。
35、本专利技术还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述api函数识别方法。
36、本专利技术提供的一种api函数识别方法及装置,提取固件的二进制文件中的待识别函数,再对各个待识别函数进行分析,确定各个待识别函数的调用信息,调用信息能够表征待识别函数调用其他待识别函数和被其他待识别函数调用的信息,再根据调用数据计算各个待识别函数的重要指数,根据计算得到的重要指数从待识别函数中确定目标api函数,重要指数表征了待识别函数的调用关系,基于重要指数能够快速、准确的确定出二进制文件中的api函数,即使在未获取原始源代码或配套文档的情况下,也能够识别出api函数。
本文档来自技高网...【技术保护点】
1.一种API函数识别方法,其特征在于,包括:
2.根据权利要求1所述的API函数识别方法,其特征在于,所述对各所述待识别函数进行分析,确定各所述待识别函数的调用信息,包括:
3.根据权利要求2所述的API函数识别方法,其特征在于,所述根据所述调用数据计算对应的所述待识别函数的重要指数,并根据所述重要指数确定目标API函数,包括:
4.根据权利要求3所述的API函数识别方法,其特征在于,所述根据所述预设数据表确定所述目标API函数,包括:
5.根据权利要求1至4中任一项所述的API函数识别方法,其特征在于,在所述根据所述调用数据计算对应的所述待识别函数的重要指数,并根据所述重要指数确定目标API函数之后,所述方法还包括:
6.根据权利要求5所述的API函数识别方法,其特征在于,在所述根据各所述目标API函数的所述功能信息和/或所述逻辑信息,预测所述固件的行为机制之后,所述方法还包括:
7.根据权利要求1至4中任一项所述的API函数识别方法,其特征在于,所述提取所述二进制文件中的待识别函数,包括:
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述API函数识别方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述API函数识别方法。
...【技术特征摘要】
1.一种api函数识别方法,其特征在于,包括:
2.根据权利要求1所述的api函数识别方法,其特征在于,所述对各所述待识别函数进行分析,确定各所述待识别函数的调用信息,包括:
3.根据权利要求2所述的api函数识别方法,其特征在于,所述根据所述调用数据计算对应的所述待识别函数的重要指数,并根据所述重要指数确定目标api函数,包括:
4.根据权利要求3所述的api函数识别方法,其特征在于,所述根据所述预设数据表确定所述目标api函数,包括:
5.根据权利要求1至4中任一项所述的api函数识别方法,其特征在于,在所述根据所述调用数据计算对应的所述待识别函数的重要指数,并根据所述重要指数确定目标api函数之后,所述方法还包括:
6.根据...
【专利技术属性】
技术研发人员:齐增田,
申请(专利权)人:苏州元脑智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。