CN105243329B - Android系统漏洞挖掘的方法及装置 - Google Patents

Android系统漏洞挖掘的方法及装置 Download PDF

Info

Publication number
CN105243329B
CN105243329B CN201510703697.3A CN201510703697A CN105243329B CN 105243329 B CN105243329 B CN 105243329B CN 201510703697 A CN201510703697 A CN 201510703697A CN 105243329 B CN105243329 B CN 105243329B
Authority
CN
China
Prior art keywords
system service
android system
function
interface
android
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510703697.3A
Other languages
English (en)
Other versions
CN105243329A (zh
Inventor
龚广
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Hongxiang Technical Service Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201510703697.3A priority Critical patent/CN105243329B/zh
Publication of CN105243329A publication Critical patent/CN105243329A/zh
Priority to PCT/CN2016/103365 priority patent/WO2017071579A1/zh
Application granted granted Critical
Publication of CN105243329B publication Critical patent/CN105243329B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Computing Systems (AREA)

Abstract

本发明提供了一种Android系统漏洞挖掘的方法和装置:获取与任一Android系统服务接口相应的函数及与函数相匹配的参数类型信息;基于参数类型信息,生成与函数相匹配的随机参数;基于函数及与函数相匹配的随机参数,通过Android系统服务接口执行调用处理,并提取执行结果日志;根据执行结果日志,判断Android系统服务接口是否存在系统漏洞。本发明主动模拟Android系统服务接口执行调用处理的情形,在调用处理完毕后查看系统崩溃情况,即可准确预知在实际应用场景中,Android系统服务接口执行哪些调用处理时会发生崩溃,可为挖掘到的系统漏洞提供修复方案提供可靠依据。

Description

Android系统漏洞挖掘的方法及装置
技术领域
本发明涉及无线移动通信技术领域,具体而言,本发明涉及一种Android系统漏洞挖掘的方法及装置。
背景技术
随着技术的高速发展,智能终端已经成为必不可少的通信产品,功能强大、用户体验丰富的智能终端为人们的生活带来了极大的便利。由于智能终端的高使用率,大量搭载在智能终端上的应用程序应运而生。在智能终端中,Android系统服务通常运行在高权限的系统服务进程中,如System_Server服务进程、mediaServer服务进程等,第三方应用通常运行在低权限的应用进程中,Android系统服务进程为应用进程提供系统服务,应用进程通过Binder调用Android系统服务进程提供的功能。在Android系统服务进程与应用进程进行交互的过程中,即在高低权限进程的交互过程中,如果高权限的系统服务进程对低权限的应用进程传来的数据校验不严格,则有可能导致安全漏洞。然而现有技术中没有针对Android系统漏洞挖掘的解决方案。
发明内容
为克服上述技术问题或者至少部分地解决上述技术问题,特提出以下技术方案:
本发明提供了一种Android系统漏洞挖掘的方法,包括:
获取与任一Android系统服务接口相应的函数及与所述函数相匹配的参数类型信息;
基于所述参数类型信息,生成与所述函数相匹配的随机参数;
基于所述函数及与所述函数相匹配的随机参数,通过所述Android系统服务接口执行调用处理,并提取执行结果日志;
根据所述执行结果日志,判断所述Android系统服务接口是否存在系统漏洞。
其中,获取与任一Android系统服务接口相应的函数及与所述函数相匹配的参数类型信息,具体包括:
在预构建的数据库中提取与任一Android系统服务接口相应的函数及与所述函数相匹配的参数类型信息。
其中,所述预构建的数据库中至少包括:
多个Android系统服务接口;
与任一Android系统服务接口相应的函数;
与任一函数相匹配的参数类型信息。
优选地,该方法还包括:
通过预定的系统服务管理接口来获取与系统服务标识相匹配的Android系统服务接口;
获取与各个Android系统服务接口相应的函数及与所述函数相匹配的参数类型信息。
其中,所述Android系统服务接口包括一级接口和/或二级接口。
具体地,通过预定的系统服务管理接口来获取与系统服务标识相匹配的Android系统服务接口,包括以下至少任一情形:
基于多个第一系统服务标识,通过预定的系统服务管理接口来获取与各个第一系统服务标识相匹配的一级接口;
基于多个第二系统服务标识,通过调用各个一级接口中与各个第二系统服务标识相应的函数,获取二级接口。
优选地,该方法还包括:
当判断所述Android系统服务接口存在系统漏洞时,判断是否达到预设的停止条件;
若否,则继续执行获取与任一Android系统服务接口相应的函数及与所述函数相匹配的参数类型信息的步骤。
本发明还提供了一种Android系统漏洞挖掘的装置,包括:
第一获取模块,用于获取与任一Android系统服务接口相应的函数及与所述函数相匹配的参数类型信息;
随机生成模块,用于基于所述参数类型信息,生成与所述函数相匹配的随机参数;
调用处理模块,用于基于所述函数及与所述函数相匹配的随机参数,通过所述Android系统服务接口执行调用处理,并提取执行结果日志;
第一判断模块,用于根据所述执行结果日志,判断所述Android系统服务接口是否存在系统漏洞。
其中,所述第一获取模块具体用于在预构建的数据库中提取与任一Android系统服务接口相应的函数及与所述函数相匹配的参数类型信息。
其中,所述预构建的数据库中至少包括:
多个Android系统服务接口;
与任一Android系统服务接口相应的函数;
与任一函数相匹配的参数类型信息。
优选地,该装置还包括:
第二获取模块,用于通过预定的系统服务管理接口来获取与系统服务标识相匹配的Android系统服务接口;
第三获取模块,用于获取与各个Android系统服务接口相应的函数及与所述函数相匹配的参数类型信息。
其中,所述Android系统服务接口包括一级接口和/或二级接口。
具体地,通过预定的系统服务管理接口来获取与系统服务标识相匹配的Android系统服务接口,包括以下至少任一情形:
基于多个第一系统服务标识,通过预定的系统服务管理接口来获取与各个第一系统服务标识相匹配的一级接口;
基于多个第二系统服务标识,通过调用各个一级接口中与各个第二系统服务标识相应的函数,获取二级接口。
优选地,该装置还包括:
第二判断模块,用于当判断所述Android系统服务接口存在系统漏洞时,判断是否达到预设的停止条件;
若否,则所述第一获取模块继续用于获取与任一Android系统服务接口相应的函数及与所述函数相匹配的参数类型信息。
本发明的技术方案填补了现有技术中没有针对Android系统漏洞挖掘的解决方案的空白。当基于函数及与函数相匹配的随机参数,在Android系统服务接口执行调用处理时,模拟Android系统服务接口执行调用处理的情形,在调用处理完毕后,提取执行结果日志并判断Android系统服务接口是否存在系统漏洞,如此可以查看到系统崩溃情况。由于本发明主动模拟Android系统服务接口执行调用处理的情形,在调用处理完毕后查看系统崩溃情况,即可准确预知在实际应用场景中,Android系统服务接口执行哪些调用处理时会发生崩溃,可为挖掘到的系统漏洞提供修复方案提供可靠依据;进一步地,可基于挖掘结果预先为系统漏洞提出修复方案,在系统漏洞产生较大负面影响之前解决问题,使得Android系统在终端设备中的运行更加稳定、牢靠,提高了用户的终端使用体验。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明一个实施例的Android系统漏洞挖掘方法的流程示意图;
图2为本发明一个优选实施例的的Android系统漏洞挖掘方法的流程示意图;
图3为本发明另一实施例的的Android系统漏洞挖掘装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(Personal Communications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global Positioning System,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
Android系统服务是给应用程序提供系统功能调用的一系列服务的总称。系统服务通常运行在系统服务进程中,如System_Server服务进程、mediaServer服务进程等,应用程序通常运行在应用进程中。应用进程和系统服务进程需要进行数据交互,在交互的过程中一些进程的崩溃可能导致系统漏洞的产生。因此,本发明提出了一种Android系统漏洞挖掘的方法及装置。
图1为本发明一个实施例的Android系统漏洞挖掘方法的流程示意图。
获取与任一Android系统服务接口相应的函数及与函数相匹配的参数类型信息;基于参数类型信息,生成与函数相匹配的随机参数;基于函数及与函数相匹配的随机参数,通过Android系统服务接口执行调用处理,并提取执行结果日志;根据执行结果日志,判断Android系统服务接口是否存在系统漏洞。
步骤S110:获取与任一Android系统服务接口相应的函数及与函数相匹配的参数类型信息。
可选地,可在执行每一次的漏洞挖掘时执行一次获取Android系统服务接口相应的函数及与函数相匹配的参数类型信息的步骤。
优选地,在预构建的数据库中提取与任一Android系统服务接口相应的函数及与该函数相匹配的参数类型信息。
具体地,将可提取到的多个Android系统服务接口、各个Android系统服务接口相应的函数及与该函数相匹配的参数类型信息相关联地存入数据库中,后续从该数据库中直接提取数据来进行系统漏洞的挖掘。在一具体应用场景时,在预构建的数据库中随机选择某一Android系统服务接口下的一个调用号,该调用号与该Android系统服务接口中的一个函数相对应,即随机选择一个调用号就相当于随机选择了接口中相应的一个函数。
其中,预构建的数据库中包括但不限于:Android系统服务接口、与Android系统服务接口相应的函数、与函数相匹配的参数类型信息。其中,参数类型信息可以是整数型、浮点型、字符串型等。例如,Service Manager是一个Android系统服务接口中的系统服务管理接口,fx是Service Manager接口相应的一个函数,其调用号是0xyy,整数型是与fx相匹配的参数类型信息。
具体地,预构建数据库的方式包括:通过预定的系统服务管理接口来获取与系统服务标识相匹配的Android系统服务接口;根据各个Android系统服务接口,获取与Android系统服务接口相应的函数及与该函数相匹配的参数类型信息。需要说明的是,可以在aosp(Android Open-Source Project,Android开放源代码项目)源码中查找与各个Android系统服务接口相应的函数和这些函数包含的参数类型信息。
例如,通过调用预定的系统服务管理接口service manager中的do_find_service函数,其中,调用该函数的参数为Android系统服务标识,如用于提供通话注册及管理的系统服务TelephonyManager,来获取与TelephonyManager相匹配的Android系统服务接口。
可选地,Android系统服务接口包括但不限于一级接口和/或二级接口。
具体地,获取一级接口及二级接口的方式包括:
基于多个第一系统服务标识,通过预定的系统服务管理接口来获取与各个第一系统服务标识相匹配的一级接口;
基于多个第二系统服务标识,通过调用各个一级接口中与各个第二系统服务标识相应的函数,获取二级接口。
例如,接上例,通过调用Service Manager系统服务管理接口里面的函数do_find_service函数,该函数包含的参数为第一系统服务标识例如为PowerManager,来获取与PowerManager相匹配的一级接口。需要说明的是,每一个不同的系统服务标识对应一个不同的一级接口或二级接口。
步骤S120:基于参数类型信息,生成与函数相匹配的随机参数。
例如,参数类型信息示出参数为整数型,则生成与函数相匹配的符合参数类型信息的整数型随机参数。
步骤S130:基于函数及与函数相匹配的随机参数,通过Android系统服务接口执行调用处理,并提取执行结果日志。
具体地,可以通过binder调用将函数及与函数相匹配的随机参数从Android系统服务接口发送到Android系统服务进程中进行处理。在Android系统中,每一个应用程序都运行在独立的应用进程中,这也保证了当其中一个应用程序出现异常而不会影响另一个应用程序的正常运转。在许多情况下,应用进程与系统服务进程通过binder进行数据交互,binder是Android中一种实现进程间通信的方式。binder属于一个驱动,工作在Linux层面,运行在内核,它的操作运行是基于一段内存,应用进程对binder的调用都是通过系统服务进程的调用来完成的。例如,通过binder调用将与Android系统服务接口相应的函数fx及与fx相匹配的随机参数ff发送到相应的Android系统服务进程进行处理,若fx是计算函数,具体计算方式为随机参数自乘,则Android系统服务进程需要将随机参数代入到该函数中进行计算即计算ff乘以ff,所得结果是fe01。如果系统没有对计算结果进行预估处理,而是直接给计算结果分配一个和随机参数ff一样大小的空间即8位的空间,而计算结果fe01需要占用一个16位的空间,因此8位的存储空间无法满足16位的存储空间就会产生溢出。
步骤S140:根据执行结果日志,判断Android系统服务接口是否存在系统漏洞。
例如,接上例,在产生溢出之后,当在执行结果日志中查看执行结果时,会有进程崩溃的信息产生。当然对于不同的接口、不同的函数、不同的与函数相匹配的随机参数和不同的进程处理方式,产生的崩溃种类也不尽相同,因此在执行结果日志中查看到的进程崩溃信息也不相同。执行结果日志会记录崩溃的进程和崩溃的进程的基本信息。
可选地,如图2所示,当判断Android系统服务接口存在系统漏洞时,判断是否达到预设的停止条件;若否,则继续执行获取与任一Android系统服务接口相应的函数及与函数相匹配的参数类型信息的步骤。需要说明的是,当挖掘一次系统漏洞后可以再次循环挖掘过程,直到判断达到预设停止条件后停止挖掘系统漏洞。其中,预设的停止条件可以是挖掘到预设数量的系统漏洞后停止,也可以是达到预设时间后停止,对此可以根据具体应用场景设置,本发明实施例不做限定。
本发明的技术方案填补了现有技术中没有针对Android系统漏洞挖掘的解决方案的空白。当基于函数及与函数相匹配的随机参数,在Android系统服务接口执行调用处理时,模拟Android系统服务接口执行调用处理的情形,在调用处理完毕后,提取执行结果日志并判断Android系统服务接口是否存在系统漏洞,如此可以查看到系统崩溃情况。由于本发明主动模拟Android系统服务接口执行调用处理的情形,在调用处理完毕后查看系统崩溃情况,即可准确预知在实际应用情形时,Android系统服务接口执行哪些调用处理时会发生崩溃,可为挖掘到的系统漏洞提供修复方案提供可靠依据;进一步地,可基于挖掘结果预先为系统漏洞提出修复方案,在系统漏洞产生较大负面影响之前解决问题,使得Android系统在终端设备中的运行更加稳定、牢靠,提高了用户的终端使用体验。
图3为本发明另一实施例的的Android系统漏洞挖掘装置的结构示意图。
第一获取模块210获取与任一Android系统服务接口相应的函数及与函数相匹配的参数类型信息;随机生成模块220基于参数类型信息,生成与函数相匹配的随机参数;调用处理模块230基于函数及与函数相匹配的随机参数,通过Android系统服务接口执行调用处理,并提取执行结果日志;第一判断模块240根据执行结果日志,判断Android系统服务接口是否存在系统漏洞。
第一获取模块210获取与任一Android系统服务接口相应的函数及与函数相匹配的参数类型信息。
可选地,可在执行每一次的漏洞挖掘时执行一次获取Android系统服务接口相应的函数及与函数相匹配的参数类型信息的步骤。
优选地,第一获取模块210具体用于在预构建的数据库中提取与任一Android系统服务接口相应的函数及与函数相匹配的参数类型信息。
具体地,将可提取到的多个Android系统服务接口、各个Android系统服务接口相应的函数及与该函数相匹配的参数类型信息相关联地存入数据库中,后续从该数据库中直接提取数据来进行系统漏洞的挖掘。在一具体应用场景时,在预构建的数据库中随机选择某一Android系统服务接口下的一个调用号,该调用号与该Android系统服务接口中的一个函数相对应,即随机选择一个调用号就相当于随机选择了接口中相应的一个函数。
其中,预构建的数据库中包括但不限于:Android系统服务接口、与Android系统服务接口相应的函数、与函数相匹配的参数类型信息。其中,参数类型信息可以是整数型、浮点型、字符串型等。例如,Service Manager是一个Android系统服务接口中的系统服务管理接口,fx是Service Manager接口相应的一个函数,其调用号是0xyy,整数型是与fx相匹配的参数类型信息。
具体地,Android系统漏洞挖掘装置还包括:第二获取模块,用于通过预定的系统服务管理接口来获取与系统服务标识相匹配的Android系统服务接口;第三获取模块,用于获取与各个Android系统服务接口相应的函数及与所述函数相匹配的参数类型信息。需要说明的是,可以在aosp(Android Open-Source Project,Android开放源代码项目)源码中查找与各个Android系统服务接口相应的函数和这些函数包含的参数类型信息。
例如,通过调用预定的系统服务管理接口service manager中的do_find_service函数,其中,调用该函数的参数为Android系统服务标识,如用于提供通话注册及管理的系统服务TelephonyManager,来获取与TelephonyManager相匹配的Android系统服务接口。
可选地,Android系统服务接口包括但不限于一级接口和/或二级接口。
具体地,获取一级接口及二级接口的方式包括:
基于多个第一系统服务标识,通过预定的系统服务管理接口来获取与各个第一系统服务标识相匹配的一级接口;
基于多个第二系统服务标识,通过调用各个一级接口中与各个第二系统服务标识相应的函数,获取二级接口。
例如,接上例,通过调用Service Manager系统服务管理接口里面的函数do_find_service函数,该函数包含的参数为第一系统服务标识例如为PowerManager,来获取与PowerManager相匹配的一级接口。需要说明的是,每一个不同的系统服务标识对应一个不同的一级接口或二级接口。
随机生成模块220基于参数类型信息,生成与函数相匹配的随机参数。
例如,参数类型信息示出参数为整数型,则生成与函数相匹配的符合参数类型信息的整数型随机参数。
调用处理模块230基于函数及与函数相匹配的随机参数,通过Android系统服务接口执行调用处理,并提取执行结果日志。
具体地,可以通过binder调用将函数及与函数相匹配的随机参数从Android系统服务接口发送到Android系统服务进程中进行处理。在Android系统中,每一个应用程序都运行在独立的应用进程中,这也保证了当其中一个应用程序出现异常而不会影响另一个应用程序的正常运转。在许多情况下,应用进程与系统服务进程通过binder进行数据交互,binder是Android中一种实现进程间通信的方式。binder属于一个驱动,工作在Linux层面,运行在内核,它的操作运行是基于一段内存,应用进程对binder的调用都是通过系统服务进程的调用来完成的。例如,通过binder调用将与Android系统服务接口相应的函数fx及与fx相匹配的随机参数ff发送到相应的Android系统服务进程进行处理,若fx是计算函数,具体计算方式为随机参数自乘,则Android系统服务进程需要将随机参数代入到该函数中进行计算即计算ff乘以ff,所得结果是fe01。如果系统没有对计算结果进行预估处理,而是直接给计算结果分配一个和随机参数ff一样大小的空间即8位的空间,而计算结果fe01需要占用一个16位的空间,因此8位的存储空间无法满足16位的存储空间就会产生溢出。
第一判断模块240根据执行结果日志,判断Android系统服务接口是否存在系统漏洞。
例如,接上例,在产生溢出之后,当在执行结果日志中查看执行结果时,会有进程崩溃的信息产生。当然对于不同的接口、不同的函数、不同的与函数相匹配的随机参数和不同的进程处理方式,产生的崩溃种类也不尽相同,因此在执行结果日志中查看到的进程崩溃信息也不相同。执行结果日志会记录崩溃的进程和崩溃的进程的基本信息。
可选地,Android系统漏洞挖掘装置还包括:第二判断模块,用于当判断所述Android系统服务接口存在系统漏洞时,判断是否达到预设的停止条件;若否,则所述第一获取模块继续用于获取与任一Android系统服务接口相应的函数及与所述函数相匹配的参数类型信息。需要说明的是,当挖掘一次系统漏洞后可以再次循环挖掘过程,直到判断达到预设停止条件后停止挖掘系统漏洞。其中,预设的停止条件可以是挖掘到预设数量的系统漏洞后停止,也可以是达到预设时间后停止,对此可以根据具体应用场景设置,本发明实施例不做限定。
本发明的技术方案填补了现有技术中没有针对Android系统漏洞挖掘的解决方案的空白。当基于函数及与函数相匹配的随机参数,在Android系统服务接口执行调用处理时,模拟Android系统服务接口执行调用处理的情形,在调用处理完毕后,提取执行结果日志并判断Android系统服务接口是否存在系统漏洞,如此可以查看到系统崩溃情况。由于本发明主动模拟Android系统服务接口执行调用处理的情形,在调用处理完毕后查看系统崩溃情况,即可准确预知在实际应用情形时,Android系统服务接口执行哪些调用处理时会发生崩溃,可为挖掘到的系统漏洞提供修复方案提供可靠依据;进一步地,可基于挖掘结果预先为系统漏洞提出修复方案,在系统漏洞产生较大负面影响之前解决问题,使得Android系统在终端设备中的运行更加稳定、牢靠,提高了用户的终端使用体验。
本技术领域技术人员可以理解,本发明包括涉及用于执行本申请中所述操作中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(Erasable ProgrammableRead-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically ErasableProgrammable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (14)

1.一种Android系统漏洞挖掘的方法,其特征在于,包括:
在预构建的数据库中提取与任一Android系统服务接口相应的函数及与所述函数相匹配的参数类型信息;
基于所述参数类型信息,生成与所述函数相匹配的随机参数;
基于所述函数及与所述函数相匹配的随机参数,通过所述Android系统服务接口执行调用处理,并提取执行结果日志;
根据所述执行结果日志,判断所述Android系统服务接口是否存在系统漏洞。
2.根据权利要求1所述Android系统漏洞挖掘的方法,其中,所述预构建的数据库中至少包括:
多个Android系统服务接口;
与任一Android系统服务接口相应的函数;
与任一函数相匹配的参数类型信息。
3.根据权利要求1或2所述Android系统漏洞挖掘的方法,其中,该方法还包括:
通过预定的系统服务管理接口来获取与系统服务标识相匹配的Android系统服务接口;
获取与各个Android系统服务接口相应的函数及与所述函数相匹配的参数类型信息。
4.根据权利要求3所述Android系统漏洞挖掘的方法,其特征在于,所述Android系统服务接口包括一级接口和/或二级接口。
5.根据权利要求4所述Android系统漏洞挖掘的方法,其特征在于,通过预定的系统服务管理接口来获取与系统服务标识相匹配的Android系统服务接口,包括以下至少任一情形:
基于多个第一系统服务标识,通过预定的系统服务管理接口来获取与各个第一系统服务标识相匹配的一级接口;
基于多个第二系统服务标识,通过调用各个一级接口中与各个第二系统服务标识相应的函数,获取二级接口。
6.根据权利要求1所述Android系统漏洞挖掘的方法,其特征在于,该方法还包括:
当判断所述Android系统服务接口存在系统漏洞时,判断是否达到预设的停止条件;
若否,则继续执行获取与任一Android系统服务接口相应的函数及与所述函数相匹配的参数类型信息的步骤。
7.一种Android系统漏洞挖掘的装置,其特征在于,包括:
第一获取模块,用于在预构建的数据库中提取与任一Android系统服务接口相应的函数及与所述函数相匹配的参数类型信息;
随机生成模块,用于基于所述参数类型信息,生成与所述函数相匹配的随机参数;
调用处理模块,用于基于所述函数及与所述函数相匹配的随机参数,通过所述Android系统服务接口执行调用处理,并提取执行结果日志;
第一判断模块,用于根据所述执行结果日志,判断所述Android系统服务接口是否存在系统漏洞。
8.根据权利要求7所述Android系统漏洞挖掘的装置,其中,所述预构建的数据库中至少包括:
多个Android系统服务接口;
与任一Android系统服务接口相应的函数;
与任一函数相匹配的参数类型信息。
9.根据权利要求7或8所述Android系统漏洞挖掘的装置,其中,该装置还包括:
第二获取模块,用于通过预定的系统服务管理接口来获取与系统服务标识相匹配的Android系统服务接口;
第三获取模块,用于获取与各个Android系统服务接口相应的函数及与所述函数相匹配的参数类型信息。
10.根据权利要求9所述Android系统漏洞挖掘的装置,其特征在于,所述Android系统服务接口包括一级接口和/或二级接口。
11.根据权利要求10所述Android系统漏洞挖掘的装置,其特征在于,通过预定的系统服务管理接口来获取与系统服务标识相匹配的Android系统服务接口,包括以下至少任一情形:
基于多个第一系统服务标识,通过预定的系统服务管理接口来获取与各个第一系统服务标识相匹配的一级接口;
基于多个第二系统服务标识,通过调用各个一级接口中与各个第二系统服务标识相应的函数,获取二级接口。
12.根据权利要求7所述Android系统漏洞挖掘的装置,其特征在于,该装置还包括:
第二判断模块,用于当判断所述Android系统服务接口存在系统漏洞时,判断是否达到预设的停止条件;
若否,则所述第一获取模块继续用于获取与任一Android系统服务接口相应的函数及与所述函数相匹配的参数类型信息。
13.一种移动设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-6任一项所述Android系统漏洞挖掘的方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-6任一项所述Android系统漏洞挖掘的方法。
CN201510703697.3A 2015-10-26 2015-10-26 Android系统漏洞挖掘的方法及装置 Active CN105243329B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201510703697.3A CN105243329B (zh) 2015-10-26 2015-10-26 Android系统漏洞挖掘的方法及装置
PCT/CN2016/103365 WO2017071579A1 (zh) 2015-10-26 2016-10-26 Android系统漏洞挖掘的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510703697.3A CN105243329B (zh) 2015-10-26 2015-10-26 Android系统漏洞挖掘的方法及装置

Publications (2)

Publication Number Publication Date
CN105243329A CN105243329A (zh) 2016-01-13
CN105243329B true CN105243329B (zh) 2017-12-08

Family

ID=55040972

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510703697.3A Active CN105243329B (zh) 2015-10-26 2015-10-26 Android系统漏洞挖掘的方法及装置

Country Status (2)

Country Link
CN (1) CN105243329B (zh)
WO (1) WO2017071579A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105243329B (zh) * 2015-10-26 2017-12-08 北京奇虎科技有限公司 Android系统漏洞挖掘的方法及装置
CN107025168B (zh) * 2015-12-15 2022-01-07 阿里巴巴集团控股有限公司 漏洞检测方法及装置
EP3373180A1 (de) 2017-03-09 2018-09-12 Siemens Aktiengesellschaft Verfahren und computer mit einer sicherung gegen cyberkriminelle bedrohungen
CN110390199A (zh) * 2018-04-20 2019-10-29 上海巍擎信息技术有限责任公司 Android系统漏洞检测方法、装置、计算机设备和存储介质
CN109657475A (zh) * 2018-12-14 2019-04-19 平安城市建设科技(深圳)有限公司 代码漏洞排查方法、装置、设备及存储介质
CN111625837B (zh) * 2020-05-22 2023-07-04 北京金山云网络技术有限公司 识别系统漏洞的方法、装置和服务器

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102411690B (zh) * 2011-12-31 2014-07-23 中国信息安全测评中心 一种Android平台下应用软件的安全漏洞挖掘方法和装置
CN103227992A (zh) * 2013-04-01 2013-07-31 南京理工大学常熟研究院有限公司 基于Android终端的漏洞扫描系统
CN103368978B (zh) * 2013-08-02 2016-06-08 公安部第三研究所 实现智能移动终端应用漏洞和通信安全检测的方法
US8738931B1 (en) * 2013-10-21 2014-05-27 Conley Jack Funk Method for determining and protecting proprietary source code using mnemonic identifiers
CN103984900B (zh) * 2014-05-19 2017-03-01 南京赛宁信息技术有限公司 Android应用漏洞检测方法及系统
CN104978517B (zh) * 2014-10-08 2017-09-29 武汉安天信息技术有限责任公司 一种Android系统的非法root检测方法及系统
CN104732146A (zh) * 2015-04-03 2015-06-24 上海斐讯数据通信技术有限公司 一种Android程序漏洞检测方法及系统
CN105243329B (zh) * 2015-10-26 2017-12-08 北京奇虎科技有限公司 Android系统漏洞挖掘的方法及装置

Also Published As

Publication number Publication date
WO2017071579A1 (zh) 2017-05-04
CN105243329A (zh) 2016-01-13

Similar Documents

Publication Publication Date Title
CN105243329B (zh) Android系统漏洞挖掘的方法及装置
CN110602052B (zh) 微服务处理方法及服务器
US10229111B1 (en) Sentence compression using recurrent neural networks
CN103544074B (zh) 一种业务的校验方法及装置
CN104965712B (zh) 应用程序加固保护方法、装置及移动终端
CN109936561A (zh) 用户请求的检测方法、装置、计算机设备及存储介质
CN110489101A (zh) 接口模拟方法、系统、介质和电子设备
US11256712B2 (en) Rapid design, development, and reuse of blockchain environment and smart contracts
CN106022349B (zh) 用于设备类型确定的方法和系统
CN105550252A (zh) 一种文件定位方法、装置及电子设备
KR20120078018A (ko) 파일 유전자 지도를 이용하여 파일의 악성코드 포함 여부를 판단하는 방법 및 시스템
CN110795697B (zh) 逻辑表达式的获取方法、装置、存储介质以及电子装置
CN104598218A (zh) 用于合并和重用门户信息的方法和系统
CN104090839A (zh) 异常场景模拟测试方法及装置
CN106547590A (zh) 隐私应用程序的启动方法和启动装置
CN113158189A (zh) 一种恶意软件分析报告生成方法、装置、设备和介质
CN111858584A (zh) 元数据管理方法、系统及存储介质
CN105389241B (zh) 移动终端防骚扰工具的性能测试方法及系统
CN109905362A (zh) 用户请求的检测方法、装置、计算机设备及存储介质
CN109683951A (zh) 一种代码自动发布方法、系统、介质和电子设备
CN105607990A (zh) 一种空指针崩溃的挖掘方法及装置
CN111538659A (zh) 业务场景的接口测试方法、系统、电子设备和存储介质
CN108052842B (zh) 签名数据的存储、验证方法及装置
CN110083525A (zh) 内存泄露的定位方法、装置、计算机设备及存储介质
CN108595444A (zh) 语音翻译方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20211203

Address after: 300450 No. 9-3-401, No. 39, Gaoxin 6th Road, Binhai Science Park, high tech Zone, Binhai New Area, Tianjin

Patentee after: 3600 Technology Group Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230717

Address after: 1765, floor 17, floor 15, building 3, No. 10 Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: Beijing Hongxiang Technical Service Co.,Ltd.

Address before: 300450 No. 9-3-401, No. 39, Gaoxin 6th Road, Binhai Science Park, high tech Zone, Binhai New Area, Tianjin

Patentee before: 3600 Technology Group Co.,Ltd.