CN106681801A - 事件的执行方法和装置 - Google Patents

事件的执行方法和装置 Download PDF

Info

Publication number
CN106681801A
CN106681801A CN201610301530.9A CN201610301530A CN106681801A CN 106681801 A CN106681801 A CN 106681801A CN 201610301530 A CN201610301530 A CN 201610301530A CN 106681801 A CN106681801 A CN 106681801A
Authority
CN
China
Prior art keywords
event
communication port
system process
terminal
code
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.)
Granted
Application number
CN201610301530.9A
Other languages
English (en)
Other versions
CN106681801B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201610301530.9A priority Critical patent/CN106681801B/zh
Publication of CN106681801A publication Critical patent/CN106681801A/zh
Application granted granted Critical
Publication of CN106681801B publication Critical patent/CN106681801B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种事件的执行方法和装置。其中,该方法包括:在终端的第一系统进程生成第一进程之后,第二系统进程与所述第一进程建立通信通道,其中,所述第一系统进程用于生成所述终端的进程;所述第二系统进程获取待执行的第一事件;所述第二系统进程通过所述通信通道向所述第一进程发送所述第一事件,以在所述第一进程中执行所述第一事件。本发明解决了由于频繁注入代码容易出错的技术问题。

Description

事件的执行方法和装置
技术领域
本发明涉及数据处理领域,具体而言,涉及一种事件的执行方法和装置。
背景技术
Zygote是所有Android应用程序的始祖,所有应用程序的进程都是通过请求Zygote分化出来的。Zygote的启动是由init进程通过init.rc脚本启动的,即通过执行/system/bin/app_process启动。
现有技术方案是将要注入的代码生成新的app_process文件,用新的app_process文件替换掉系统的app_process文件,当被替换后的zygote启动时,会自动扫描系统内的安装模块(DEX),并加载到自身进程内来。当有新进程产生时,自动从zygote继承模块,从而达到让注入的代码运行在所有应用进程的目的。然而,直接替换系统文件会导致终端重启,并且所有进程都要加载到Zygote进程,降低系统的稳定性。
现有技术还有一种间接注入的方式,先将需要注入的代码注入到系统进程,再对系统事件进行hook操作,每次创建新的进程,立即注入新的进程并加载执行注入的代码。然而,这种方法需要频繁注入代码,容易出现注入错误。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种事件的执行方法和装置,以至少解决由于频繁注入代码容易出错的技术问题。
根据本发明实施例的一个方面,提供了一种事件的执行方法,包括:在终端的第一系统进程生成第一进程之后,第二系统进程与所述第一进程建立通信通道,其中,所述第一系统进程用于生成所述终端的进程;所述第二系统进程获取待执行的第一事件;所述第二系统进程通过所述通信通道向所述第一进程发送所述第一事件,以在所述第一进程中执行所述第一事件。
根据本发明实施例的另一方面,还提供了一种事件的执行装置,包括:建立单元,用于在终端的第一系统进程生成第一进程之后,与所述第一进程建立通信通道,其中,所述第一系统进程用于生成所述终端的进程;获取单元,用于获取待执行的第一事件;发送单元,用于通过所述通信通道向所述第一进程发送所述第一事件,以在所述第一进程中执行所述第一事件。
在本发明实施例中,第一事件注入到第一系统进程后,由第二系统进程通过通信通道向第一进程发送待执行的第一事件,执行一次注入就能使得从第一系统进程生成的一个或者多个第一进程都能执行第一事件,达到了控制系统进程生成的多个进程都能执行第一事件的目的,解决了现有技术中控制多个进程执行第一事件时需要多次执行注入所导致的出错的技术问题。同时,由于这种注入的方式不需要提供app_process文件,也就不会造成终端系统的频繁重启,提高了终端系统的稳定性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的硬件环境的架构图;
图2是根据本发明实施例的事件的执行方法的流程图;
图3是根据本发明实施例的应用程序的界面图;
图4是根据本发明实施例的事件的执行方法的交互图;
图5是根据本发明实施例的事件的执行装置的示意图;
图6是根据本发明实施例的终端的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
名词解释:
代码注入:将自己编写的可执行代码块注入到正在运行的第三方进程中执行。
Zygote:Android系统的一个系统进程,作为所有应用进程的母体,所有新进程都从该进程孵化出来并共享该进程的公共类库。
System:Android系统的一个系统进程,提供android系统的大部分系统级服务,如位置信息,短信服务,权限管理等
Hook:是指在执行程序前,先执行钩子函数的逻辑,再执行程序原本的逻辑。
So:全称为shared object,Linux系统下的动态链接库文件,正在运行的应用可以通过动态加载so文件到本进程并执行其功能。
DEX:全称为Dalvik Executable File,Android平台上可执行文件。
实施例1
根据本发明实施例,提供了一种可以通过本申请装置实施例执行的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
根据本发明实施例,提供了一种事件的执行方法。
可选地,在本实施例中,上述事件的执行方法可以应用于如图1所示的终端102和服务器104所构成的硬件环境中。如图1所示,终端102通过网络与服务器104进行连接,上述网络包括但不限于:移动通信网络、广域网、城域网或局域网,终端102可以是手机终端,也可以是PC终端、笔记本终端或平板电脑终端。
图2是根据本发明实施例的事件的执行方法的流程图,以下结合图2对本发明实施例所提供的事件的执行方法做具体介绍,如图2所示,该事件的执行方法主要包括如下步骤:
步骤S202,在终端的第一系统进程生成第一进程之后,第二系统进程与第一进程建立通信通道,其中,第一系统进程用于生成终端的进程。
步骤S204,第二系统进程获取待执行的第一事件。
步骤S206,第二系统进程通过通信通道向第一进程发送第一事件,以在第一进程中执行第一事件。
在本实施例中,第一事件注入到第一系统进程后,由第二系统进程通过通信通道向第一进程发送待执行的第一事件,执行一次注入就能使得从第一系统进程生成的一个或者多个第一进程都能执行第一事件,达到了控制系统进程生成的多个进程都能执行第一事件的目的,解决了现有技术中控制多个进程执行第一事件时需要多次执行注入所导致的出错的技术问题。同时,由于这种注入的方式不需要提供app_process文件,也就不会造成终端系统的频繁重启,提高了终端系统的稳定性。
在一个具体的例子中,第一系统进程是zygote进程,第二系统进程是system进程,第一事件是需要在第一进程中执行的待执行代码。在第一进程生成后,主动与第二系统进程建立通信通道。如果需要在第一进程中执行第一事件,第二系统进程通过已经建立的通信通道发送第一事件给第一进程,从而实现了在第一进程中执行第一事件。
第一系统进程作为应用进程的母体,新的进程可以从该进程中孵化出来,本实施例中的第一进程可以是第一系统进程所孵化出的多个进程中的任意一个。应该理解到,所有从第一系统进程中孵化出来的进程都可以从第二系统进程中获取第一事件。而第一事件由第二系统进程获取一次即可,也就是说,通过本实施例,向第二系统进程注入这个代码一次,就能实现在多个进程中执行待执行代码,解决了现有技术多次注入代码容易出错的技术问题。
上述待执行代码(第一事件)可以是例如拦截广告的代码、检测病毒的代码、填写表单的代码、修改注册信息的代码等等。
例如,在移动终端的运行系统中包括zygote进程(即第一系统进程)和system进程(即第二系统进程),在该移动终端中安装有多个应用程序,这些应用程序中新的进程(即第一进程)都从zygote进程中孵化出来。因此,每个应用程序新生成的进程都能够被zygote进程捕捉到。当zygote进程捕捉到新的进程时,指示该新的进程与system进程建立通信通道。也就是说,一旦有新的进程生成,该新的进程就能及时与system进程建立通信通道。在system进程中存储有需要应用程序执行的代码(即第一事件),当需要某个应用程序执行该代码的时候,只需要system进程通过已经与应用程序的进程建立的通信通道将需要执行的代码发送给该应用程序的进程,就能在应用程序调用进程的时候加载需要执行的代码。
比如,该需要执行的代码为拦截广告的代码,新的进程为即时通讯应用程序的进程。当创建即时通讯应用程序的进程时,zygote进程捕捉到即时通讯应用程序的进程,并指示即时通讯应用程序的进程与system进程建立通信通道。在通信通道建立之后,system进程可以随时将拦截广告的代码注入到即时通讯应用程序的进程中,一旦即时通讯应用程序的进程中被注入了拦截广告的代码,在即时通讯应用程序加载该即时通讯应用程序的进程时,该拦截广告的代码就被执行,从而实现了在即时通讯应用程序执行广告拦截的功能。
需要说明的是,上述即时通讯应用程序还可以是视频播放应用程序、系统安全卫士、浏览器、图书阅读器、理财应用程序和游戏等。且上述的移动终端也可以是PC等终端。
可选地,第二系统进程与第一进程建立通信通道包括:第二系统进程接收第一进程发送的通道建立请求,其中,通道建立请求用于请求与第二系统进程建立通信通道;第二系统进程响应通道建立请求与第一进程建立通信通道。
第一进程是从第一系统进程中孵化而来的,第一系统进程指示每个孵化而来的第一进程需要建立通信通道的对象为第二系统进程。因此,由第一进程主动发起通道建立请求,可以使得每个生成的第一进程都与第二系统进程建立通信通道,以便第二系统进程可以控制每个生成的第一进程接收第一事件,从而实现在多个第一进程中执行第一事件。
可选地,在第二系统进程接收第一进程的通道建立请求之前,方法还包括:在第一系统进程运行时,第一系统进程先执行注入在第一系统进程中的第二事件,再生成第一进程,其中:第二事件等待第一系统进程生成第一进程,以在生成第一进程后,第二事件指示第一进程向第二系统进程发送通道建立请求。
第二事件可以是一段代码,将这段代码先注入到第一系统进程中,这样就能监控到第一系统进程生成的每个进程。第一系统进程先运行第二事件,第二事件等待生成第一进程,一旦监测到生成了第一进程,则第二事件指示第一进程向第二系统进程发送通道建立请求。在这个过程中,可以在第一系统进程中采用hook函数实现先执行第二事件再生成第一进程。
在上述需要执行的代码为拦截广告的代码的例子中,新的进程主动与system进程建立通信通道。为了实现zygote进程捕捉到新的进程后指示新的进程主动与system进程建立通信通道,可以先向zygote进程中注入一段代码(即第二事件),在zygote进程生成新的进程之前,先执行这段注入的代码,再生成新的进程,就能够捕捉所有由zygote进程生成的进程,并指示新的进程主动与system进程建立通信通道。
可选地,第二系统进程与第一进程建立通信通道包括:第二系统进程中预先被注入的第三事件与第一进程建立通信通道。
第三事件也可以是一段代码,预先注入到第二系统进程中,并且与第一系统进程生成的第一进程建立通信通道。为了使得第二事件能够指示第一进程与第三事件建立通信通道,需要先向第一系统进程注入第二事件,再向第二系统进程注入第三事件,这样注入的第三事件就会被第二事件捕捉并且记录,在生成第一进程时,第二事件就能够指示第一进程主动与第三事件建立通信通道。
在本实施例中,由于需要第二系统进程向第一进程发送第一事件才能在第一进程中执行第一事件,这还能防止病毒代码直接注入到第一事件,提高了注入代码的安全性和系统的安全性。
在上述需要执行的代码为拦截广告的代码的例子中,在zygote进程指示新的进程主动与system进程建立通信通道之前,先向system进程注入一段代码(即第三事件)。第三事件处于管理者的角色,第三事件可以通过已经建立的通信通道向一个或者多个应用程序的进程发送拦截广告的代码。第二事件注入到zygote进程之后,第二事件可以记录第三事件的标识,以便于收到指示的进程确定建立通信通道的对象(即第三事件)。
需要说明的是,在本实施例中,注入的第二事件、第三事件可以由终端中已经安全的应用程序来执行。例如,在终端中已经安装的应用程序为安全卫士。安全卫士可以将第二事件、第三事件分别注入到zygote进程和system进程中,当需要终端中安装的其他应用程序执行拦截篡改注册码的功能时,安全卫士将拦截篡改注册码的代码通过已经建立的通信通道发送给终端中安装的其他应用程序的进程。
同时,由于安全卫士可以向不同的应用程序发送相同或者不同的代码来实现不同的功能,例如,使视频应用执行广告拦截的功能、使即时通信应用执行病毒检测的功能等等。另外,由于安全卫士可以安装在不同的终端中,且注入第一事件、第二事件和第三事件的过程都不会造成终端的重启或者降低系统的稳定性,因此,本实施例的方法可以用于多个终端。以广告拦截为例,多个应用程序都可以执行广告拦截,在安全卫士中显示各个应用程序的广告拦截结果,如图3所示,显示了哪个应用程序在什么时候拦截了几次广告。
可选地,第二系统进程通过通信通道向第一进程发送第一事件,以在第一进程中执行第一事件包括:第二系统进程通过通信通道将第一事件存放至第一进程的可执行文件中,以在执行第一进程的可执行文件时执行第一事件。
在第一进程生成后,第二系统进程与第一进程就建立了通信通道,第二系统进程可以随时与第一进程通信,将第一事件发送给第一进程存放在第一进程的可执行文件中,那么,在第一进程执行可执行文件时就执行了第一事件。也即,在第二系统进程已经获取第一事件的基础上,第一进程可以随时根据第二系统进程的指示执行第一事件,而无需再次注入第一事件。
可选地,第二系统进程通过通信通道向第一进程发送第一事件包括:第二系统进程通过通信通道向第一进程发送终端的动态链接库文件,其中,第一事件包括动态链接库文件;和/或第二系统进程通过通信通道向第一进程发送终端的可执行文件,其中,第一事件包括可执行文件。
本实施例进行第一事件的注入,注入的第一事件包括终端的底层文件和上层文件。底层文件例如Linux系统下的动态链接库文件So,上层文件例如Android平台上的可执行文件DEX。
本实施例中由于可以执行多种类型的文件,并且不需要重启终端就可以在进程中执行第一事件,并且执行第一事件的进程可以是多个应用客户端的进程,提高了注入第一事件的兼容性。同时,由于可以控制部分或者全部进程执行第一事件,增加了执行第一事件的自由度和可控性。
以下结合图4对本实施例进行说明。
①、SDK向zygote(第一系统进程)注入第一段代码(第二事件),并且对zygote执行hook命令,即在zygote生成新进程(第一进程)的过程中,先执行第一段代码,然后在生成新的进程。
②、SDK向system(第二系统进程)注入第二段代码(第三事件)。第二段代码作为一个管理者。
③、zygote中的第一段代码指示生成的新的进程与system中的第二段代码所表示的管理者建立通信通道。
④、新的进程向第二段代码进行注册,建立通信通道。
⑤、SDK向system注入第三段代码(第一事件)。第三段代码例如拦截广告的代码。
⑥、system中注入的第二段代码通过已经建立的通信通道向新的进程发送第三段代码。新的进程为某视频应用的启动进程,在启动进程运行时,运行第二段代码通过已经建立的通信通道传输的拦截广告的代码。这样在某视频应用启动时,就能开始拦截广告。可以采用相同的方法,使终端中的其他应用具有拦截广告的功能,此处不再一一举例说明。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述事件的执行方法的事件的执行装置,该事件的执行装置主要用于执行本发明实施例上述内容所提供的事件的执行方法,以下对本发明实施例所提供的事件的执行装置做具体介绍:
图5是根据本发明实施例的事件的执行装置的示意图,如图4所示,该事件的执行装置主要包括:
建立单元40用于在终端的第一系统进程生成第一进程之后,与第一进程建立通信通道,其中,第一系统进程用于生成终端的进程。
获取单元42用于获取待执行的第一事件。
发送单元44用于通过通信通道向第一进程发送第一事件,以在第一进程中执行第一事件。
在本实施例中,第一事件注入到第一系统进程后,由第二系统进程通过通信通道向第一进程发送待执行的第一事件,执行一次注入就能使得从第一系统进程生成的一个或者多个第一进程都能执行第一事件,达到了控制系统进程生成的多个进程都能执行第一事件的目的,解决了现有技术中控制多个进程执行第一事件时需要多次执行注入所导致的出错的技术问题。同时,由于这种注入的方式不需要提供app_process文件,也就不会造成终端系统的频繁重启,提高了终端系统的稳定性。
在一个具体的例子中,第一系统进程是zygote进程,第二系统进程是system进程,第一事件是需要在第一进程中执行的待执行代码。在第一进程生成后,主动与第二系统进程建立通信通道。如果需要在第一进程中执行第一事件,第二系统进程通过已经建立的通信通道发送第一事件给第一进程,从而实现了在第一进程中执行第一事件。
第一系统进程作为应用进程的母体,新的进程可以从该进程中孵化出来,本实施例中的第一进程可以是第一系统进程所孵化出的多个进程中的任意一个。应该理解到,所有从第一系统进程中孵化出来的进程都可以从第二系统进程中获取第一事件。而第一事件由第二系统进程获取一次即可,也就是说,通过本实施例,向第二系统进程注入这个代码一次,就能实现在多个进程中执行待执行代码,解决了现有技术多次注入代码容易出错的技术问题。
上述待执行代码(第一事件)可以是例如拦截广告的代码、检测病毒的代码、填写表单的代码、修改注册信息的代码等等。
例如,在移动终端的运行系统中包括zygote进程(即第一系统进程)和system进程(即第二系统进程),在该移动终端中安装有多个应用程序,这些应用程序中新的进程(即第一进程)都从zygote进程中孵化出来。因此,每个应用程序新生成的进程都能够被zygote进程捕捉到。当zygote进程捕捉到新的进程时,指示该新的进程与system进程建立通信通道。也就是说,一旦有新的进程生成,该新的进程就能及时与system进程建立通信通道。在system进程中存储有需要应用程序执行的代码(即第一事件),当需要某个应用程序执行该代码的时候,只需要system进程通过已经与应用程序的进程建立的通信通道将需要执行的代码发送给该应用程序的进程,就能在应用程序调用进程的时候加载需要执行的代码。
比如,该需要执行的代码为拦截广告的代码,新的进程为即时通讯应用程序的进程。当创建即时通讯应用程序的进程时,zygote进程捕捉到即时通讯应用程序的进程,并指示即时通讯应用程序的进程与system进程建立通信通道。在通信通道建立之后,system进程可以随时将拦截广告的代码注入到即时通讯应用程序的进程中,一旦即时通讯应用程序的进程中被注入了拦截广告的代码,在即时通讯应用程序加载该即时通讯应用程序的进程时,该拦截广告的代码就被执行,从而实现了在即时通讯应用程序执行广告拦截的功能。
需要说明的是,上述即时通讯应用程序还可以是视频播放应用程序、系统安全卫士、浏览器、图书阅读器、理财应用程序和游戏等。且上述的移动终端也可以是PC等终端。
可选地,建立单元包括:接收模块,用于接收第一进程发送的通道建立请求,其中,通道建立请求用于请求与第二系统进程建立通信通道;响应模块,用于响应通道建立请求与第一进程建立通信通道。
第一进程是从第一系统进程中孵化而来的,第一系统进程指示每个孵化而来的第一进程需要建立通信通道的对象为第二系统进程。因此,由第一进程主动发起通道建立请求,可以使得每个生成的第一进程都与第二系统进程建立通信通道,以便第二系统进程可以控制每个生成的第一进程接收第一事件,从而实现在多个第一进程中执行第一事件。
在上述需要执行的代码为拦截广告的代码的例子中,新的进程主动与system进程建立通信通道。为了实现zygote进程捕捉到新的进程后指示新的进程主动与system进程建立通信通道,可以先向zygote进程中注入一段代码(即第二事件),在zygote进程生成新的进程之前,先执行这段注入的代码,再生成新的进程,就能够捕捉所有由zygote进程生成的进程,并指示新的进程主动与system进程建立通信通道。
可选地,建立单元包括:建立模块,事件的执行装置中预先被注入的第三事件与第一进程建立通信通道。
第三事件也可以是一段代码,预先注入到第二系统进程中,并且与第一系统进程生成的第一进程建立通信通道。为了使得第二事件能够指示第一进程与第三事件建立通信通道,需要先向第一系统进程注入第二事件,再向第二系统进程注入第三事件,这样注入的第三事件就会被第二事件捕捉并且记录,在生成第一进程时,第二事件就能够指示第一进程主动与第三事件建立通信通道。
在本实施例中,由于需要第二系统进程向第一进程发送第一事件才能在第一进程中执行第一事件,这还能防止病毒代码直接注入到第一事件,提高了注入代码的安全性和系统的安全性。
在上述需要执行的代码为拦截广告的代码的例子中,在zygote进程指示新的进程主动与system进程建立通信通道之前,先向system进程注入一段代码(即第三事件)。第三事件处于管理者的角色,第三事件可以通过已经建立的通信通道向一个或者多个应用程序的进程发送拦截广告的代码。第二事件注入到zygote进程之后,第二事件可以记录第三事件的标识,以便于收到指示的进程确定建立通信通道的对象(即第三事件)。
需要说明的是,在本实施例中,注入的第二事件、第三事件可以由终端中已经安全的应用程序来执行。例如,在终端中已经安装的应用程序为安全卫士。安全卫士可以将第二事件、第三事件分别注入到zygote进程和system进程中,当需要终端中安装的其他应用程序执行拦截篡改注册码的功能时,安全卫士将拦截篡改注册码的代码通过已经建立的通信通道发送给终端中安装的其他应用程序的进程。
同时,由于安全卫士可以向不同的应用程序发送相同或者不同的代码来实现不同的功能,例如,使视频应用执行广告拦截的功能、使即时通信应用执行病毒检测的功能等等。另外,由于安全卫士可以安装在不同的终端中,且注入第一事件、第二事件和第三事件的过程都不会造成终端的重启或者降低系统的稳定性,因此,本实施例的方法可以用于多个终端。以广告拦截为例,多个应用程序都可以执行广告拦截,在安全卫士中显示各个应用程序的广告拦截结果,如图3所示,显示了哪个应用程序在什么时候拦截了几次广告。
可选地,发送单元包括:存放模块,用于通过通信通道将第一事件存放至第一进程的可执行文件中,以在执行第一进程的可执行文件时执行第一事件。
在第一进程生成后,第二系统进程与第一进程就建立了通信通道,第二系统进程可以随时与第一进程通信,将第一事件发送给第一进程存放在第一进程的可执行文件中,那么,在第一进程执行可执行文件时就执行了第一事件。也即,在第二系统进程已经获取第一事件的基础上,第一进程可以随时根据第二系统进程的指示执行第一事件,而无需再次注入第一事件。
第二事件可以是一段代码,将这段代码先注入到第一系统进程中,这样就能监控到第一系统进程生成的每个进程。第一系统进程先运行第二事件,第二事件等待生成第一进程,一旦监测到生成了第一进程,则第二事件指示第一进程向第二系统进程发送通道建立请求。在这个过程中,可以在第一系统进程中采用hook函数实现先执行第二事件再生成第一进程。
可选地,发送单元包括:第一发送模块,用于通过通信通道向第一进程发送终端的动态链接库文件,其中,第一事件包括动态链接库文件;和/或第二发送模块,用于通过通信通道向第一进程发送终端的可执行文件,其中,第一事件包括可执行文件。
本实施例进行第一事件的注入,注入的第一事件包括终端的底层文件和上层文件。底层文件例如Linux系统下的动态链接库文件So,上层文件例如Android平台上的可执行文件DEX。
实施例3
根据本发明实施例,还提供了一种用于实施上述事件的执行方法的终端,如图6所示,该终端主要包括处理器501、摄像头502、显示器503、数据接口504、存储器505和网络接口506,其中:
摄像头502主要用于获取用于拍照或者采集用于识别生物特征的图片。
数据接口504则主要通过数据传输的方式将第三方工具获取到的数据传输给处理器501。
存储器505主要用于存储终端的系统进程文件和可执行文件等。
网络接口506主要用于与服务器进行网络通信,为车辆识别提供数据支持。
显示器503主要用于显示应用程序的第一进程执行第一事件后得到的结果,如广告拦截结果和拦截篡改信息的结果。
处理器501主要用于执行如下操作:
在终端的第一系统进程生成第一进程之后,第二系统进程与第一进程建立通信通道,其中,第一系统进程用于生成终端的进程;第二系统进程获取待执行的第一事件;第二系统进程通过通信通道向第一进程发送第一事件,以在第一进程中执行第一事件。
处理器501还用于第二系统进程与第一进程建立通信通道包括:第二系统进程接收第一进程发送的通道建立请求,其中,通道建立请求用于请求与第二系统进程建立通信通道;第二系统进程响应通道建立请求与第一进程建立通信通道。
处理器501还用于在第二系统进程接收第一进程的通道建立请求之前,方法还包括:在第一系统进程运行时,第一系统进程先执行注入在第一系统进程中的第二事件,再生成第一进程,其中:第二事件等待第一系统进程生成第一进程,以在生成第一进程后,第二事件指示第一进程向第二系统进程发送通道建立请求。
处理器501还用于第二系统进程通过通信通道向第一进程发送第一事件,以在第一进程中执行第一事件包括:第二系统进程通过通信通道将第一事件存放至第一进程的可执行文件中,以在执行第一进程的可执行文件时执行第一事件。
处理器501还用于第二系统进程通过通信通道向第一进程发送第一事件包括:第二系统进程通过通信通道向第一进程发送终端的动态链接库文件,其中,第一事件包括动态链接库文件;和/或第二系统进程通过通信通道向第一进程发送终端的可执行文件,其中,第一事件包括可执行文件。
处理器501还用于第二系统进程与第一进程建立通信通道包括:第二系统进程中预先被注入的第三事件与第一进程建立通信通道。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
实施例4
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于存储本发明实施例的事件的执行方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于移动通信网络、广域网、城域网或局域网的网络中的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,在终端的第一系统进程生成第一进程之后,第二系统进程与第一进程建立通信通道,其中,第一系统进程用于生成终端的进程;
S2,第二系统进程获取待执行的第一事件;
S3,第二系统进程通过通信通道向第一进程发送第一事件,以在第一进程中执行第一事件。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:第二系统进程与第一进程建立通信通道包括:第二系统进程接收第一进程发送的通道建立请求,其中,通道建立请求用于请求与第二系统进程建立通信通道;第二系统进程响应通道建立请求与第一进程建立通信通道。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (11)

1.一种事件的执行方法,其特征在于,包括:
在终端的第一系统进程生成第一进程之后,第二系统进程与所述第一进程建立通信通道,其中,所述第一系统进程用于生成所述终端的进程;
所述第二系统进程获取待执行的第一事件;
所述第二系统进程通过所述通信通道向所述第一进程发送所述第一事件,以在所述第一进程中执行所述第一事件。
2.根据权利要求1所述的方法,其特征在于,所述第二系统进程与所述第一进程建立通信通道包括:
所述第二系统进程接收所述第一进程发送的通道建立请求,其中,所述通道建立请求用于请求与所述第二系统进程建立所述通信通道;
所述第二系统进程响应所述通道建立请求与所述第一进程建立所述通信通道。
3.根据权利要2所述的方法,其特征在于,在所述第二系统进程接收所述第一进程的通道建立请求之前,所述方法还包括:
在所述第一系统进程运行时,所述第一系统进程先执行注入在所述第一系统进程中的第二事件,再生成所述第一进程,其中:
所述第二事件等待所述第一系统进程生成所述第一进程,以在生成所述第一进程后,所述第二事件指示所述第一进程向所述第二系统进程发送所述通道建立请求。
4.根据权利要求1所述的方法,其特征在于,所述第二系统进程通过所述通信通道向所述第一进程发送所述第一事件,以在所述第一进程中执行所述第一事件包括:
所述第二系统进程通过所述通信通道将所述第一事件存放至所述第一进程的可执行文件中,以在执行所述第一进程的可执行文件时执行所述第一事件。
5.根据权利要求1所述的方法,其特征在于,所述第二系统进程通过所述通信通道向所述第一进程发送所述第一事件包括:
所述第二系统进程通过所述通信通道向所述第一进程发送所述终端的动态链接库文件,其中,所述第一事件包括所述动态链接库文件;和/或
所述第二系统进程通过所述通信通道向所述第一进程发送所述终端的可执行文件,其中,所述第一事件包括所述可执行文件。
6.根据权利要求1所述的方法,其特征在于,所述第二系统进程与所述第一进程建立通信通道包括:
所述第二系统进程中预先被注入的第三事件与所述第一进程建立通信通道。
7.一种事件的执行装置,其特征在于,包括:
建立单元,用于在终端的第一系统进程生成第一进程之后,与所述第一进程建立通信通道,其中,所述第一系统进程用于生成所述终端的进程;
获取单元,用于获取待执行的第一事件;
发送单元,用于通过所述通信通道向所述第一进程发送所述第一事件,以在所述第一进程中执行所述第一事件。
8.根据权利要求7所述的装置,其特征在于,所述建立单元包括:
接收模块,用于接收所述第一进程发送的通道建立请求,其中,所述通道建立请求用于请求与所述第二系统进程建立所述通信通道;
响应模块,用于响应所述通道建立请求与所述第一进程建立所述通信通道。
9.根据权利要求7所述的装置,其特征在于,所述发送单元包括:
存放模块,用于通过所述通信通道将所述第一事件存放至所述第一进程的可执行文件中,以在执行所述第一进程的可执行文件时执行所述第一事件。
10.根据权利要求7所述的装置,其特征在于,所述发送单元包括:
第一发送模块,用于通过所述通信通道向所述第一进程发送所述终端的动态链接库文件,其中,所述第一事件包括所述动态链接库文件;和/或
第二发送模块,用于通过所述通信通道向所述第一进程发送所述终端的可执行文件,其中,所述第一事件包括所述可执行文件。
11.根据权利要求7所述的装置,其特征在于,所述建立单元包括:
建立模块,所述事件的执行装置中预先被注入的第三事件与所述第一进程建立通信通道。
CN201610301530.9A 2016-05-09 2016-05-09 事件的执行方法和装置 Active CN106681801B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610301530.9A CN106681801B (zh) 2016-05-09 2016-05-09 事件的执行方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610301530.9A CN106681801B (zh) 2016-05-09 2016-05-09 事件的执行方法和装置

Publications (2)

Publication Number Publication Date
CN106681801A true CN106681801A (zh) 2017-05-17
CN106681801B CN106681801B (zh) 2019-07-23

Family

ID=58839647

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610301530.9A Active CN106681801B (zh) 2016-05-09 2016-05-09 事件的执行方法和装置

Country Status (1)

Country Link
CN (1) CN106681801B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019179104A1 (zh) * 2018-03-20 2019-09-26 广州视源电子科技股份有限公司 触摸事件的处理方法、装置和智能交互设备
CN114363396A (zh) * 2021-11-26 2022-04-15 北京鸿合爱学教育科技有限公司 双系统通信通道构建方法、装置、电子设备及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103198255A (zh) * 2013-04-03 2013-07-10 武汉大学 一种Android软件敏感行为监控与拦截方法及系统
CN103379481A (zh) * 2012-04-26 2013-10-30 腾讯科技(深圳)有限公司 一种实现安全防护的方法及一种防火墙
CN104133752A (zh) * 2013-06-25 2014-11-05 腾讯科技(深圳)有限公司 操作平台的监控方法和装置
CN104239781A (zh) * 2014-09-01 2014-12-24 百度在线网络技术(北京)有限公司 避免进程被注入的方法和装置
CN104376256A (zh) * 2014-12-02 2015-02-25 北京奇虎科技有限公司 应用程序进程孵化控制方法及装置
CN104375494A (zh) * 2014-12-02 2015-02-25 北京奇虎科技有限公司 安全沙箱构造方法及装置
CN104536750A (zh) * 2014-12-26 2015-04-22 北京奇虎科技有限公司 遍历窗口对象的方法及装置
CN104572394A (zh) * 2013-10-29 2015-04-29 腾讯科技(深圳)有限公司 进程监控方法及装置
CN105427096A (zh) * 2015-12-25 2016-03-23 北京奇虎科技有限公司 支付安全沙箱实现方法及系统与应用程序监控方法及系统
CN105512015A (zh) * 2015-12-15 2016-04-20 北京奇虎科技有限公司 一种安卓目标应用崩溃统计方法和装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103379481A (zh) * 2012-04-26 2013-10-30 腾讯科技(深圳)有限公司 一种实现安全防护的方法及一种防火墙
CN103198255A (zh) * 2013-04-03 2013-07-10 武汉大学 一种Android软件敏感行为监控与拦截方法及系统
CN104133752A (zh) * 2013-06-25 2014-11-05 腾讯科技(深圳)有限公司 操作平台的监控方法和装置
CN104572394A (zh) * 2013-10-29 2015-04-29 腾讯科技(深圳)有限公司 进程监控方法及装置
CN104239781A (zh) * 2014-09-01 2014-12-24 百度在线网络技术(北京)有限公司 避免进程被注入的方法和装置
CN104376256A (zh) * 2014-12-02 2015-02-25 北京奇虎科技有限公司 应用程序进程孵化控制方法及装置
CN104375494A (zh) * 2014-12-02 2015-02-25 北京奇虎科技有限公司 安全沙箱构造方法及装置
CN104536750A (zh) * 2014-12-26 2015-04-22 北京奇虎科技有限公司 遍历窗口对象的方法及装置
CN105512015A (zh) * 2015-12-15 2016-04-20 北京奇虎科技有限公司 一种安卓目标应用崩溃统计方法和装置
CN105427096A (zh) * 2015-12-25 2016-03-23 北京奇虎科技有限公司 支付安全沙箱实现方法及系统与应用程序监控方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
夏德洲,张明: "《Android系统软件开发(底层)》", 31 October 2015 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019179104A1 (zh) * 2018-03-20 2019-09-26 广州视源电子科技股份有限公司 触摸事件的处理方法、装置和智能交互设备
CN114363396A (zh) * 2021-11-26 2022-04-15 北京鸿合爱学教育科技有限公司 双系统通信通道构建方法、装置、电子设备及存储介质
CN114363396B (zh) * 2021-11-26 2023-12-01 北京鸿合爱学教育科技有限公司 双系统通信通道构建方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN106681801B (zh) 2019-07-23

Similar Documents

Publication Publication Date Title
US9294442B1 (en) System and method for threat-driven security policy controls
CN105427096B (zh) 支付安全沙箱实现方法及系统与应用程序监控方法及系统
US9402184B2 (en) Associating services to perimeters
US9223961B1 (en) Systems and methods for performing security analyses of applications configured for cloud-based platforms
US9373267B2 (en) Method and system for controlling context-aware cybersecurity training
US9953161B2 (en) Method, device and system for processing notification bar message
WO2016160599A1 (en) System and method for threat-driven security policy controls
WO2015096695A1 (zh) 一种应用程序的安装控制方法、系统及装置
US11438349B2 (en) Systems and methods for protecting devices from malware
CN109818937A (zh) 针对安卓权限的控制方法、装置、及存储介质、电子装置
CN106844061B (zh) 共享资源处理方法和装置
CN102255919A (zh) 用于在局域网中优化安全任务的执行的系统和方法
CN104091125A (zh) 处理悬浮窗的方法及悬浮窗处理装置
CN105871587A (zh) 日志上传方法及装置
CN104199654A (zh) 开放平台的调用方法及装置
CN109800571B (zh) 事件处理方法和装置、以及存储介质和电子装置
US20200228390A1 (en) Autonomous server agents
CN107835181A (zh) 服务器集群的权限管理方法、装置、介质和电子设备
CN106934272B (zh) 一种应用信息的校验方法和装置
CN116127420A (zh) 水印的添加方法和装置、存储介质、电子装置
CN106681801A (zh) 事件的执行方法和装置
CN104468486A (zh) 信息处理方法、系统及电子设备
CN111290776B (zh) 一种用于管理区块链节点的管理装置及方法
CN103476025B (zh) 进程管理方法及系统、移动终端
CN103345603A (zh) 基于沙箱技术浏览网页的方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant