一种数据处理方法、装置、电子设备及存储介质制造方法及图纸

技术编号:38220177 阅读:12 留言:0更新日期:2023-07-25 17:51
本发明专利技术提供了一种数据处理方法、装置、电子设备及存储介质。根据应用程序的组件的可执行文件,获取应用程序在组件中使用到的类的类名。根据该类名,获取应用程序在使用到的类中使用到的函数的函数名在组件的可执行文件中的第一偏移地址。根据该函数名在组件的可执行文件中的第一偏移地址获取该函数名。根据应用程序在组件中使用到的类的类名以及应用程序在使用到的类中使用到的函数的函数名,确定应用程序针对在组件中使用到的类中的使用到的函数的调用是否为非法调用。通过本申请,在应用程序的组件是编译后的文件的情况下,能够快速且准确检测应用程序针对在组件中使用到的类中的使用到的函数的调用是否为非法调用。类中的使用到的函数的调用是否为非法调用。类中的使用到的函数的调用是否为非法调用。

【技术实现步骤摘要】
一种数据处理方法、装置、电子设备及存储介质


[0001]本专利技术涉及计算机
,尤其涉及一种数据处理方法、装置、电子设备及存储介质。

技术介绍

[0002]随着技术的飞速发展,应用程序在人们的生活和工作中愈发重要,厂商为了更好地服务广大用户,往往会开发具有各种功能的应用程序。
[0003]例如,开发人员可以在集成开发工具中开发应用程序的计算机程序代码,并对开发的应用程序的计算机程序代码编译,得到应用程序的安装包,然后对外发布应用程序的安装包,以供广大用户下载应用程序的安装包,并基于应用程序的安装包在自己的设备中安装应用程序,进而可以使用应用程序。

技术实现思路

[0004]本申请示出了一种数据处理方法、装置、电子设备及存储介质。
[0005]第一方面,本申请示出了一种数据处理方法,所述方法应用于电子设备,所述方法包括:
[0006]获取应用程序的组件的可执行文件;
[0007]根据应用程序的组件的可执行文件,获取应用程序在组件中使用到的类的类名;
[0008]根据应用程序在组件中使用到的类的类名,获取应用程序在使用到的类中使用到的函数的函数名在组件的可执行文件中的第一偏移地址;
[0009]根据所述第一偏移地址,获取应用程序在使用到的类中使用到的函数的函数名;
[0010]根据应用程序在组件中使用到的类的类名以及应用程序在使用到的类中使用到的函数的函数名,确定应用程序针对在组件中使用到的类中的使用到的函数的调用是否为非法调用。
[0011]在一个可选的实现方式中,所述根据应用程序的组件的可执行文件,获取应用程序在组件中使用到的类的类名,包括:
[0012]在组件的可执行文件中定位出指令段中的第一特定区,第一特定区中至少记录了应用程序在组件中使用到的类的类名;
[0013]在第一特定区中获取应用程序在组件中使用到的类的类名。
[0014]在一个可选的实现方式中,所述根据应用程序在组件中使用到的类的类名,获取应用程序在使用到的类中使用到的函数的函数名在组件的可执行文件中的第一偏移地址,包括:
[0015]根据应用程序在组件中使用到的类的类名调用第一预设指令,得到第一预设指令返回的所述第一偏移地址。
[0016]在一个可选的实现方式中,所述根据应用程序在组件中使用到的类的类名,获取应用程序在使用到的类中使用到的函数的函数名在组件的可执行文件中的第一偏移地址,
包括:
[0017]根据应用程序在组件中使用到的类的类名以及组件的可执行文件,获取应用程序在组件中使用到的类的汇编指令;
[0018]根据应用程序在组件中使用到的类的汇编指令获取所述第一偏移地址。
[0019]在一个可选的实现方式中,所述根据应用程序在组件中使用到的类的汇编指令获取所述第一偏移地址,包括:
[0020]根据应用程序在组件中使用到的类的汇编指令调用第二预设指令,得到第二预设指令返回的所述第一偏移地址。
[0021]在一个可选的实现方式中,所述根据所述第一偏移地址,获取应用程序在使用到的类中使用到的函数的函数名,包括:
[0022]在组件的可执行文件中定位出指令段中的第二特定区,第二特定区中至少记录了:应用程序在组件中使用到的函数的函数名在组件的可执行文件中的第一偏移地址与应用程序在组件中使用到的函数的函数名之间的映射关系;
[0023]根据所述第一偏移地址以及所述第二映射关系,获取应用程序在使用到的类中使用到的函数的函数名。
[0024]在一个可选的实现方式中,所述根据应用程序在组件中使用到的类的类名以及应用程序在使用到的类中使用到的函数的函数名,确定应用程序针对在组件中使用到的类中的使用到的函数的调用是否为非法调用,包括:
[0025]根据应用程序在组件中使用到的类的类名以及应用程序在使用到的类中使用到的函数的函数名生成调用应用程序编程接口API,以及,获取事先统计的调用API集合,所述调用API集合中包括至少一个非法调用API;
[0026]在所述调用API位于所述调用API集合的情况下,确定应用程序针对在组件中使用到的类中的使用到的函数的调用为非法调用。
[0027]在一个可选的实现方式中,所述获取应用程序的组件的可执行文件,包括:
[0028]获取应用程序的可执行文件,应用程序的可执行文件中的预设段中设置有应用程序的各个组件的可执行文件;
[0029]在应用程序的可执行文件中的预设段中,获取应用程序的各个组件的可执行文件。
[0030]在一个可选的实现方式中,应用程序的可执行文件包括.ipa格式的可执行文件;预设段包括Frameworks段;组件的可执行文件包括mach

o格式的可执行文件。
[0031]在一个可选的实现方式中,所述获取应用程序的组件的可执行文件,包括:
[0032]获取应用程序的各个组件的组件名;
[0033]根据应用程序的各个组件的组件名,在所述电子设备中或云端中获取应用程序的各个组件的可执行文件。
[0034]在一个可选的实现方式中,所述组件包括动态库组件和/或静态库组件。
[0035]在一个可选的实现方式中,组件的可执行文件是根据多个子组件的文件生成的;所述方法还包括:
[0036]在确定出应用程序针对在组件中使用到的类中的使用到的函数的调用为非法调用的情况下,根据组件的可执行文件中记录的调用信息,获取调用使用到的类中的使用到
的函数的调用函数的函数名;
[0037]分别获取各个子组件的函数名集合,子组件的函数名集合中包括子组件中的各个函数的函数名;
[0038]确定调用函数的函数名所在的函数名集合;
[0039]获取确定的函数名集合所属的子组件的组件名;
[0040]输出提示信息,提示信息中包括所述组件名以及调用函数的函数名,提示信息用于提示所述组件名所对应的子组件中的所述函数名对应的所述调用函数发起了非法调用。
[0041]在一个可选的实现方式中,所述分别获取各个子组件的函数名集合,包括:
[0042]对于任意一个子组件,对所述子组件调用第三预设指令,得到第三预设指令返回的包括所述子组件中包括的各个函数的函数名的函数名集合。
[0043]在一个可选的实现方式中,所述根据组件的可执行文件中记录的调用信息,获取调用使用到的类中的使用到的函数的调用函数的函数名,包括:
[0044]根据组件的可执行文件中记录的调用信息,获取调用函数在其所在的组件的可执行文件中的文本段中的第二偏移地址,以及,获取组件的可执行文件中的文本段在内存中的第一绝对地址;
[0045]根据第二偏移地址以及第一绝对地址获取调用函数在内存中的第二绝对地址;
[0046]根据第二绝对地址获取调用函数的函数名。
[0047]第二方面,本申请示出了一种数据处理装置,所述装置应用于电子设备,所述装置本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法应用于电子设备,所述方法包括:获取应用程序的组件的可执行文件;根据应用程序的组件的可执行文件,获取应用程序在组件中使用到的类的类名;根据应用程序在组件中使用到的类的类名,获取应用程序在使用到的类中使用到的函数的函数名在组件的可执行文件中的第一偏移地址;根据所述第一偏移地址,获取应用程序在使用到的类中使用到的函数的函数名;根据应用程序在组件中使用到的类的类名以及应用程序在使用到的类中使用到的函数的函数名,确定应用程序针对在组件中使用到的类中的使用到的函数的调用是否为非法调用。2.根据权利要求1所述的方法,其特征在于,所述根据应用程序的组件的可执行文件,获取应用程序在组件中使用到的类的类名,包括:在组件的可执行文件中定位出指令段中的第一特定区,第一特定区中至少记录了应用程序在组件中使用到的类的类名;在第一特定区中获取应用程序在组件中使用到的类的类名。3.根据权利要求1所述的方法,其特征在于,所述根据应用程序在组件中使用到的类的类名,获取应用程序在使用到的类中使用到的函数的函数名在组件的可执行文件中的第一偏移地址,包括:根据应用程序在组件中使用到的类的类名调用第一预设指令,得到第一预设指令返回的所述第一偏移地址。4.根据权利要求1所述的方法,其特征在于,所述根据应用程序在组件中使用到的类的类名,获取应用程序在使用到的类中使用到的函数的函数名在组件的可执行文件中的第一偏移地址,包括:根据应用程序在组件中使用到的类的类名以及组件的可执行文件,获取应用程序在组件中使用到的类的汇编指令;根据应用程序在组件中使用到的类的汇编指令获取所述第一偏移地址。5.根据权利要求4所述的方法,其特征在于,所述根据应用程序在组件中使用到的类的汇编指令获取所述第一偏移地址,包括:根据应用程序在组件中使用到的类的汇编指令调用第二预设指令,得到第二预设指令返回的所述第一偏移地址。6.根据权利要求1所述的方法,其特征在于,所述根据所述第一偏移地址,获取应用程序在使用到的类中使用到的函数的函数名,包括:在组件的可执行文件中定位出指令段中的第二特定区,第二特定区中至少记录了:应用程序在组件中使用到的函数的函数名在组件的可执行文件中的第一偏移地址与应用程序在组件中使用到的函数的函数名之间的映射关系;根据所述第一偏移地址以及所述第二映射关系,获取应用程序在使用到的类中使用到的函数的函数名。7.根据权利要求1所述的方法,其特征在于,所述根据应用程序在组件中使用到的类的类名以及应用程序在使用到的类中使用到的函数的函数名,确定应用程序针对在组件中使用到的类中的使用到的函数的调用是否为非法调用,包括:
根据应用程序在组件中使用到的类的类名以及应用程序在使用到的类中使用到的函数的函数名生成调用应用程序编程接口API,以及,获取事先统计的调用API集合,所述调用API集合中包括至少一个非法调用API;在所述调用API位于所述调用API集合的情况下,确定应用程序针对在组件中使用到的类中的使用到的函数的调用为非法调用。8.根据权利要求1所述的方法,其特征在于,所述获取应用程序的组件的可执行文件,包括:获取应用程序的可执行文件,应用程序的可执行文件中的预设段中设置有应用程序的各个组件的可执行文件;在应用程序的可执行文件中的预设段中,获取应用程序的各个组件的可执行文件。9.根据权利要求8所述的方法,其特征在于,应用程序的可执行文件包括.ipa格式的可执行文件;预设段包括Frameworks段;组件的可执行文件包括mach

o格式的可执行文件。10.根据权利要求1所述的方法,其特征在于,所述获取应用程序的组件的可执行文件,包括:获取应用程序的各个组件的组件名;根据应用程序的各个组件的组件名,在所述电子设备中或云端中获取应用程序的各个组件的可执行文件。11.根据权利要求1

10任一项所述的方法,其特征在于,所述组件包括动态库组件和/或静态库组件。12.根据权利要求1所述的方法,其特征在于,组件的可执行文件是根据多个子组件的文件生成的;所述方法还包括:在确定出应用程序针对在组件中使用到的类中的使用到的函数的调用为非法调用的情况下,根据组件的可执行文件中记录的调用信息,获取调用使用到的类中的使用到的函数的调用函数的函数名;分别获取各个子组件的函数名集合,子组件的函数名集合中包括子组件中的各个函数的函数名;确定调用函数的函数名所在的函数名集合;获取确定的函数名集合所属的子组件的组件名;输出提示信息,提示信息中包括所述组件名以及调用函数的函数名,提示信息用于提示所述组件名所对应的子组件中的所述函数名对应的所述调用函数发起了非法调用。13.根据权利要求12所述的方法,其特征在于,所述分别获取各个子组件的函数名集合,包括:对于任意一个子组件,对所述子组件调用第三预设指令,得到第三预设指令返回的包括所述子组件中包括的各个函数的函数名的函数名集合。14.根据权利要求12所述的方法,其特征在于,所述根据组件的可执行文件中记录的调用信息,获取调用使用到的类中的使用到的函数的调用函数的函数名,包括:根据组件的可执行文件中记录的调用信息,获取调用函数在其所在的组件的可执行文件中的文本段中的第二偏移地址,以及,获取组件的可执行文件中的文本段在内存中的第一绝对地址;
根据第二偏移地址以及第一绝对地址获取调用函数在内存中的第二绝对地址;根据第二绝对地址获取调用函数的函数名。15.一种数据处理装置,其特征在于,所述装置应用于电子设备,所述装置包括:第一获取模块,用于获取应用程...

【专利技术属性】
技术研发人员:蒋演彭飞刘孟
申请(专利权)人:五八同城信息技术有限公司
类型:发明
国别省市:

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

1