System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及风险检测,尤其涉及一种应用程序风险检测方法及装置。
技术介绍
1、汽车开放系统架构(automotive open system architecture,autosar)是由全球汽车制造商、部件供应商及其他电子、半导体和软件系统公司联合建立,各成员保持开发合作伙伴关系的一套软件架构体系。autosar致力于为车辆工业开发开放的、标准化软件架构。
2、然而在开发过程中,由于开发人员的疏忽或者认知不足,开发的应用程序在运行过程中可能会出现一些错误,存在一定风险。
技术实现思路
1、本申请提供一种应用程序风险检测方法及装置,可以针对应用程序进行风险检测,以确定应用程序中存在的跨操作系统应用程序风险的对象。
2、为了实现上述目的,本申请提供了以下技术方案:
3、第一方面,本申请提供了一种应用程序风险检测方法,该方法包括:获取应用程序的m个对象之间的调用关系,m大于等于2,对象包括函数和/或变量;m个对象之间的调用关系包括函数访问变量、函数调用函数、变量引用变量,变量引用函数中的至少一个;根据m个对象之间的调用关系以及每个对象所属的操作系统应用程序,确定存在风险的对象,至少两个操作系统应用程序的风险等级不同。
4、通过以上方式,应用程序风险检测可以预先对应用程序进行风险检测,确定应用程序中存在跨操作系统应用程序风险的对象,以便后续开发人员调整应用程序,消除跨操作系统应用程序风险。
5、在一种可能的实现方式中,应用程序风险
6、相比于相关技术中人工配置函数指针,以得到应用程序中的对象之间的调用关系的方法,本申请的方法可以减少开发人员的工作量,提高确定应用程序的m个对象之间的调用关系的效率以及准确性。并且本申请对应用程序的二进制文件(机器码)进行处理,不依赖源代码,不需要在真实环境上运行,降低检测成本,
7、在一种可能的实现方式中,该方法还包括:显示存在风险的对象。
8、通过以上方式,开发人员可以方便直观的获取应用程序中存在风险的对象信息,提高用户体验。
9、在一种可能的实现方式中,该方法还包括:根据m个对象之间的调用关系以及每个对象所属的操作系统应用程序,确定第一信息和/或第二信息;第一信息表示存在风险的对象与其他对象的调用关系,第二信息表示存在风险的对象所属的操作系统应用程序;显示第一信息和/或第二信息。
10、通过以上方式,开发人员还可以获取应用程序中与存在风险的对象相关的其他信息,方便开发人员更改存在风险的应用程序,进一步提高用户体验。
11、在一种可能的实现方式中,该方法包括:获取应用程序的配置文件,配置文件包括n个段以及每个段所属的操作系统应用程序,n大于或等于1;n个段包括m个对象;每个段包括数据段或代码段;根据配置文件确定m个对象中每个对象所属的操作系统应用程序。
12、可选地,应用程序风险检测装置可以接收来自开发人员的应用程序的配置文件,而配置文件中包括m个对象所属的n个段,以及每个段所属的操作系统应用程序。通过以上方式,应用程序风险检测装置可以根据m个对象所属的n个段,以及每个段所属的操作系统应用程序,确定每个对象所属的操作系统应用程序,从而确定m个对象之间的调用关系是否存在跨操作系统应用程序风险。
13、在一种可能的实现方式中,风险包括跨操作系统应用程序风险,m个对象包括第一对象和第二对象,根据m个对象之间的调用关系以及每个对象所属的操作系统应用程序,确定存在风险的对象,包括:若第一对象调用第二对象,第一对象从属于第一操作系统应用程序,第二对象从属于第二操作系统应用程序,且第一操作系统应用程序禁止访问第二操作系统应用程序,则确定第一对象存在跨操作系统应用程序风险。
14、示例性的,当第一操作系统应用程序的车辆功能安全完整性等级等于或者低于第二操作系统应用程序的车辆功能安全完整性等级,则确定第一对象存在跨操作系统应用程序风险。
15、在一种可能的实现方式中,配置文件包括应用程序的第三方库,该方法还包括:解析应用程序的第三方库,以得到l个对象之间的调用关系;根据l个对象之间的调用关系模拟执行应用程序,以获取h个对象之间的调用关系,h个对象包括上述l个对象与m个对象。
16、通过以上方式,应用程序风险检测可以第三方库以及应用程序确定h个对象之间的调用关系,可以更加全面的检测应用程序中存在的数据竞争风险。
17、在一种可能的实现方式中,配置文件还包括线程入口函数,确定存在风险的对象,包括:若至少两个以上的线程入口函数调用同一个对象,则确定对象存在数据竞争风险。
18、示例性的若线程入口函数1与线程入口函数2通过调用变量2,则,变量2存在数据竞争风险。
19、第二方面,本申请提供了一种应用程序风险检测装置,包括:收发模块,用于获取应用程序的m个对象之间的调用关系,m大于等于2,对象包括函数和/或变量;m个对象之间的调用关系包括函数访问变量、函数调用函数、变量引用变量,变量引用函数中的至少一个;处理模块,用于根据m个对象之间的调用关系以及每个对象所属的操作系统应用程序,确定存在风险的对象,至少两个操作系统应用程序的风险等级不同。
20、在一种可能的实现方式中,该装置还包括:显示模块,用于显示存在风险的对象。
21、在一种可能的实现方式中,处理模块,还用于根据m个对象之间的调用关系以及每个对象所属的操作系统应用程序,确定第一信息和/或第二信息;第一信息表示存在风险的对象与其他对象的调用关系,第二信息表示存在风险的对象所属的操作系统应用程序;显示模块,还用于显示第一信息和/或第二信息。
22、在一种可能的实现方式中,收发模块,还用于获取应用程序的配置文件,配置文件包括n个段以及每个段所属的操作系统应用程序,n大于或等于1;n个段包括m个对象;每个段包括数据段或代码段;处理模块,还用于根据配置文件确定m个对象中每个对象所属的操作系统应用程序。在一种可能的实现方式中,风险包括跨操作系统应用程序风险,m个对象包括第一对象和第二对象,处理模块,还用于若第一对象调用第二对象,第一对象从属于第一操作系统应用程序,第二对象从属于第二操作系统应用程序,且第一操作系统应用程序禁止访问第二操作系统应用程序,则确定第一对象存在跨操作系统应用程序风险。在一种可能的实现方式中,配置文件包括应用程序的第三方库,处理模块,还用于解析应用程序的第三方库,以得到l个对象之间的调用关系;根据l个对象之间的调用关系模拟执行应用程序,以获取h个对象之间的调用关系,h个对象包括上述l个对象与m个对象。在一种可能的实现方式中,配置文件还包括线程入口函数,处理模块,还用于若至少两个以上的线程入口函数调用同一个对象,则确定对象存在数据竞争风险。
23、第三方面,本申请提供了一种应用程序风险检测系统,包括:上述第二本文档来自技高网...
【技术保护点】
1.一种应用程序风险检测方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法包括:
5.根据权利要求1-4任一项所述的方法,其特征在于,所述风险包括跨操作系统应用程序风险,所述M个对象包括第一对象和第二对象,所述根据所述M个对象之间的调用关系以及每个对象所属的操作系统应用程序,确定存在风险的对象,包括:
6.根据权利要求1-3任意一项所述的方法,其特征在于,所述配置文件包括所述应用程序的第三方库,所述方法还包括:
7.根据权利要求1-6任一项所述的方法,其特征在于,所述配置文件还包括线程入口函数,所述确定存在风险的对象,包括:
8.一种应用程序风险检测装置,其特征在于,包括:
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
10.一种应用程序风险检测系统,其特征在于,包括如权利要求8或9所述的应用程
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机程序或指令,当所述计算机程序或指令在应用程序风险检测装置上运行时,使得所述应用程序风险检测装置执行如权利要求1-7中任一项所述的方法。
...【技术特征摘要】
1.一种应用程序风险检测方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法包括:
5.根据权利要求1-4任一项所述的方法,其特征在于,所述风险包括跨操作系统应用程序风险,所述m个对象包括第一对象和第二对象,所述根据所述m个对象之间的调用关系以及每个对象所属的操作系统应用程序,确定存在风险的对象,包括:
6.根据权利要求1-3任意一项所述的方法,其特征在于,所述配置文件包括所述应用程序的...
【专利技术属性】
技术研发人员:陈运生,沈伟锋,项光特,刘露,吕乾涛,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。