应用程序的动态库信息获取方法及装置制造方法及图纸

技术编号:20074570 阅读:24 留言:0更新日期:2019-01-15 00:30
本申请实施例提供一种应用程序的动态库信息获取方法及装置,其中,该方法包括:提取针对目标应用程序的动态库信息获取指令的内存地址,以及所述目标应用程序中的标识动态库中的DT_DEBUG条目的偏移量;根据所述动态库信息获取指令的内存地址和所述DT_DEBUG条目的偏移量,获取所述标识动态库的内存地址;从所述标识动态库的内存地址对应的内存空间中获取所述DT_DEBUG的值,以及根据所述DT_DEBUG的值得到目标结构体的内存地址;访问所述目标结构体的内存地址对应的内存空间,得到所述目标结构体;遍历所述目标结构体,得到目标动态库信息,以此,能够提升动态库信息获取时的准确性。

Method and Device for Acquiring Dynamic Library Information of Application Program

The embodiment of this application provides a dynamic library information acquisition method and device for an application program, which includes: extracting the memory address of the dynamic library information acquisition instruction for the target application program and the offset of DT_DEBUG entry in the identification dynamic library of the target application program; acquiring the memory address of the instruction and the DT_DEBUG entry according to the dynamic library information. Aim To offset the amount to obtain the memory address of the identification dynamic library, obtain the value of DT_DEBUG from the memory space corresponding to the memory address of the identification dynamic library, and get the memory address of the target structure according to the value of the DT_DEBUG, access the memory space corresponding to the memory address of the target structure, and obtain the target structure through traversing the target structure. In this way, the accuracy of dynamic database information acquisition can be improved.

【技术实现步骤摘要】
应用程序的动态库信息获取方法及装置
本申请涉及信息
,具体涉及一种应用程序的动态库信息获取方法及装置。
技术介绍
随着智能电子设备(智能手机,平板电脑等)的逐步普及,各种智能电子设备的操作系统也随之得到了很大的发展,但是在一些方面仍然存在诸多不足。目前Android系统中,Android应用程序(Application,APP)在获取自身进程已加载的动态库信息(例如动态库名称、地址等)时,大多都通过访问内存映射文件来获得,但是通过这种方式来获取动态库信息时的准确性较低。
技术实现思路
本申请实施例提供一种应用程序的动态库信息获取方法及装置,能够提升动态库信息获取时的准确性。本申请实施例的第一方面提供了一种应用程序的动态库信息获取方法,所述方法包括:提取针对目标应用程序的动态库信息获取指令的内存地址,以及所述目标应用程序中的标识动态库中的DT_DEBUG条目的偏移量;根据所述动态库信息获取指令的内存地址和所述DT_DEBUG条目的偏移量,获取所述标识动态库的内存地址;从所述标识动态库的内存地址对应的内存空间中获取所述DT_DEBUG的值,以及根据所述DT_DEBUG的值得到目标结构体的内存地址,所述目标结构体中存储有目标应用程序已加载的动态库的动态库信息;访问所述目标结构体的内存地址对应的内存空间,得到所述目标结构体;遍历所述目标结构体,得到目标动态库信息。本申请实施例的第二方面提供了一种应用程序的动态库信息获取装置,所述装置包括提取单元、第一获取单元、第二获取单元、访问单元和遍历单元,其中,提取单元,用于提取针对目标应用程序的动态库信息获取指令的内存地址,以及所述目标应用程序中的标识动态库中的DT_DEBUG条目的偏移量;第一获取单元,用于根据所述动态库信息获取指令的内存地址和所述DT_DEBUG条目的偏移量,获取所述标识动态库的内存地址;第二获取单元,用于从所述标识动态库的内存地址对应的内存空间中获取所述DT_DEBUG的值,以及根据所述DT_DEBUG的值得到目标结构体的内存地址,所述目标结构体中存储有目标应用程序已加载的动态库的动态库信息;访问单元,用于访问所述目标结构体的内存地址对应的内存空间,得到所述目标结构体;遍历单元,用于遍历所述目标结构体,得到目标动态库信息。本申请实施例的第三方面提供一种终端,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如本申请实施例第一方面中的步骤指令。本申请实施例的第四方面提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。本申请实施例的第五方面提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。实施本申请实施例,至少具有如下有益效果:通过本申请实施例,提取目标应用程序的动态库信息获取指令的内存地址,以及目标应用程序中的标识动态库中的DT_DEBUG条目的偏移量,根据所述动态库信息获取指令的内存地址和所述DT_DEBUG条目的偏移量,获取所述标识动态库的内存地址,从所述标识动态库的内存地址对应的内存空间中获取所述DT_DEBUG的值,以及根据所述DT_DEBUG的值得到目标结构体的内存地址,访问所述目标结构体的内存地址对应的内存空间,得到所述目标结构体,遍历所述目标结构体,得到目标动态库信息,所述目标动态库信息为所述目标应用程序已加载的动态库的信息。因此,通过获取标识动态库的内存地址,根据该内存地址得到目标结构体的内存地址,根据目标结构体的内存地址得到目标结构体,遍历该结构体得到目标动态库信息,相对于现有方案中,通过访问内存映射文件来获得目标动态库信息,本方案采用了根据标识动态库来获取目标动态库信息,能够一定程度上提升动态库信息获取时的准确性。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例提供了一种电子装置的示意图;图2为本申请实施例提供了一种应用程序的动态库信息获取方法的流程示意图;图3为本申请实施例提供了另一种应用程序的动态库信息获取方法的流程示意图;图4为本申请实施例提供了另一种应用程序的动态库信息获取方法的流程示意图;图5为本申请实施例提供了另一种应用程序的动态库信息获取方法的流程示意图;图6为本申请实施例提供了另一种应用程序的动态库信息获取方法的流程示意图;图7为本申请实施例提供的一种终端的结构示意图;图8为本申请实施例提供了一种应用程序的动态库信息获取装置。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。本申请实施例所涉及到的电子装置可以包括各种具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(userequipment,UE),移动台(mobilestation,MS),终端设备(terminaldevice)等等。为方便描述,上面提到的设备统称为电子装置。本申请实施例所涉及的结构体为:在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体成员还可以包括其它结构体,也可以包含指向自己结构体类型的指针,通常这种指针的应用是为了实现一些更高级的数据结构如链表和树等。为了更好的理解本申请实施例,下面首先对本申请实施例提供的应用程序的动态库信息获取方法所应用的电子装置。请参阅1所示,图1为本申请实施例提供了一种电子装置的示意图。如图1所示,电子装本文档来自技高网...

【技术保护点】
1.一种应用程序的动态库信息获取方法,其特征在于,所述方法包括:提取针对目标应用程序的动态库信息获取指令的内存地址,以及所述目标应用程序中的标识动态库中的DT_DEBUG条目的偏移量;根据所述动态库信息获取指令的内存地址和所述DT_DEBUG条目的偏移量,获取所述标识动态库的内存地址;从所述标识动态库的内存地址对应的内存空间中获取所述DT_DEBUG的值,以及根据所述DT_DEBUG的值得到目标结构体的内存地址,所述目标结构体中存储有目标应用程序已加载的动态库的动态库信息;访问所述目标结构体的内存地址对应的内存空间,得到所述目标结构体;遍历所述目标结构体,得到目标动态库信息。

【技术特征摘要】
1.一种应用程序的动态库信息获取方法,其特征在于,所述方法包括:提取针对目标应用程序的动态库信息获取指令的内存地址,以及所述目标应用程序中的标识动态库中的DT_DEBUG条目的偏移量;根据所述动态库信息获取指令的内存地址和所述DT_DEBUG条目的偏移量,获取所述标识动态库的内存地址;从所述标识动态库的内存地址对应的内存空间中获取所述DT_DEBUG的值,以及根据所述DT_DEBUG的值得到目标结构体的内存地址,所述目标结构体中存储有目标应用程序已加载的动态库的动态库信息;访问所述目标结构体的内存地址对应的内存空间,得到所述目标结构体;遍历所述目标结构体,得到目标动态库信息。2.根据权利要求1所述的方法,其特征在于,所述根据所述DT_DEBUG的值得到目标结构体的内存地址,包括:根据所述DT_DEBUG的值得到参考结构体的内存地址;访问所述参考结构体的内存地址,得到所述参考结构体;从所述参考结构体的r_map字段获取所述目标结构体的内存地址。3.根据权利要求1或2所述的方法,其特征在于,所述目标动态库信息包括目标动态库名称,在所述在遍历所述目标结构体,得到目标动态库信息后,所述方法还包括:将所述目标动态库名称与多个预设的危险动态库名称进行比对,得到所述目标动态库名称与所述多个预设的危险动态库名称中的每个危险动态库之间的相似度;根据所述目标动态库名称与所述多个预设的危险动态库名称中的每个危险动态库之间的相似度,判别所述目标动态库是否为危险动态库;若判别出所述目标动态库为危险动态库,则确定出所述目标应用程序的运行环境为不可信的运行环境。4.根据权利要求1或2所述的方法,其特征在于,所述在遍历所述目标结构体,得到目标动态库信息之后,所述方法还包括:根据所述目标动态库信息,提取所述目标动态库;在所述目标动态库中提取全部的钩子函数;根据预设的危险钩子函数判别方法,判别所述全部的钩子函数中是否存在危险钩子函数;若判别出所述全部的钩子函数中存在危险钩子函数,则确定出所述目标应用程序的运行环境为不可信的运行环境。5.根据权利要求1或2所述的方法,其特征在于,所述目标动态库信息包括目标动态库图标,所述方法还包括:将所述目标动态库图标与预设的危险动态库图标以矩阵的形式拆分为n*n个矩形图形,每个矩形图形具有一个矩阵坐标,其中,所述矩阵为n*n的矩阵,n为大于2的奇数;将所述目标动态库图标与预设的危险动态库图标中的矩形图形按照对应的坐标位置进行...

【专利技术属性】
技术研发人员:刘瑞恺
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:广东,44

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

1