CN104091125B - 处理悬浮窗的方法及悬浮窗处理装置 - Google Patents
处理悬浮窗的方法及悬浮窗处理装置 Download PDFInfo
- Publication number
- CN104091125B CN104091125B CN201410344872.XA CN201410344872A CN104091125B CN 104091125 B CN104091125 B CN 104091125B CN 201410344872 A CN201410344872 A CN 201410344872A CN 104091125 B CN104091125 B CN 104091125B
- Authority
- CN
- China
- Prior art keywords
- floating window
- module
- request
- party application
- window
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 129
- 238000012545 processing Methods 0.000 title claims abstract description 104
- 230000006870 function Effects 0.000 claims description 102
- 238000004458 analytical method Methods 0.000 claims description 53
- 238000002347 injection Methods 0.000 claims description 28
- 239000007924 injection Substances 0.000 claims description 28
- 238000012544 monitoring process Methods 0.000 claims description 20
- 238000000605 extraction Methods 0.000 claims description 13
- 238000007726 management method Methods 0.000 description 26
- 230000008901 benefit Effects 0.000 description 5
- 230000001737 promoting effect Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 239000000725 suspension Substances 0.000 description 4
- 230000026676 system process Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种处理悬浮窗的方法及悬浮窗处理装置。该方法包括:在第三方应用程序和/或智能终端设备操作系统中注入预先设置的悬浮窗处理程序;所述悬浮窗处理程序在识别到第三方应用程序发出的绘制悬浮窗请求后,按照预先设置的悬浮窗处理策略,处理所述绘制悬浮窗请求。应用本发明,可以提升悬浮窗拦截效率以及用户业务体验。
Description
技术领域
本发明涉及广告拦截技术,具体涉及一种处理悬浮窗的方法及悬浮窗处理装置。
背景技术
目前,随着嵌入式以及互联网的迅速发展,智能终端已经成为人们获取信息、沟通交流以及休闲娱乐的重要工具。而随着智能终端的逐渐普及,越来越多安装于智能终端的应用软件被开发出来,使得智能终端具有越来越多的功能。例如,用户通过智能终端浏览器,可以查询银行账户、网上购物、电子商务、查询信息、获取知识、进行娱乐等。然而,用户在上网冲浪浏览网页的同时,也会经常遇到未经点击而自动弹出的浏览器页面,例如,网站运营者为了网站利益投放的通知栏广告、游戏、购物网页,其中,一些浏览器页面的内容通常对用户来说毫无意义,并会对用户的浏览行为造成干扰,更为严重的是,部分弹出的浏览器页面还可能来自恶意网站,例如,钓鱼网站,或者欺诈、假冒网站等,恶意网站通过在弹出的浏览器页面设置虚假信息,并在浏览器页面代码内嵌入恶意的脚本程序,如果用户点击弹出的浏览器页面进行注册或访问,恶意网站则可以非法获取用户输入的账号、密码等个人信息,从而导致用户隐私信息的泄露,损害用户的利益。
为了保障用户的利益,各安全软件公司开发了多种不同的广告过滤软件,例如,广告过滤软件可以包括基于特征库分析的广告过滤软件、匹配程序特征码的广告过滤软件,用以对网页中的通知栏广告、游戏、购物网页等广告进行过滤。
随着安全软件公司加强对恶意通知栏广告的识别和拦截,一些广告软件另辟蹊径,开始使用智能终端操作系统的显示接口,在操作系统界面绘制一种悬浮的广告窗口,使得绘制的悬浮的广告窗口(悬浮窗)可以覆盖在任何应用程序之上,这样,能够避免广告过滤软件的过滤,并且用户无法知晓该悬浮窗是哪个应用程序显示的。例如,在智能终端的显示界面,利用操作系统显示接口显示的恶意悬浮窗可以附在任何应该用程序界面上,使得用户无法确定是那个恶意应用程序弹出的,并在显示的恶意悬浮窗中,通过要求用户注册或要求用户下载该恶意广告软件,甚至设置在恶意悬浮窗提供的关闭控件按钮,也指向该恶意广告对应的链接网页。使得该生成悬浮窗并向用户展示的方法,不仅对用户造成了干扰和困惑,而且有可能在用户使用网银等应用程序软件时,被欺骗在恶意应用程序软件弹出的悬浮窗中输入敏感信息,导致不必要的物质损失以及隐私信息泄露。而对该类悬浮窗,现有技术还没有提出较好的拦截该类悬浮窗的方法。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的处理悬浮窗的方法及悬浮窗处理装置。
依据本发明的一个方面,提供了处理悬浮窗的方法,该方法包括:
在第三方应用程序和/或智能终端设备操作系统中注入预先设置的悬浮窗处理程序;
所述悬浮窗处理程序在识别到第三方应用程序发出的绘制悬浮窗请求后,按照预先设置的悬浮窗处理策略,处理所述绘制悬浮窗请求。
优选地,所述按照预先设置的悬浮窗处理策略,处理所述绘制悬浮窗请求包括:
将绘制悬浮窗请求中携带的悬浮窗特征信息与预先设置的悬浮窗特征信息库进行特征信息匹配,如果相匹配,则拦截该绘制悬浮窗请求。
优选地,所述悬浮窗特征信息包括:窗口布局文件路径信息、窗口图片资源文件路径信息、窗口布局文件名称信息、窗口图片资源文件名称信息、窗口文本文字信息中的一种或其任意组合。
优选地,所述方法进一步包括:
如果绘制悬浮窗请求中携带的悬浮窗特征信息与预先设置的悬浮窗特征信息库不相匹配,展示绘制悬浮窗请求对应的悬浮窗。
优选地,所述方法进一步包括:
如果绘制悬浮窗请求中携带的悬浮窗特征信息与预先设置的悬浮窗特征信息库不相匹配,将绘制悬浮窗请求中携带的悬浮窗特征信息向用户展示,并提示用户是否允许展示,如果允许,展示绘制悬浮窗请求对应的悬浮窗,如果不允许,拦截该绘制悬浮窗请求。
优选地,所述方法进一步包括:
将绘制悬浮窗请求中携带的悬浮窗特征信息保存至所述预先设置的悬浮窗特征信息库。
优选地,所述按照预先设置的悬浮窗处理策略,处理所述绘制悬浮窗请求包括:
将绘制悬浮窗请求中携带的悬浮窗特征信息与预先设置的悬浮窗特征信息库进行特征信息匹配,如果相匹配,将预先设置的加载内容替换绘制悬浮窗请求对应的悬浮窗中的内容,并将加载有预先设置的加载内容的悬浮窗进行展示。
优选地,在处理所述绘制悬浮窗请求后,所述方法进一步包括:
向智能终端设备发送消息提醒;和/或,
对所述第三方应用程序进行安全扫描;和/或,
卸载所述第三方应用程序;和/或,
为所述第三方应用程序设置隐私访问权限。
优选地,所述在第三方应用程序中注入预先设置的悬浮窗处理程序包括:
在第三方应用程序中注入预先设置的悬浮窗处理程序的分析以及回调模块,所述注入的分析以及回调模块用于替换第三方应用程序的显示管理模块,且所述注入的分析以及回调模块中设置有悬浮窗显示函数或服务显示接口。
优选地,所述注入的分析以及回调模块用于替换第三方应用程序的显示管理模块包括:
调用WindowManager的addview方法,将分析以及回调模块中预先设置的悬浮窗显示函数或服务显示接口,替换第三方应用程序的显示管理模块中相应的悬浮窗显示函数或服务显示接口。
优选地,所述将分析以及回调模块中预先设置的悬浮窗显示函数或服务显示接口,替换第三方应用程序的显示管理模块中相应的悬浮窗显示函数或服务显示接口包括:
查找第三方应用程序的显示管理模块进程中的悬浮窗显示函数或服务显示接口的内存变量;
将所述悬浮窗显示函数或服务显示接口的内存变量替换为预先设置的悬浮窗处理程序的分析以及回调模块中的悬浮窗显示函数或服务显示接口的内存变量。
优选地,所述在智能终端设备操作系统中注入预先设置的悬浮窗处理程序包括:
在智能终端设备操作系统中的显示服务模块注入预先设置的悬浮窗处理程序,所述悬浮窗处理程序中设置有悬浮窗显示函数或服务显示接口,用于替换所述显示服务模块中的悬浮窗显示函数或服务显示接口。
优选地,在注入预先设置的悬浮窗处理程序之前,所述方法可以进一步包括:
获取第三方应用程序或智能终端设备操作系统的根权限。
优选地,在注入预先设置的悬浮窗处理程序之前,所述方法进一步包括:
调用Windows操作系统的SetWindowsHookEx接口,设置用于识别悬浮窗的悬浮窗处理程序。
根据本发明的另一个方面提供了一种悬浮窗处理装置,该装置包括:注入模块以及处理模块,其中,
注入模块,用于在第三方应用程序和/或智能终端设备操作系统中注入预先设置的悬浮窗处理程序;
处理模块,用于在所述悬浮窗处理程序识别到第三方应用程序发出的绘制悬浮窗请求后,按照预先设置的悬浮窗处理策略,处理所述绘制悬浮窗请求。
优选地,所述注入模块包括:第三方应用程序注入单元以及智能终端设备操作系统注入单元,其中,
第三方应用程序注入单元,用于在第三方应用程序中注入预先设置的悬浮窗处理程序的分析以及回调模块,所述注入的分析以及回调模块用于替换第三方应用程序的显示管理模块,且所述注入的分析以及回调模块中设置有悬浮窗显示函数或服务显示接口;
智能终端设备操作系统注入单元,用于在智能终端设备操作系统中的显示服务模块注入预先设置的悬浮窗处理程序,所述悬浮窗处理程序中设置有悬浮窗显示函数或服务显示接口,用于替换所述显示服务模块中的悬浮窗显示函数或服务显示接口。
优选地,所述处理模块包括:监测单元、拦截单元、提取单元以及匹配处理单元,其中,
监测单元,用于监测第三方应用程序发出的绘制悬浮窗请求,在监测到第三方应用程序发出绘制悬浮窗请求后,通知拦截单元;
拦截单元,用于根据来自监测单元的通知,暂拦截第三方应用程序发出的绘制悬浮窗请求,接收来自匹配处理单元的通知,拦截或放行暂拦截的绘制悬浮窗请求;
提取单元,用于提取拦截的绘制悬浮窗请求中携带的悬浮窗特征信息,输出至匹配处理单元;
匹配处理单元,用于将接收的悬浮窗特征信息与预先设置的悬浮窗特征信息库进行特征信息匹配,如果相匹配,通知拦截单元拦截绘制悬浮窗请求,如果不相匹配,通知拦截单元放行绘制悬浮窗请求。
优选地,所述装置进一步包括:
根权限获取模块,用于获取第三方应用程序或智能终端设备操作系统的根权限。
优选地,所述装置进一步包括:
悬浮窗处理程序设置模块,用于调用Windows操作系统的SetWindowsHookEx接口,设置用于识别悬浮窗的悬浮窗处理程序。
优选地,所述装置进一步包括:提示模块、选择处理模块以及展示模块,其中,
提示模块,用于在监测到拦截单元放行暂拦截的绘制悬浮窗请求后,将绘制悬浮窗请求中携带的悬浮窗特征信息向用户展示,并提示用户是否允许展示;
选择处理模块,用于在用户选择允许展示后,通知展示模块展示绘制悬浮窗请求对应的悬浮窗;在用户选择不允许展示后,拦截绘制悬浮窗请求。
优选地,在用户选取不允许后,所述选择处理模块还可以进一步通知提取单元将绘制悬浮窗请求中携带的悬浮窗特征信息保存至所述预先设置的悬浮窗特征信息库。
优选地,所述装置进一步包括:
扩展模块,用于在处理所述绘制悬浮窗请求后,向智能终端设备发送消息提醒;和/或,
对所述第三方应用进行安全扫描;和/或,
卸载所述第三方应用;和/或,
为所述第三方应用设置隐私访问权限。
根据本发明的处理悬浮窗的方法及悬浮窗处理装置,可以利用第三方应用程序或智能终端设备中注入的悬浮窗处理程序,监控第三方应用程序或智能终端设备操作系统中的任何一个系统进程,从而在第三方应用程序利用操作系统的显示接口发起绘制悬浮窗请求时,注入的悬浮窗处理程序截获该绘制悬浮窗请求,并按照预先设置的悬浮窗处理策略,确定是否拦截该悬浮窗。由此解决了现有技术不能对悬浮窗进行有效拦截的技术问题,取得了有效提升悬浮窗拦截效率、提升用户业务体验的有益效果。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例处理悬浮窗的方法流程;以及,
图2示出了本发明实施例悬浮窗处理装置结构。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
现有的悬浮窗显示方法,利用智能终端操作系统的显示接口在操作系统界面进行绘制,使得绘制的悬浮窗可以覆盖在任何应用程序界面之上,这样,可以避免广告过滤软件的过滤,并且用户无法知晓该悬浮窗是哪个应用程序显示的,因而,还没有针对该类悬浮窗进行有效拦截的方法。
实际应用中,不同的用户,对操作系统进行操作的权限可能不同。对于智能终端设备操作系统(简称系统)来说,操作系统将用户分为不同的权限组,并为每个权限组赋予相应的操作权限,权限组可以包括:管理员权限组、高权限用户组、普通用户组、备份操作组、文件复制组以及匿名权限组等。其中,管理员权限组对应的操作权限为管理员权限,高权限用户组对应的操作权限为高权限,普通用户组对应的操作权限为普通权限等。
本发明实施例中,考虑到不同的操作权限虽然将用户对操作系统的操作限制在相应的操作权限内,但由于各操作权限之间并不相互独立,都依赖于同样的指令完成权限操作。因而,可以利用提升权限(Adjust Token Privilege)的方法提升访问用户的操作权限,其中,提升权限是指程序员或相关技术人员利用各种操作系统漏洞,突破操作系统指派的操作权限级别,将自己当前的操作权限提高一个或多个级别,从而使用户获取更多对操作系统进行操作的权限,例如,通过提升权限的方法,可以使用户获取原先未曾拥有的对系统文件的删、增、改等权限。现有提升权限的方法应用较为广泛的包括智能终端设备刷机、根权限以及越狱等。
本发明实施例中,基于上述分析和考虑,提出一种处理悬浮窗的方法,通过利用智能终端设备的操作系统漏洞,利用提升权限的方法,获取操作系统的高级操作权限,在获取高级操作权限后,在第三方应用程序(恶意软件程序)或智能终端设备中注入(inject)悬浮窗处理程序,可以实现控制第三方应用程序或智能终端设备操作系统中的任何一个系统进程,从而在第三方应用程序利用操作系统的显示接口发起绘制悬浮窗请求时,第三方应用程序中预先注入的悬浮窗处理程序截获该绘制悬浮窗请求,并按照预先设置的悬浮窗处理策略,确定是否拦截该悬浮窗;或者,智能终端设备中预先注入的悬浮窗处理程序截获第三方应用程序发起的绘制悬浮窗请求,并按照预先设置的悬浮窗处理策略,确定是否拦截该悬浮窗。这样,利用提升权限的方法注入悬浮窗处理程序,可以有效截获利用操作系统的显示接口绘制的悬浮窗,从而提升悬浮窗的拦截效率,提升用户的业务体验。
本发明实施例中,以安装有安卓(Android)系统的智能终端设备为例进行示例性说明,但所应说明的是,该描述仅是示例性的,本发明的范围并不限于此,本发明实施例的方法也可适用于安装有其他操作系统,例如,Linux操作系统、iOS操作系统、Window Phone操作系统等的智能终端设备。
图1示出了本发明实施例处理悬浮窗的方法流程。参见图1,该流程包括:
步骤101,在第三方应用程序和/或智能终端设备操作系统中注入预先设置的悬浮窗拦截程序;
本步骤中,悬浮窗拦截程序为悬浮窗处理程序。作为可选实施例,在第三方应用程序中注入预先设置的悬浮窗处理程序包括:
在第三方应用程序(恶意软件程序)中注入预先设置的悬浮窗处理程序的分析以及回调模块,所述注入的分析以及回调模块用于替换第三方应用程序的显示管理模块,且所述注入的分析以及回调模块中设置有悬浮窗显示函数或服务显示接口。
本步骤中,可以利用注入的分析以及回调模块动态地监控第三方应用程序添加悬浮窗的行为。也就是说,在第三方应用程序中,利用注入的悬浮窗处理程序(悬浮窗显示函数或服务显示接口)监视悬浮窗调用流程。
本发明实施例中,所述注入的分析以及回调模块用于替换第三方应用程序的显示管理模块包括:
调用WindowManager的addview方法,将分析以及回调模块中预先设置的悬浮窗显示函数或服务显示接口,替换第三方应用程序的显示管理模块中相应的悬浮窗显示函数或服务显示接口。
本步骤中,通过替换恶意软件中涉及到的相关函数或者变量(悬浮窗显示函数或服务显示接口),从而可以在后续流程中,达到处理悬浮窗的目的。关于调用WindowManager的addview方法,属于公知技术,在此略去详述。
本发明实施例中,将分析以及回调模块中预先设置的悬浮窗显示函数或服务显示接口,替换第三方应用程序的显示管理模块中相应的悬浮窗显示函数或服务显示接口包括:
A11,查找第三方应用程序的显示管理模块进程中的悬浮窗显示函数或服务显示接口的内存变量;
A12,将所述悬浮窗显示函数或服务显示接口的内存变量替换为预先设置的悬浮窗处理程序的分析以及回调模块中的悬浮窗显示函数或服务显示接口的内存变量。
本发明实施例中,作为可选实施例,步骤A12可以具体包括:
将悬浮窗处理程序的分析以及回调模块中的悬浮窗显示函数或服务显示接口的内存变量对应的代码写入动态链接库(DLL,Dynamic Link Library)中,利用操作系统中的windows钩子将写入动态链接库中的悬浮窗处理程序的内存变量代码映射到显示管理模块进程。
作为另一可选实施例,步骤A12也可以包括:
将悬浮窗处理程序的分析以及回调模块中的悬浮窗显示函数或服务显示接口的内存变量对应的代码写入动态链接库中,利用操作系统中的远程注入(CreatRemoteThread)以及动态加载(LoadLibrary)将写入动态链接库中的悬浮窗处理程序的内存变量代码映射到显示管理模块进程。
作为再一可选实施例,步骤A12还可以包括:
利用系统进程监视器(WriteProcessMemory),将悬浮窗处理程序的分析以及回调模块中的悬浮窗显示函数或服务显示接口的内存变量对应的代码复制到显示管理模块进程,并利用远程注入(CreatRemoteThread)执行。
作为可选实施例,在智能终端设备操作系统中注入预先设置的悬浮窗处理程序包括:
在智能终端设备操作系统中的显示服务模块注入预先设置的悬浮窗处理程序,所述悬浮窗处理程序中设置有悬浮窗显示函数或服务显示接口,用于替换所述显示服务模块中的悬浮窗显示函数或服务显示接口。
本发明实施例中,通过将悬浮窗处理程序注入智能终端操作系统中的显示服务模块,从而使得注入的悬浮窗处理程序可以在智能终端设备中监视悬浮窗显示调用流程。
实际应用中,可以通过智能终端操作系统显示接口,从显示服务模块注入悬浮窗处理程序,替换显示服务模块中用于显示悬浮窗的悬浮窗显示函数或者服务显示接口,从而达到拦截的目的。
本发明实施例中,进行替换在具体实现时,可以通过调用WindowSession类的add方法或WindowSession类的addToDisplay方法进行替换。例如,通过调用WindowSession类的add方法或WindowSession类的addToDisplay方法,将悬浮窗处理程序中预先设置的悬浮窗显示函数替换显示服务模块中的悬浮窗显示函数;或者,将悬浮窗处理程序中预先设置的服务显示接口替换显示服务模块中的服务显示接口。关于替换的具体流程为公知技术,在此略去详述。
作为可选实施例,替换所述显示服务模块中的悬浮窗显示函数或服务显示接口包括:
B11,查找智能终端设备操作系统的显示服务模块进程中的悬浮窗显示函数或服务显示接口的内存变量;
B12,将所述悬浮窗显示函数或服务显示接口的内存变量替换为预先设置的悬浮窗处理程序用于悬浮窗显示调用的悬浮窗显示函数或服务显示接口的内存变量。
本步骤的具体执行流程与步骤A12的具体执行流程相类似,在此略去详述。
本发明实施例中,悬浮窗处理程序中存储的内存变量代码或函数信息可以文件的形式进行存储,可以通过在智能终端设备操作系统中找到显示服务模块进程,在显示服务模块进程的位置加载以文件形式存储的悬浮窗处理程序。例如,可以通过安卓系统所基于的Linux系统所提供的应用程序编程接口(API,Application Programming Interface),以指定模式打开一个动态链接库的dlopen方法,将悬浮窗处理程序加载到显示服务模块进程中,从而替换显示服务模块进程中的相关内存变量代码为悬浮窗处理程序中相对应的内存变量代码。其中,替换后的悬浮窗处理程序中相对应的内存变量代码所实现的功能与显示服务模块进程中的相关内存变量代码所实现的功能一致,且追加有悬浮窗显示请求拦截功能。这样,在显示服务模块进程发送悬浮窗显示请求后,先调用悬浮窗处理程序进行处理。
所应说明的是,本发明实施例中的注入仅是示例性的,本领域普通技术人员可以采用其他的技术来完成替换流程,例如,在操作系统启动后调用SetWindowsHookEx接口向Windows操作系统注册本发明实施例的悬浮窗处理程序,用于拦截操作系统创建悬浮窗的消息或请求,本发明实施例不再一一例举。
本发明实施例中,在显示服务模块进程中注入悬浮窗处理程序后,悬浮窗处理程序可以替换显示服务模块进程中已有的函数或变量(悬浮窗显示函数或服务显示接口)。这样,后续应用中,可以通过底层接口拦截第三方应用程序发出的悬浮窗显示请求,而不会影响其它应用程序的正常运行和使用。
作为可选实施例,在注入预先设置的悬浮窗处理程序之前,该方法进一步包括:
调用Windows操作系统的SetWindowsHookEx接口,设置用于识别悬浮窗的悬浮窗处理程序。
本步骤中,悬浮窗处理程序可以是Windows操作系统中的用于处理消息的窗口钩子程序。通过设置悬浮窗处理程序,每当特定的消息或请求发出,在没有到达目的窗口前,悬浮窗处理程序可以捕获该消息或请求,即悬浮窗处理程序先得到控制权。这样,悬浮窗处理程序可以修改该消息或请求,也可以不作处理而继续传递该消息或请求,还可以强制结束该消息或请求的传递。
作为另一可选实施例,在注入预先设置的悬浮窗处理程序之前,该方法可以进一步包括:
获取第三方应用程序或智能终端设备操作系统的根(Root)权限。
本步骤中,通过预先获取第三方应用程序或智能终端设备操作系统的Root权限,从而可以实现提升权限。其中,Root是Linux操作系统和Unix操作系统中的超级管理员用户账户,如果获得Root权限,表示已经获取第三方应用程序或智能终端设备操作系统的最高权限。这样,可以对第三方应用程序或智能终端设备中的任何文件(包括操作系统文件)执行增、删、改、查等操作,从而实现悬浮窗处理程序的注入。
步骤102,启动预先注入的悬浮窗处理程序;
本步骤为可选步骤,本步骤中,如果是在第三方应用程序中注入悬浮窗处理程序,则在第三方应用程序发起绘制悬浮窗请求的同时或之后,自动触发启动注入在第三方应用程序中的悬浮窗处理程序;如果是在智能终端设备操作系统中注入悬浮窗处理程序,则在第三方应用程序发起的绘制悬浮窗请求到达智能终端设备操作系统的同时或之后,即智能终端设备操作系统接收到绘制悬浮窗请求的同时或之后,触发启动注入在智能终端设备操作系统中的悬浮窗处理程序。
步骤103,启动的悬浮窗拦截程序在拦截到第三方应用程序发出的绘制悬浮窗请求后,按照预先设置的悬浮窗拦截处理策略,处理所述绘制悬浮窗请求。
本步骤中,启动的悬浮窗处理程序在识别到第三方应用程序发出的绘制悬浮窗请求后,按照预先设置的悬浮窗处理策略,处理所述绘制悬浮窗请求。第三方应用程序中注入的悬浮窗处理程序在识别到第三方应用程序发起的绘制悬浮窗请求,使之不发向智能终端设备操作系统并调用悬浮窗显示函数或服务显示接口进行处理;而智能终端设备操作系统中注入的悬浮窗处理程序在识别到发送至智能终端设备操作系统的绘制悬浮窗请求后,直接调用悬浮窗处理程序中的悬浮窗显示函数或服务显示接口进行处理。
实际应用中,由于恶意软件(应用程序)在通过智能终端操作系统显示接口发起绘制悬浮窗请求时,携带有待显示悬浮窗的悬浮窗特征信息。因而,本发明实施例中,按照预先设置的悬浮窗处理策略,处理所述绘制悬浮窗请求包括:
将绘制悬浮窗请求中携带的悬浮窗特征信息与预先设置的悬浮窗特征信息库进行特征信息匹配,如果相匹配,则拦截该绘制悬浮窗请求。
本步骤中,悬浮窗特征信息包括:窗口布局文件路径信息、窗口图片资源文件路径信息、窗口布局文件名称信息、窗口图片资源文件名称信息、窗口文本文字信息中的一种或其任意组合。
本发明实施例中,预先设置的悬浮窗特征信息可以预先通过人工运营,提取一部分已知的恶意软件展示悬浮窗的特征信息,形成悬浮窗特征信息库。作为另一可选实施例,也可以根据收集的悬浮窗相关信息,按照预先设置的特征提取算法,进行悬浮窗特征信息提取,获取悬浮窗特征信息,并通过机器学习的方法,从获取的悬浮窗特征信息中,确定需要拦截的悬浮窗对应的悬浮窗特征信息,并置于悬浮窗特征信息库中。关于特征提取算法以及机器学习的方法,为公知技术,在此略去详述。
实际应用中,还可以通过分析悬浮窗特征信息,获取木马样本,提取出该木马样本对应的悬浮窗特征信息,保存到悬浮窗特征信息库,然后,将悬浮窗特征信息库附加到悬浮窗处理程序中,以供悬浮窗处理程序在监测到悬浮窗后进行比对,确定是否需要拦截该悬浮窗。当然,作为另一可选实施例,还可以通过获取恶意软件的安装文件,分析并提取获取的安装文件的特征信息,将提取的特征信息保存到悬浮窗特征信息库,并依据提取的特征信息确定是否需要拦截该恶意软件对应的悬浮窗。
本发明实施例中,如果绘制悬浮窗请求中携带的悬浮窗特征信息与预先设置的悬浮窗特征信息库中的任一特征信息匹配,则确定携带的悬浮窗特征信息与预先设置的悬浮窗特征信息库相匹配。
作为可选实施例,对于绘制悬浮窗请求中携带的悬浮窗特征信息与预先设置的悬浮窗特征信息库不相匹配的情形,该方法进一步包括:
展示绘制悬浮窗请求对应的悬浮窗;或者,
将绘制悬浮窗请求中携带的悬浮窗特征信息向用户展示,并提示用户是否允许展示,如果允许,展示绘制悬浮窗请求对应的悬浮窗,如果不允许,拦截该绘制悬浮窗请求。
本步骤中,在确定需要对悬浮窗进行拦截后,可以先不拦截,并向用户显示提示信息,用户可以根据显示的提示信息选择是否消除待显示的悬浮窗并禁止再次弹出,或者选择不需要显示提示信息。这样,可以将用户的选择进行存储,后续流程中,在监测到绘制悬浮窗请求后,如果存储有用户明确指示的不再允许该悬浮窗,则本发明实施例在恶意软件调用智能终端操作系统显示接口,读取悬浮窗显示函数或服务显示接口的过程中,对调用进行拦截,不允许恶意软件再次显示悬浮窗。
举例来说,对于一提示悬浮窗的实例,例如,显示以提示框显示的提示信息:发现XX弹出的悬浮窗,你可以选择:不再提示我;或者,禁止该软件再弹。如果用户点击不再提示我控件按钮,则在后续该应用程序软件显示悬浮窗时,直接显示悬浮窗,而无需再弹出以提示框显示的提示信息;如果用户点击禁止该软件再弹控件按钮,则在后续该应用程序软件显示悬浮窗时,直接拦截悬浮窗,并将该悬浮窗移除或者将该悬浮窗设置为不可见,也不再弹出以提示框显示的提示信息,从而达到用户不受悬浮窗影响的目的。
作为可选实施例,在用户选取不允许后,该方法进一步包括:
将绘制悬浮窗请求中携带的悬浮窗特征信息保存至所述预先设置的悬浮窗特征信息库。
进一步地,作为另一可选实施例,按照预先设置的悬浮窗处理策略,处理所述绘制悬浮窗请求包括:
将绘制悬浮窗请求中携带的悬浮窗特征信息与预先设置的悬浮窗特征信息库进行特征信息匹配,如果相匹配,将预先设置的加载内容替换绘制悬浮窗请求对应的悬浮窗中的内容,并将加载有预先设置的加载内容的悬浮窗进行展示。
本步骤中,可以根据悬浮窗的类型设置加载内容。其中,悬浮窗的类型可以包括:基于对象和事件驱动的客户端脚本语言(JS,JavaScript)、可移植网络图形格式(PNG,Portable Network Graphic Format)、超文本标记语言(HTML,Hypertext MarkupLanguage)、图像交换格式(GIF,Graphics Interchange Format)、可扩展标记语言(XML,Extensible Markup Language)等,也可为其他能够显示悬浮窗内容的类型,本发明对此不做限定。
本发明实施例中,加载内容可根据上述不同悬浮窗的类型,设置为具有空内容信息或者其他不影响加载和显示的内容信息。例如,如果悬浮窗的类型为GIF,则加载内容可以设置为空白GIF。再例如,加载内容可包括图片内容、文字内容及链接内容等,相对应的,图片内容对应的悬浮窗的类型为PNG、GIF等;文字内容对应的悬浮窗的类型可为HTML、XML等;链接内容对应的悬浮窗的类型可为JS、HTML、XML等。
作为另一可选实施例,在处理所述绘制悬浮窗请求后,所述方法进一步包括:
向智能终端设备发送消息提醒;和/或,
对所述第三方应用程序进行安全扫描;和/或,
卸载所述第三方应用程序;和/或,
为所述第三方应用程序设置隐私访问权限。
本发明实施例中,通过利用提升权限的方法注入悬浮窗处理程序,从而可以在第三方应用程序发起绘制悬浮窗请求时,或者,在第三方应用程序发起的绘制悬浮窗请求输出至智能终端设备操作系统时,先调用悬浮窗处理程序对绘制悬浮窗请求进行处理,以确定是否进行拦截。可以有效截获利用操作系统的显示接口绘制的悬浮窗,避免展示的悬浮窗对用户造成干扰和困惑,也降低了用户在使用网银等应用程序软件时,被欺骗在恶意应用程序软件弹出的悬浮窗中输入敏感信息导致的不必要物质损失以及隐私信息泄露,从而提升悬浮窗的拦截效率,提升用户的业务体验。
图2示出了本发明实施例悬浮窗处理装置结构。参见图2,该装置包括:注入模块、启动模块以及处理模块,其中,
注入模块,用于在第三方应用程序和/或智能终端设备操作系统中注入预先设置的悬浮窗处理程序;
本发明实施例中,注入模块包括:第三方应用程序注入单元以及智能终端设备操作系统注入单元(图中未示出),其中,
第三方应用程序注入单元,用于在第三方应用程序中注入预先设置的悬浮窗处理程序的分析以及回调模块,所述注入的分析以及回调模块用于替换第三方应用程序的显示管理模块,且所述注入的分析以及回调模块中设置有悬浮窗显示函数或服务显示接口;
本发明实施例中,通过调用WindowManager的addview方法,将分析以及回调模块中预先设置的悬浮窗显示函数或服务显示接口,替换第三方应用程序的显示管理模块中相应的悬浮窗显示函数或服务显示接口。具体来说,通过调用WindowManager的addview方法,查找第三方应用程序的显示管理模块进程中的悬浮窗显示函数或服务显示接口的内存变量;将所述悬浮窗显示函数或服务显示接口的内存变量替换为预先设置的悬浮窗处理程序的分析以及回调模块中的悬浮窗显示函数或服务显示接口的内存变量。其中,
将所述悬浮窗显示函数或服务显示接口的内存变量替换为预先设置的悬浮窗处理程序的分析以及回调模块中的悬浮窗显示函数或服务显示接口的内存变量具体为:
将悬浮窗处理程序的分析以及回调模块中的悬浮窗显示函数或服务显示接口的内存变量对应的代码写入动态链接库中,利用操作系统中的windows钩子将写入动态链接库中的悬浮窗处理程序的内存变量代码映射到显示管理模块进程;或者,
将悬浮窗处理程序的分析以及回调模块中的悬浮窗显示函数或服务显示接口的内存变量对应的代码写入动态链接库中,利用操作系统中的远程注入(CreatRemoteThread)以及动态加载(LoadLibrary)将写入动态链接库中的悬浮窗处理程序的内存变量代码映射到显示管理模块进程;或者,
利用系统进程监视器(WriteProcessMemory),将悬浮窗处理程序的分析以及回调模块中的悬浮窗显示函数或服务显示接口的内存变量对应的代码复制到显示管理模块进程,并利用远程注入(CreatRemoteThread)执行。
智能终端设备操作系统注入单元,用于在智能终端设备操作系统中的显示服务模块注入预先设置的悬浮窗处理程序,所述悬浮窗处理程序中设置有悬浮窗显示函数或服务显示接口,用于替换所述显示服务模块中的悬浮窗显示函数或服务显示接口。
本发明实施例中,通过调用WindowSession类的add方法或WindowSession类的addToDisplay方法,将悬浮窗处理程序中预先设置的悬浮窗显示函数替换显示服务模块中的悬浮窗显示函数;或者,将悬浮窗处理程序中预先设置的服务显示接口替换显示服务模块中的服务显示接口。其中,替换所述显示服务模块中的悬浮窗显示函数或服务显示接口包括:
查找智能终端设备操作系统的显示服务模块进程中的悬浮窗显示函数或服务显示接口的内存变量;
将所述悬浮窗显示函数或服务显示接口的内存变量替换为预先设置的悬浮窗处理程序用于悬浮窗显示调用的悬浮窗显示函数或服务显示接口的内存变量。
启动模块,用于启动注入模块中预先注入的悬浮窗处理程序;
本发明实施例中,启动模块为可选模块。如果是在第三方应用程序中注入悬浮窗处理程序,则在第三方应用程序发起绘制悬浮窗请求的同时或之后,自动触发启动注入在第三方应用程序中的悬浮窗处理程序;如果是在智能终端设备操作系统中注入悬浮窗处理程序,则在智能终端设备操作系统接收到绘制悬浮窗请求的同时或之后,触发启动注入在智能终端设备操作系统中的悬浮窗处理程序。
处理模块,用于在启动的悬浮窗处理程序识别到第三方应用程序发出的绘制悬浮窗请求后,按照预先设置的悬浮窗处理策略,处理所述绘制悬浮窗请求。
本发明实施例中,处理模块包括:监测单元、拦截单元、提取单元以及匹配处理单元(图中未示出),其中,
监测单元,用于监测第三方应用程序发出的绘制悬浮窗请求,在监测到第三方应用程序发出绘制悬浮窗请求后,通知拦截单元;
拦截单元,用于根据来自监测单元的通知,暂拦截第三方应用程序发出的绘制悬浮窗请求,接收来自匹配处理单元的通知,拦截或放行暂拦截的绘制悬浮窗请求;
提取单元,用于提取拦截的绘制悬浮窗请求中携带的悬浮窗特征信息,输出至匹配处理单元;
本发明实施例中,悬浮窗特征信息包括:窗口布局文件路径信息、窗口图片资源文件路径信息、窗口布局文件名称信息、窗口图片资源文件名称信息、窗口文本文字信息中的一种或其任意组合。
匹配处理单元,用于将接收的悬浮窗特征信息与预先设置的悬浮窗特征信息库进行特征信息匹配,如果相匹配,通知拦截单元拦截绘制悬浮窗请求,如果不相匹配,通知拦截单元放行绘制悬浮窗请求。
本发明实施例中,如果绘制悬浮窗请求中携带的悬浮窗特征信息与预先设置的悬浮窗特征信息库中的任一特征信息匹配,则确定携带的悬浮窗特征信息与预先设置的悬浮窗特征信息库相匹配。
作为可选实施例,该装置还可以进一步包括:
根权限获取模块,用于获取第三方应用程序或智能终端设备操作系统的根权限。
作为另一可选实施例,该装置还可以进一步包括:
悬浮窗处理程序设置模块,用于调用Windows操作系统的SetWindowsHookEx接口,设置用于识别悬浮窗的悬浮窗处理程序。
作为再一可选实施例,该装置还可以进一步包括:
展示模块(图中未示出),用于在监测到拦截单元放行暂拦截的绘制悬浮窗请求后,展示绘制悬浮窗请求对应的悬浮窗。
较佳地,该装置还可以进一步包括:提示模块、选择处理模块以及展示模块(图中未示出),其中,
提示模块,用于在监测到拦截单元放行暂拦截的绘制悬浮窗请求后,将绘制悬浮窗请求中携带的悬浮窗特征信息向用户展示,并提示用户是否允许展示;
选择处理模块,用于在用户选择允许展示后,通知展示模块展示绘制悬浮窗请求对应的悬浮窗;在用户选择不允许展示后,拦截绘制悬浮窗请求。
本发明实施例中,在用户选取不允许后,选择处理模块还可以进一步通知提取单元将绘制悬浮窗请求中携带的悬浮窗特征信息保存至所述预先设置的悬浮窗特征信息库。
本发明实施例中,作为另一可选实施例,按照预先设置的悬浮窗处理策略,处理所述绘制悬浮窗请求包括:
将绘制悬浮窗请求中携带的悬浮窗特征信息与预先设置的悬浮窗特征信息库进行特征信息匹配,如果相匹配,将预先设置的加载内容替换绘制悬浮窗请求对应的悬浮窗中的内容,并将加载有预先设置的加载内容的悬浮窗进行展示。
作为可选实施例,所述装置进一步包括:
扩展模块(图中未示出),用于在处理所述绘制悬浮窗请求后,向智能终端设备发送消息提醒;和/或,
对所述第三方应用进行安全扫描;和/或,
卸载所述第三方应用;和/或,
为所述第三方应用设置隐私访问权限。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的悬浮窗处理装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站服务器上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种处理悬浮窗的方法,包括:
在第三方应用程序和/或智能终端设备操作系统中注入预先设置的悬浮窗处理程序;
所述悬浮窗处理程序在识别到第三方应用程序发出的绘制悬浮窗请求后,按照预先设置的悬浮窗处理策略,处理所述绘制悬浮窗请求。
A2.根据A1所述的方法,所述按照预先设置的悬浮窗处理策略,处理所述绘制悬浮窗请求包括:
将绘制悬浮窗请求中携带的悬浮窗特征信息与预先设置的悬浮窗特征信息库进行特征信息匹配,如果相匹配,则拦截该绘制悬浮窗请求。
A3.根据A2所述的方法,所述悬浮窗特征信息包括:窗口布局文件路径信息、窗口图片资源文件路径信息、窗口布局文件名称信息、窗口图片资源文件名称信息、窗口文本文字信息中的一种或其任意组合。
A4.根据A2所述的方法,所述方法进一步包括:
如果绘制悬浮窗请求中携带的悬浮窗特征信息与预先设置的悬浮窗特征信息库不相匹配,展示绘制悬浮窗请求对应的悬浮窗。
A5.根据A2所述的方法,所述方法进一步包括:
如果绘制悬浮窗请求中携带的悬浮窗特征信息与预先设置的悬浮窗特征信息库不相匹配,将绘制悬浮窗请求中携带的悬浮窗特征信息向用户展示,并提示用户是否允许展示,如果允许,展示绘制悬浮窗请求对应的悬浮窗,如果不允许,拦截该绘制悬浮窗请求。
A6.根据A5所述的方法,所述方法进一步包括:
将绘制悬浮窗请求中携带的悬浮窗特征信息保存至所述预先设置的悬浮窗特征信息库。
A7.根据A1所述的方法,所述按照预先设置的悬浮窗处理策略,处理所述绘制悬浮窗请求包括:
将绘制悬浮窗请求中携带的悬浮窗特征信息与预先设置的悬浮窗特征信息库进行特征信息匹配,如果相匹配,将预先设置的加载内容替换绘制悬浮窗请求对应的悬浮窗中的内容,并将加载有预先设置的加载内容的悬浮窗进行展示。
A8.根据A2或A7所述的方法,在处理所述绘制悬浮窗请求后,所述方法进一步包括:
向智能终端设备发送消息提醒;和/或,
对所述第三方应用程序进行安全扫描;和/或,
卸载所述第三方应用程序;和/或,
为所述第三方应用程序设置隐私访问权限。
A9.根据A1所述的方法,所述在第三方应用程序中注入预先设置的悬浮窗处理程序包括:
在第三方应用程序中注入预先设置的悬浮窗处理程序的分析以及回调模块,所述注入的分析以及回调模块用于替换第三方应用程序的显示管理模块,且所述注入的分析以及回调模块中设置有悬浮窗显示函数或服务显示接口。
A10.根据A9所述的方法,所述注入的分析以及回调模块用于替换第三方应用程序的显示管理模块包括:
调用WindowManager的addview方法,将分析以及回调模块中预先设置的悬浮窗显示函数或服务显示接口,替换第三方应用程序的显示管理模块中相应的悬浮窗显示函数或服务显示接口。
A11.根据A10所述的方法,所述将分析以及回调模块中预先设置的悬浮窗显示函数或服务显示接口,替换第三方应用程序的显示管理模块中相应的悬浮窗显示函数或服务显示接口包括:
查找第三方应用程序的显示管理模块进程中的悬浮窗显示函数或服务显示接口的内存变量;
将所述悬浮窗显示函数或服务显示接口的内存变量替换为预先设置的悬浮窗处理程序的分析以及回调模块中的悬浮窗显示函数或服务显示接口的内存变量。
A12.根据A1所述的方法,所述在智能终端设备操作系统中注入预先设置的悬浮窗处理程序包括:
在智能终端设备操作系统中的显示服务模块注入预先设置的悬浮窗处理程序,所述悬浮窗处理程序中设置有悬浮窗显示函数或服务显示接口,用于替换所述显示服务模块中的悬浮窗显示函数或服务显示接口。
A13.根据A1所述的方法,在注入预先设置的悬浮窗处理程序之前,所述方法可以进一步包括:
获取第三方应用程序或智能终端设备操作系统的根权限。
A14.根据A1所述的方法,在注入预先设置的悬浮窗处理程序之前,所述方法进一步包括:
调用Windows操作系统的SetWindowsHookEx接口,设置用于识别悬浮窗的悬浮窗处理程序。
A15.一种悬浮窗处理装置,该装置包括:注入模块以及处理模块,其中,
注入模块,用于在第三方应用程序和/或智能终端设备操作系统中注入预先设置的悬浮窗处理程序;
处理模块,用于在所述悬浮窗处理程序识别到第三方应用程序发出的绘制悬浮窗请求后,按照预先设置的悬浮窗处理策略,处理所述绘制悬浮窗请求。
A16.根据A15所述的装置,所述注入模块包括:第三方应用程序注入单元以及智能终端设备操作系统注入单元,其中,
第三方应用程序注入单元,用于在第三方应用程序中注入预先设置的悬浮窗处理程序的分析以及回调模块,所述注入的分析以及回调模块用于替换第三方应用程序的显示管理模块,且所述注入的分析以及回调模块中设置有悬浮窗显示函数或服务显示接口;
智能终端设备操作系统注入单元,用于在智能终端设备操作系统中的显示服务模块注入预先设置的悬浮窗处理程序,所述悬浮窗处理程序中设置有悬浮窗显示函数或服务显示接口,用于替换所述显示服务模块中的悬浮窗显示函数或服务显示接口。
A17.根据A15所述的装置,所述处理模块包括:监测单元、拦截单元、提取单元以及匹配处理单元,其中,
监测单元,用于监测第三方应用程序发出的绘制悬浮窗请求,在监测到第三方应用程序发出绘制悬浮窗请求后,通知拦截单元;
拦截单元,用于根据来自监测单元的通知,暂拦截第三方应用程序发出的绘制悬浮窗请求,接收来自匹配处理单元的通知,拦截或放行暂拦截的绘制悬浮窗请求;
提取单元,用于提取拦截的绘制悬浮窗请求中携带的悬浮窗特征信息,输出至匹配处理单元;
匹配处理单元,用于将接收的悬浮窗特征信息与预先设置的悬浮窗特征信息库进行特征信息匹配,如果相匹配,通知拦截单元拦截绘制悬浮窗请求,如果不相匹配,通知拦截单元放行绘制悬浮窗请求。
A18.根据A15所述的装置,所述装置进一步包括:
根权限获取模块,用于获取第三方应用程序或智能终端设备操作系统的根权限。
A19.根据A15所述的装置,所述装置进一步包括:
悬浮窗处理程序设置模块,用于调用Windows操作系统的SetWindowsHookEx接口,设置用于识别悬浮窗的悬浮窗处理程序。
A20.根据A15所述的装置,所述装置进一步包括:提示模块、选择处理模块以及展示模块,其中,
提示模块,用于在监测到拦截单元放行暂拦截的绘制悬浮窗请求后,将绘制悬浮窗请求中携带的悬浮窗特征信息向用户展示,并提示用户是否允许展示;
选择处理模块,用于在用户选择允许展示后,通知展示模块展示绘制悬浮窗请求对应的悬浮窗;在用户选择不允许展示后,拦截绘制悬浮窗请求。
A21.根据A20所述的装置,在用户选取不允许后,所述选择处理模块还可以进一步通知提取单元将绘制悬浮窗请求中携带的悬浮窗特征信息保存至所述预先设置的悬浮窗特征信息库。
A22.根据A15所述的装置,所述装置进一步包括:
扩展模块,用于在处理所述绘制悬浮窗请求后,向智能终端设备发送消息提醒;和/或,
对所述第三方应用进行安全扫描;和/或,
卸载所述第三方应用;和/或,
为所述第三方应用设置隐私访问权限。
Claims (22)
1.一种处理悬浮窗的方法,包括:
在第三方应用程序和/或智能终端设备操作系统中注入预先设置的悬浮窗处理程序,所述悬浮窗处理程序中包括有用于替换第三方应用程序的显示管理模块的分析以及回调模块,所述分析以及回调模块中设置有悬浮窗显示函数或服务显示接口,所述悬浮窗显示函数或服务显示接口用于替换第三方应用程序的显示管理模块中相应的悬浮窗显示函数或服务显示接口;
所述悬浮窗处理程序在识别到第三方应用程序发出的绘制悬浮窗请求后,按照预先设置的悬浮窗处理策略,利用所述分析以及回调模块替换所述第三方应用程序中的显示管理模块处理所述绘制悬浮窗请求。
2.如权利要求1所述的方法,所述按照预先设置的悬浮窗处理策略,处理所述绘制悬浮窗请求包括:
将绘制悬浮窗请求中携带的悬浮窗特征信息与预先设置的悬浮窗特征信息库进行特征信息匹配,如果相匹配,则拦截该绘制悬浮窗请求。
3.如权利要求2所述的方法,所述悬浮窗特征信息包括:窗口布局文件路径信息、窗口图片资源文件路径信息、窗口布局文件名称信息、窗口图片资源文件名称信息、窗口文本文字信息中的一种或其任意组合。
4.如权利要求2所述的方法,所述方法进一步包括:
如果绘制悬浮窗请求中携带的悬浮窗特征信息与预先设置的悬浮窗特征信息库不相匹配,展示绘制悬浮窗请求对应的悬浮窗。
5.如权利要求2所述的方法,所述方法进一步包括:
如果绘制悬浮窗请求中携带的悬浮窗特征信息与预先设置的悬浮窗特征信息库不相匹配,将绘制悬浮窗请求中携带的悬浮窗特征信息向用户展示,并提示用户是否允许展示,如果允许,展示绘制悬浮窗请求对应的悬浮窗,如果不允许,拦截该绘制悬浮窗请求。
6.如权利要求5所述的方法,所述方法进一步包括:
将绘制悬浮窗请求中携带的悬浮窗特征信息保存至所述预先设置的悬浮窗特征信息库。
7.如权利要求1所述的方法,所述按照预先设置的悬浮窗处理策略,处理所述绘制悬浮窗请求包括:
将绘制悬浮窗请求中携带的悬浮窗特征信息与预先设置的悬浮窗特征信息库进行特征信息匹配,如果相匹配,将预先设置的加载内容替换绘制悬浮窗请求对应的悬浮窗中的内容,并将加载有预先设置的加载内容的悬浮窗进行展示。
8.如权利要求2或7所述的方法,在处理所述绘制悬浮窗请求后,所述方法进一步包括:
向智能终端设备发送消息提醒;和/或,
对所述第三方应用程序进行安全扫描;和/或,
卸载所述第三方应用程序;和/或,
为所述第三方应用程序设置隐私访问权限。
9.根据权利要求1所述的方法,所述在第三方应用程序中注入预先设置的悬浮窗处理程序包括:
在第三方应用程序中注入预先设置的悬浮窗处理程序的分析以及回调模块,所述注入的分析以及回调模块用于替换第三方应用程序的显示管理模块,且所述注入的分析以及回调模块中设置有悬浮窗显示函数或服务显示接口。
10.根据权利要求9所述的方法,所述注入的分析以及回调模块用于替换第三方应用程序的显示管理模块包括:
调用WindowManager的addview方法,将分析以及回调模块中预先设置的悬浮窗显示函数或服务显示接口,替换第三方应用程序的显示管理模块中相应的悬浮窗显示函数或服务显示接口。
11.根据权利要求10所述的方法,所述将分析以及回调模块中预先设置的悬浮窗显示函数或服务显示接口,替换第三方应用程序的显示管理模块中相应的悬浮窗显示函数或服务显示接口包括:
查找第三方应用程序的显示管理模块进程中的悬浮窗显示函数或服务显示接口的内存变量;
将所述悬浮窗显示函数或服务显示接口的内存变量替换为预先设置的悬浮窗处理程序的分析以及回调模块中的悬浮窗显示函数或服务显示接口的内存变量。
12.根据权利要求1所述的方法,所述在智能终端设备操作系统中注入预先设置的悬浮窗处理程序包括:
在智能终端设备操作系统中的显示服务模块注入预先设置的悬浮窗处理程序,所述悬浮窗处理程序中设置有悬浮窗显示函数或服务显示接口,用于替换所述显示服务模块中的悬浮窗显示函数或服务显示接口。
13.根据权利要求1所述的方法,在注入预先设置的悬浮窗处理程序之前,所述方法可以进一步包括:
获取第三方应用程序或智能终端设备操作系统的根权限。
14.根据权利要求1所述的方法,在注入预先设置的悬浮窗处理程序之前,所述方法进一步包括:
调用Windows操作系统的SetWindowsHookEx接口,设置用于识别悬浮窗的悬浮窗处理程序。
15.一种悬浮窗处理装置,该装置包括:注入模块以及处理模块,其中,
注入模块,用于在第三方应用程序和/或智能终端设备操作系统中注入预先设置的悬浮窗处理程序,所述悬浮窗处理程序中包括有用于替换第三方应用程序的显示管理模块的分析以及回调模块,所述分析以及回调模块中设置有悬浮窗显示函数或服务显示接口,所述悬浮窗显示函数或服务显示接口用于替换第三方应用程序的显示管理模块中相应的悬浮窗显示函数或服务显示接口;
处理模块,用于在所述悬浮窗处理程序识别到第三方应用程序发出的绘制悬浮窗请求后,按照预先设置的悬浮窗处理策略,利用所述分析以及回调模块替换所述第三方应用程序中的显示管理模块处理所述绘制悬浮窗请求。
16.如权利要求15所述的装置,所述注入模块包括:第三方应用程序注入单元以及智能终端设备操作系统注入单元,其中,
第三方应用程序注入单元,用于在第三方应用程序中注入预先设置的悬浮窗处理程序的分析以及回调模块,所述注入的分析以及回调模块用于替换第三方应用程序的显示管理模块,且所述注入的分析以及回调模块中设置有悬浮窗显示函数或服务显示接口;
智能终端设备操作系统注入单元,用于在智能终端设备操作系统中的显示服务模块注入预先设置的悬浮窗处理程序,所述悬浮窗处理程序中设置有悬浮窗显示函数或服务显示接口,用于替换所述显示服务模块中的悬浮窗显示函数或服务显示接口。
17.根据权利要求15所述的装置,所述处理模块包括:监测单元、拦截单元、提取单元以及匹配处理单元,其中,
监测单元,用于监测第三方应用程序发出的绘制悬浮窗请求,在监测到第三方应用程序发出绘制悬浮窗请求后,通知拦截单元;
拦截单元,用于根据来自监测单元的通知,暂拦截第三方应用程序发出的绘制悬浮窗请求,接收来自匹配处理单元的通知,拦截或放行暂拦截的绘制悬浮窗请求;
提取单元,用于提取拦截的绘制悬浮窗请求中携带的悬浮窗特征信息,输出至匹配处理单元;
匹配处理单元,用于将接收的悬浮窗特征信息与预先设置的悬浮窗特征信息库进行特征信息匹配,如果相匹配,通知拦截单元拦截绘制悬浮窗请求,如果不相匹配,通知拦截单元放行绘制悬浮窗请求。
18.根据权利要求15所述的装置,所述装置进一步包括:
根权限获取模块,用于获取第三方应用程序或智能终端设备操作系统的根权限。
19.根据权利要求15所述的装置,所述装置进一步包括:
悬浮窗处理程序设置模块,用于调用Windows操作系统的SetWindowsHookEx接口,设置用于识别悬浮窗的悬浮窗处理程序。
20.根据权利要求15所述的装置,所述装置进一步包括:提示模块、选择处理模块以及展示模块,其中,
提示模块,用于在监测到拦截单元放行暂拦截的绘制悬浮窗请求后,将绘制悬浮窗请求中携带的悬浮窗特征信息向用户展示,并提示用户是否允许展示;
选择处理模块,用于在用户选择允许展示后,通知展示模块展示绘制悬浮窗请求对应的悬浮窗;在用户选择不允许展示后,拦截绘制悬浮窗请求。
21.根据权利要求20所述的装置,在用户选取不允许后,所述选择处理模块还可以进一步通知提取单元将绘制悬浮窗请求中携带的悬浮窗特征信息保存至所述预先设置的悬浮窗特征信息库。
22.根据权利要求15所述的装置,所述装置进一步包括:
扩展模块,用于在处理所述绘制悬浮窗请求后,向智能终端设备发送消息提醒;和/或,
对所述第三方应用进行安全扫描;和/或,
卸载所述第三方应用;和/或,
为所述第三方应用设置隐私访问权限。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410344872.XA CN104091125B (zh) | 2014-07-18 | 2014-07-18 | 处理悬浮窗的方法及悬浮窗处理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410344872.XA CN104091125B (zh) | 2014-07-18 | 2014-07-18 | 处理悬浮窗的方法及悬浮窗处理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104091125A CN104091125A (zh) | 2014-10-08 |
CN104091125B true CN104091125B (zh) | 2017-11-17 |
Family
ID=51638840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410344872.XA Active CN104091125B (zh) | 2014-07-18 | 2014-07-18 | 处理悬浮窗的方法及悬浮窗处理装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104091125B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462284B (zh) * | 2014-11-27 | 2018-04-13 | 百度在线网络技术(北京)有限公司 | 判定网页质量的方法及系统 |
TWI566165B (zh) * | 2014-12-05 | 2017-01-11 | 宏碁股份有限公司 | 適應性呼叫應用程式的方法及其電子裝置 |
CN104750363A (zh) * | 2015-03-23 | 2015-07-01 | 广州市久邦数码科技有限公司 | 一种隐藏式悬浮窗的实现方法及其系统 |
CN104778226A (zh) * | 2015-03-26 | 2015-07-15 | 小米科技有限责任公司 | 网页内内容项屏蔽方法及装置 |
CN106202101B (zh) * | 2015-05-06 | 2020-04-03 | 腾讯科技(深圳)有限公司 | 广告识别方法及装置 |
CN104881601A (zh) * | 2015-06-17 | 2015-09-02 | 北京奇虎科技有限公司 | 悬浮窗显示设置、控制方法和装置 |
CN105117643B (zh) * | 2015-09-23 | 2018-02-23 | 北京金山安全软件有限公司 | 一种处理弹窗的方法及装置 |
CN106909544A (zh) * | 2015-12-22 | 2017-06-30 | 北京奇虎科技有限公司 | 一种数据处理方法和装置 |
CN106909546A (zh) * | 2015-12-22 | 2017-06-30 | 北京奇虎科技有限公司 | 一种数据处理方法和装置 |
CN106909262A (zh) * | 2015-12-22 | 2017-06-30 | 北京奇虎科技有限公司 | 一种数据处理方法和装置 |
CN105808257B (zh) * | 2016-03-08 | 2020-07-07 | 杭州朗和科技有限公司 | 一种应用弹窗识别方法和装置 |
CN105844470A (zh) * | 2016-03-31 | 2016-08-10 | 北京小米移动软件有限公司 | 支付方法及装置 |
CN105930720A (zh) * | 2016-05-05 | 2016-09-07 | 北京元心科技有限公司 | 一种实现与设备安全人机交互的方法和系统 |
CN107193542B (zh) * | 2017-03-30 | 2022-06-14 | 腾讯科技(深圳)有限公司 | 信息显示方法和装置 |
CN107122186B (zh) * | 2017-04-25 | 2020-06-09 | 南京秦淮紫云创益企业服务有限公司 | 悬浮窗的管理方法与管理装置 |
CN108154030B (zh) * | 2017-11-22 | 2021-06-25 | 努比亚技术有限公司 | 应用窗口管控方法、终端及计算机可读存储介质 |
CN109173255A (zh) * | 2018-08-14 | 2019-01-11 | 深圳开黑科技有限公司 | 基于游戏陪玩平台的用户组队方法、图形用户界面及终端 |
CN109491753A (zh) * | 2018-11-29 | 2019-03-19 | 北京达佳互联信息技术有限公司 | 悬浮窗口显示方法、装置及存储介质 |
CN112541141B (zh) * | 2020-12-04 | 2024-10-22 | 深圳市欢太科技有限公司 | 控件展示回调方法、装置、终端及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019719A (zh) * | 2012-12-14 | 2013-04-03 | 北京奇虎科技有限公司 | 一种弹窗拦截装置和方法 |
CN103034727A (zh) * | 2012-12-19 | 2013-04-10 | 北京奇虎科技有限公司 | 对网页中的弹窗进行拦截处理的系统 |
CN103034800A (zh) * | 2012-12-14 | 2013-04-10 | 北京奇虎科技有限公司 | 用于拦截弹窗的装置和方法 |
CN103631480A (zh) * | 2013-11-11 | 2014-03-12 | 联想(北京)有限公司 | 一种视图对象控制方法及电子设备 |
-
2014
- 2014-07-18 CN CN201410344872.XA patent/CN104091125B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019719A (zh) * | 2012-12-14 | 2013-04-03 | 北京奇虎科技有限公司 | 一种弹窗拦截装置和方法 |
CN103034800A (zh) * | 2012-12-14 | 2013-04-10 | 北京奇虎科技有限公司 | 用于拦截弹窗的装置和方法 |
CN103034727A (zh) * | 2012-12-19 | 2013-04-10 | 北京奇虎科技有限公司 | 对网页中的弹窗进行拦截处理的系统 |
CN103631480A (zh) * | 2013-11-11 | 2014-03-12 | 联想(北京)有限公司 | 一种视图对象控制方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104091125A (zh) | 2014-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104091125B (zh) | 处理悬浮窗的方法及悬浮窗处理装置 | |
JP6100898B2 (ja) | メッセージを処理するための方法およびデバイス | |
Roesner et al. | Securing embedded user interfaces: Android and beyond | |
Balduzzi et al. | A solution for the automated detection of clickjacking attacks | |
US9374386B2 (en) | Application malware filtering for advertising networks | |
US9355246B1 (en) | Tuning sandbox behavior based on static characteristics of malware | |
Heiderich et al. | Scriptless attacks: stealing the pie without touching the sill | |
CN105631359B (zh) | 一种网页操作的控制方法和装置 | |
US20180084003A1 (en) | Method and system for injecting javascript into a web page | |
WO2016086767A1 (zh) | 实现浏览器安全的方法、浏览器客户端和装置 | |
US10649877B2 (en) | Macro-script execution control | |
CN104268475B (zh) | 一种运行应用程序的系统 | |
Marforio et al. | Evaluation of personalized security indicators as an anti-phishing mechanism for smartphone applications | |
WO2014139300A1 (en) | Method and device for loading a plug-in | |
CN105893228A (zh) | 用于行为沙箱化的系统和方法 | |
CN111737692B (zh) | 应用程序的风险检测方法及装置、设备、存储介质 | |
Egners et al. | Messing with Android's permission model | |
WO2003100580A1 (en) | Trusted user interface for a secure mobile wireless device | |
CN102467628A (zh) | 一种基于浏览器内核拦截技术的数据保护方法 | |
CN111163094B (zh) | 网络攻击检测方法、网络攻击检测装置、电子设备和介质 | |
CN111435391A (zh) | 自动确定gui中待交互的交互式gui元素的方法和设备 | |
CN104239784B (zh) | 检测系统中已安装应用的方法和客户端 | |
Vella et al. | Volatile memory-centric investigation of SMS-hijacked phones: a Pushbullet case study | |
Heiderich et al. | Scriptless attacks: Stealing more pie without touching the sill | |
CN105653904B (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 |
Effective date of registration: 20220728 Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015 Patentee after: BEIJING QIHOO TECHNOLOGY 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 |