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的值得到目标结构体的内存地址,所述目标结构体中存储有目标应用程序已加载的动态库的动态库信息;访问所述目标结构体的内存地址对应的内存空间,得到所述目标结构体;遍历所述目标结构体,得到目标动态库信息。本申请实施例的第二方面提供了一种应用程序的动态库信息获取装置,所述装置包括提取单元、第一获取单元、第二获取单元、访问单元和遍历单元,其中,提取单元,用于提取针对目标应用程序的动态库信息获取指令的内存地址 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。