一种函数信息获取方法、计算设备及存储介质技术

技术编号:32649747 阅读:31 留言:0更新日期:2022-03-12 18:39
本发明专利技术公开了一种函数信息获取方法、计算设备及存储介质,并包括步骤:对应用的代码进行扫描,以确定所述应用要在第三方库中调用的库函数,从而确定需要追踪第三方库中的哪些库函数,接着获取库函数的入口地址,将在所获取的入口地址处的指令替换为跳转指令,以便在执行与库函数定义的方法时,执行跳转指令而跳转去执行获取函数信息的信息获取方法。本发明专利技术通过将库函数对应方法的入口地址的库函数的指令替换为跳转指令,实现了在运行库函数之前,对运行库函数的过程进行捕获,执行本发明专利技术的信息获取函数对应的信息获取方法,实现了轻量级的对函数信息的获取,不需要重复构建复杂代码,提高了对第三方库中函数信息的获取效率。提高了对第三方库中函数信息的获取效率。提高了对第三方库中函数信息的获取效率。

【技术实现步骤摘要】
一种函数信息获取方法、计算设备及存储介质


[0001]本专利技术涉及操作系统领域,特别涉及一种函数信息获取方法、计算设备及存储介质。

技术介绍

[0002]随着计算机技术的发展,人们在对计算设备中运行的应用进行开发时,需要对所开发的应用进行调试。对于自己编写的软件或者来自于开源社区的软件代码,因为有源代码,可以通过在源代码中增加打印信息输出到控制台窗口或者通过调试工具设置断点进行单步调试来观察程序中函数的行为。事实上,在软件开发过程中,无可避免地需要引用第三方链接库来实现程序的功能。例如,在微软视窗操作系统程序开发中,需要大量引用来自于动态链接库程序。这些引用的第三方库通常都是二进制形式,缺少源码,只能够获取函数声明信息,那么就很难像调试普通程序一样获取程序在进入这些第三方代码之后的踪迹和行为。
[0003]现有技术中对于调试无源码的第三方库代码的通常方法是增加一个上位程序进行拦截,即在调用的第三方库与应用程序之间增加一个上位程序,该上位程序的函数接口与第三方库中的导出函数完全相同,可以在每次调用到相关第三方库函数的入口(api)时先经本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种函数信息获取方法,适于在计算设备中执行,所述计算设备中包括要执行的应用,所述应用在执行时调用第三方库提供的库函数,所述方法包括步骤:对所述应用的代码进行扫描,以确定所述应用要在所述第三方库中调用的库函数;获取所述库函数的入口地址,将在所获取的入口地址处的指令替换为跳转指令,以便在执行与所述库函数定义的方法时,执行所述跳转指令而跳转去执行获取函数信息的信息获取方法;以及在所述信息获取方法执行之后,执行在所述库函数的入口地址处被替换的指令,并随后跳转到紧随所述被替换指令之后的位置处,继续执行所述库函数对应的方法。2.如权利要求1所述的方法,其中,所述对所述应用的代码进行扫描,以确定所述应用要在所述第三方库中调用的库函数包括步骤:根据所述应用的代码生成导出函数文件;根据所述导出函数文件中的函数名确定所述应用要在所述第三方库中调用的库函数。3.如权利要求2所述的方法,其中,所述将在所获取的入口地址处的指令替换为跳转指令包括步骤:获取所述信息获取方法的入口地址;根据所述信息获取方法的入口地址和执行所述跳转指令的操作码生成跳转指令;在所述库函数对应方法的入口地址将所述库函数所定义方法的指令替换为所述跳转指令。4.如权利要求3所述的方法,其中,所述计算设备中还包括内部存储器,所述在所述库函数对应方法的入口地址将所述库函数所定义方法的指令替换为所述跳转指令包括步骤:根据所述跳转指令所需的存储空间确定所述库函数所定义方法中需替换的指令数目;将所述跳转指令在所述库函数对应方法的入口地址进行存储,并根据所述指令数目在内部存储器的其他存储区域存储所述库函数所定义方法中需替换的指令,以便执行所述跳转指令所跳转的信息获取方法后,执行所...

【专利技术属性】
技术研发人员:刘昌辉杨堃
申请(专利权)人:统信软件技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1