本发明专利技术实施例提供了一种API检测法、装置、电子设备及可读介质,所述方法包括:获取待检测的应用程序的可执行文件;从所述可执行文件中提取出第一API集合;所述第一API集合中包括oc开发语言编写的API,和/或oc开发语言和swift开发语言混编写的API;确定所述第一API集合与预设私有API库之间是否存在交集,若是则提示所述交集中的API为私有API。本发明专利技术实施例对于oc开发语言编写,和/或oc开发语言和swift开发语言混编的应用程序均能够提取出API并进行API检测,提高了对应用程序的API检测准确度。测准确度。测准确度。
【技术实现步骤摘要】
API检测方法、装置、电子设备及可读介质
[0001]本专利技术实施例涉及开发
,特别是涉及一种API检测方法、一种API检测装置、一种电子设备以及一种计算机可读介质。
技术介绍
[0002]私有API(Application Programming Interface,应用程序接口)是指的IOS系统(苹果官方的操作系统)中未公开的API。
[0003]在具体实现中,当IOS系统的应用程序(APP)开发完成后,需要将应用程序提交到苹果官方去审核,如果苹果官方发现了提交的应用程序使用了私有API,苹果官方为了保证数据安全,会拒绝使用私有API的应用程序上线,如果仍然希望苹果官方能够允许该应用程序上线,那么开发人员就需要对应用程序重新开发,可以理解,应用程序的开发效率将大大降低,同时提升了应用程序的开发成本。
[0004]为了解决上述问题,在相关技术中会提前对应用程序的API进行检测,然而,目前针对应用程序的API检测都是黑盒操作,导出指定字符串后通过人工的方式进行匹配、筛选,并且对于swift开发语言编写的API几乎无法检测,可见,对应用程序的API检测准确度不高。
技术实现思路
[0005]本专利技术实施例是提供一种API检测方法、装置、电子设备以及计算机可读存储介质,以解决应用程序的API检测准确度不高的问题。
[0006]本专利技术实施例公开了一种API检测方法,包括:
[0007]获取待检测的应用程序的可执行文件;
[0008]从所述可执行文件中提取出第一API集合;所述第一API集合中包括oc开发语言编写的API,和/或oc开发语言和swift开发语言混编写的API;
[0009]确定所述第一API集合与预设私有API库之间是否存在交集,若是则提示所述交集中的API为私有API。
[0010]在一示例性实施例中,在所述从所述可执行文件中提取出第一API集合之后,所述方法还包括:
[0011]从所述第一API集合中提取出用户隐私权限对应的API组合为第二API集合;
[0012]获取所述应用程序的Info.plist文件;
[0013]当检测到所述第二API集合中的API不在所述info.plist文件中时,提示不在所述info.plist文件中的API未声明。
[0014]在一示例性实施例中,在所述从所述可执行文件中提取出第一API集合之后,所述方法还包括:
[0015]确定所述第一API集合中的API与预设敏感字段库之间是否存在交集,若是则提示所述交集中的API存在敏感字段。
[0016]在一示例性实施例中,所述私有API库通过如下方式生成:
[0017]从所述应用程序的框架文件中提取出全部API,所述全部API包括头文件和所述头文件的实现文件中的API;
[0018]获取所述全部API中除所述头文件中的AP以外的APII,并保存为私有API库。
[0019]在一示例性实施例中,所述从所述可执行文件中提取出第一API集合,包括:
[0020]当所述应用程序为oc开发语言编写时,从所述应用程序的所述可执行文件的__TEXT段中提取出API并保存到第一API集合中。
[0021]在一示例性实施例中,还包括:
[0022]当所述应用程序为oc开发语言和swift开发语言混编写时,从所述应用程序的所述可执行文件的__TEXT段中提取出第一API;
[0023]从所述应用程序的指定段中提取第二API;
[0024]对所述第二API进行逆重排得到第三API
[0025]将所述第一API和所述第三API保存到第一API集合中。
[0026]在一示例性实施例中,所述可执行文件为IOS系统的MachO文件。
[0027]本专利技术实施例还公开了一种API检测装置,包括:
[0028]可执行文件获取模块,用于获取待检测的应用程序的可执行文件;
[0029]API提取模块,用于从所述可执行文件中提取出第一API集合;所述第一API集合中包括oc开发语言编写的API,和/或oc开发语言和swift开发语言混编写的API;
[0030]私有API检测模块,用于确定所述第一API集合与预设私有API库之间是否存在交集,若是则提示所述交集中的API为私有API。
[0031]在一示例性实施例中,所述装置还可以包括:用户隐私权限检测模块,用于从所述第一API集合中提取出用户隐私权限对应的API组合为第二API集合;获取所述应用程序的Info.plist文件;当检测到所述第二API集合中的API不在所述info.plist文件中时,提示不在所述info.plist文件中的API未声明。
[0032]在一示例性实施例中,所述装置还包括:敏感字段检测模块,用于确定所述第一API集合中的API与预设敏感字段库之间是否存在交集,若是则提示所述交集中的API存在敏感字段。
[0033]在一示例性实施例中,所述装置还可以包括:私有API库生成模块,用于从所述应用程序的框架文件中提取出全部API,所述全部API包括头文件和所述头文件的实现文件中的API;获取所述全部API中除所述头文件中的API以外的API,并保存为私有API库。
[0034]在一示例性实施例中,所述可执行文件获取模块,用于当所述应用程序为oc开发语言编写时,从所述应用程序的所述可执行文件的__TEXT段中提取出API并保存到第一API集合中。
[0035]在一示例性实施例中,所述可执行文件获取模块,还用于当所述应用程序为oc开发语言和swift开发语言混编写时,从所述应用程序的所述可执行文件的__TEXT段中提取出第一API;从所述应用程序的指定段中提取第二API;对所述第二API进行逆重排得到第三API;将所述第一API和所述第三API保存到第一API集合中。
[0036]在一示例性实施例中,所述可执行文件可以为IOS系统的MachO文件。
[0037]本专利技术实施例还公开了一种电子设备,包括处理器、通信接口、存储器和通信总
线,其中,所述处理器、所述通信接口以及所述存储器通过所述通信总线完成相互间的通信;
[0038]所述存储器,用于存放计算机程序;
[0039]所述处理器,用于执行存储器上所存放的程序时,实现如本专利技术实施例所述的方法。
[0040]本专利技术实施例还公开了一个或多个计算机可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如本专利技术实施例所述的方法。
[0041]本专利技术实施例包括以下优点:
[0042]在本专利技术实施例中,获取待检测的应用程序的可执行文件,并从可执行文件中提取出第一API集合,其中,第一API集合中包括oc开发语言编写的API以及oc开发语言和swift开发语言混编写的API,通过比对第一API集合与预设私有API库,若第一API集合在预设API库中本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种API检测方法,其特征在于,包括:获取待检测的应用程序的可执行文件;从所述可执行文件中提取出第一API集合;所述第一API集合中包括oc开发语言编写的API,和/或oc开发语言和swift开发语言混编写的API;确定所述第一API集合与预设私有API库之间是否存在交集,若是则提示所述交集中的API为私有API。2.根据权利要求1所述的方法,其特征在于,在所述从所述可执行文件中提取出第一API集合之后,所述方法还包括:从所述第一API集合中提取出用户隐私权限对应的API组合为第二API集合;获取所述应用程序的Info.plist文件;当检测到所述第二API集合中的API不在所述info.plist文件中时,提示不在所述info.plist文件中的API未声明。3.根据权利要求1或2所述的方法,其特征在于,在所述从所述可执行文件中提取出第一API集合之后,所述方法还包括:确定所述第一API集合中的API与预设敏感字段库之间是否存在交集,并提示所述交集中的API存在敏感字段。4.根据权利要求1所述的方法,其特征在于,所述私有API库通过如下方式生成:从所述应用程序的框架文件中提取出全部API,所述全部API包括头文件和所述头文件的实现文件中的API;获取所述全部API中除所述头文件中的API以外的API,并保存为私有API库。5.根据权利要求1所述的方法,其特征在于,所述从所述可执行文件中提取出第一API集合,包括:当所述应用程序为oc开发语言编写时,从所述应用程序的所述可执行文件的__T...
【专利技术属性】
技术研发人员:李杨,
申请(专利权)人:五八同城信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。