《拦截应用程序中的植入信息的方法及装置.pdf》由会员分享,可在线阅读,更多相关《拦截应用程序中的植入信息的方法及装置.pdf(14页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103150513 A (43)申请公布日 2013.06.12 CN 103150513 A *CN103150513A* (21)申请号 201310090741.9 (22)申请日 2013.03.20 G06F 21/56(2013.01) (71)申请人 北京奇虎科技有限公司 地址 100088 北京市西城区新街口外大街 28 号 D 座 112 室 (德胜园区) 申请人 奇智软件 (北京) 有限公司 (72)发明人 陈杰 (74)专利代理机构 北京市德权律师事务所 11302 代理人 刘丽君 (54) 发明名称 拦截应用程序中的植入信息的方法及装置 (57。
2、) 摘要 本发明公开了拦截应用程序中的植入信息的 方法及装置, 包括 : 根据预先收集到的信息, 将用 于植入信息代码调用的应用程序编程接口 API 确 定为关键API, 所述关键API为植入信息提供方提 供的 API ; 在目标应用程序启动后, 通过对所述关 键 API 进行钩挂, 对所述目标应用程序调用所述 关键 API 的行为进行监控 ; 如果所述目标应用程 序发起调用所述关键 API 的请求, 则确定出所述 目标应用程序中包含有植入信息代码, 并对所述 调用关键 API 的请求进行拦截, 以阻止植入信息 代码的运行, 实现对目标应用程序中植入信息的 拦截。 通过本发明, 能够更有效地实。
3、现对应用程序 中的植入信息的拦截, 同时不会干扰操作系统的 运行, 并且提高了拦截的准确度。 (51)Int.Cl. 权利要求书 2 页 说明书 10 页 附图 1 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书10页 附图1页 (10)申请公布号 CN 103150513 A CN 103150513 A *CN103150513A* 1/2 页 2 1. 一种拦截应用程序中的植入信息的方法, 包括 : 根据预先收集到的信息, 将用于植入信息代码调用的应用程序编程接口 API 确定为关 键 API, 所述关键 API 为植入信息提供方提供的 API ;。
4、 在目标应用程序启动后, 通过对所述关键 API 进行钩挂, 对所述目标应用程序调用所 述关键 API 的行为进行监控 ; 如果所述目标应用程序发起调用所述关键 API 的请求, 则确定出所述目标应用程序中 包含有植入信息代码, 并对所述调用关键 API 的请求进行拦截, 以阻止植入信息代码的运 行, 实现对目标应用程序中植入信息的拦截。 2. 如权利要求 1 所述的方法, 所述对所述调用 API 的请求进行拦截之后, 还包括 : 展示所述目标应用程序中包含植入信息代码的提示信息, 并询问用户是否需要对所述 目标应用程序中的植入信息进行拦截 ; 如果需要, 则阻止植入信息代码的运行, 否则, 。
5、将所述调用 API 的请求放行。 3. 如权利要求 1 所述的方法, 还包括 : 为用户提供为目标应用程序统一设置拦截规则的操作入口, 并记录用户为所述目标应 用设置的拦截规则 ; 所述对所述调用 API 的请求进行拦截之后, 还包括 : 查询用户设置的拦截规则, 如果用户设置为需要对所述目标应用程序中的植入信息进 行拦截, 则阻止植入信息代码的运行, 实现对目标应用程序中植入信息的拦截。 4. 如权利要求 3 所述的方法, 所述为用户提供为目标应用程序统一设置拦截规则的操 作入口包括 : 分别为系统中的各个目标应用程序提供统一设置拦截规则的操作入口 ; 或者, 为系统中的所有目标应用程序提供。
6、全局的统一设置拦截规则的操作入口。 5. 如权利要求 1 所述的方法, 所述阻止植入信息代码的运行包括 : 将所述调用 API 的请求取消发送。 6. 如权利要求 1 所述的方法, 所述阻止植入信息代码的运行包括 : 将所述调用 API 的请求指向自定义的地址, 以便针对所述调用 API 的请求返回调用错 误信息。 7. 一种拦截应用程序中的植入信息的装置, 包括 : 关键 API 确定单元, 用于根据预先收集到的信息, 将用于植入信息代码调用的应用程 序编程接口 API 确定为关键 API, 所述关键 API 为植入信息提供方提供的 API ; 关键 API 监控单元, 用于在目标应用程序启。
7、动后, 通过对所述关键 API 进行钩挂, 对所 述目标应用程序调用所述关键 API 的行为进行监控 ; 请求拦截单元, 用于如果所述目标应用程序发起调用所述关键 API 的请求, 则确定出 所述目标应用程序中包含有植入信息代码, 并对所述调用关键 API 的请求进行拦截, 以阻 止植入信息代码的运行, 实现对目标应用程序中植入信息的拦截。 8. 如权利要求 7 所述的装置, 还包括 : 提示单元, 用于所述对所述调用 API 的请求进行拦截之后, 展示所述目标应用程序中 包含植入信息代码的提示信息, 并询问用户是否需要对所述目标应用程序中的植入信息进 权 利 要 求 书 CN 1031505。
8、13 A 2 2/2 页 3 行拦截 ; 执行单元, 用于如果需要, 则阻止植入信息代码的运行, 否则, 将所述调用 API 的请求 放行。 9. 如权利要求 7 所述的装置, 还包括 : 设置入口提供单元, 用于为用户提供为目标应用程序统一设置拦截规则的操作入口, 并记录用户为所述目标应用设置的拦截规则 ; 查询单元, 用于对所述调用 API 的请求进行拦截之后, 查询用户设置的拦截规则, 如 果用户设置为需要对所述目标应用程序中的植入信息进行拦截, 则阻止植入信息代码的运 行, 实现对目标应用程序中植入信息的拦截。 10. 如权利要求 9 所述的装置, 所述设置入口提供单元包括 : 分别设。
9、置子单元, 用于分别为系统中的各个目标应用程序提供统一设置拦截规则的操 作入口 ; 或者, 全局设置子单元, 用于为系统中的所有目标应用程序提供全局的统一设置拦截规则的 操作入口。 权 利 要 求 书 CN 103150513 A 3 1/10 页 4 拦截应用程序中的植入信息的方法及装置 技术领域 0001 本发明涉及计算机技术领域, 具体涉及拦截应用程序中的植入信息的方法及装 置。 背景技术 0002 在移动互联网日益火爆的今天, 移动互联网用户和开发者迅速增长, 这也使一些 运营商推出了移动广告等业务。开发者为了从应用程序中获得盈利等目的, 于是会在自己 的应用程序中植入一些信息, 例如。
10、插入一些广告等等。现在基本上所有的应用程序中的植 入信息在播放之前都需要从植入信息的服务器中下载数据, 有的甚至需要下载视频等数 据。这就造成应用程序用户的流量大增, 对用户的带宽造成很大的占用。 0003 为了避免对用户的带宽造成过大的占用, 出现了一些能够对应用程序中的植入信 息进行有效地拦截的相关技术。 在这种技术中, 主要是考虑到应用程序中的植入信息, 一般 都是在应用程序启动之后, 获取开发者预先设置的身份 ID、 植入信息服务器的 IP 地址和端 口号, 然后根据 ID 请求植入信息服务器, 植入信息服务器进行身份验证成功之后, 返回相 应的植入信息数据, 应用程序再在界面中展示给。
11、用户, 因此, 通过过滤植入信息服务器的 IP 地址和端口号, 来阻止进行网络请求, 以达到拦截植入信息的目的。 0004 但是, 如果植入信息服务器使用动态的 IP 或者随机的端口号, 那么以上方案就无 法成功地拦截广告。 另外, 在实现的过程中, 需要从所有的网络连接中过滤出植入信息的网 络连接, 这样会使得系统中其他应用程序执行的效率就会大大降低, 造成运行不流畅等问 题。 发明内容 0005 鉴于上述问题, 提出了本发明以便提供一种克服上述问题或者至少部分地解决上 述问题的拦截应用程序中的植入信息的方法及装置, 能够更有效地实现对应用程序中的植 入信息的拦截, 同时不会干扰操作系统的运。
12、行, 并且提高了拦截的准确度。 0006 依据本发明的一个方面, 提供了一种拦截应用程序中的植入信息的方法, 包括 : 0007 根据预先收集到的信息, 将用于植入信息代码调用的应用程序编程接口 API 确定 为关键 API, 所述关键 API 为植入信息提供方提供的 API ; 0008 在目标应用程序启动后, 通过对所述关键 API 进行钩挂, 对所述目标应用程序调 用所述关键 API 的行为进行监控 ; 0009 如果所述目标应用程序发起调用所述关键 API 的请求, 则确定出所述目标应用程 序中包含有植入信息代码, 并对所述调用关键 API 的请求进行拦截, 以阻止植入信息代码 的运行。
13、, 实现对目标应用程序中植入信息的拦截。 0010 可选的, 所述对所述调用 API 的请求进行拦截之后, 还包括 : 0011 展示所述目标应用程序中包含植入信息代码的提示信息, 并询问用户是否需要对 所述目标应用程序中的植入信息进行拦截 ; 说 明 书 CN 103150513 A 4 2/10 页 5 0012 如果需要, 则阻止植入信息代码的运行, 否则, 将所述调用 API 的请求放行。 0013 可选的, 还包括 : 0014 为用户提供为目标应用程序统一设置拦截规则的操作入口, 并记录用户为所述目 标应用设置的拦截规则 ; 0015 所述对所述调用 API 的请求进行拦截之后, 。
14、还包括 : 0016 查询用户设置的拦截规则, 如果用户设置为需要对所述目标应用程序中的植入信 息进行拦截, 则阻止植入信息代码的运行, 实现对目标应用程序中植入信息的拦截。 0017 可选的, 所述为用户提供为目标应用程序统一设置拦截规则的操作入口包括 : 0018 分别为系统中的各个目标应用程序提供统一设置拦截规则的操作入口 ; 0019 或者, 0020 为系统中的所有目标应用程序提供全局的统一设置拦截规则的操作入口。 0021 可选的, 所述阻止植入信息代码的运行包括 : 0022 将所述调用 API 的请求取消发送。 0023 可选的, 所述阻止植入信息代码的运行包括 : 0024 。
15、将所述调用 API 的请求指向自定义的地址, 以便针对所述调用 API 的请求返回调 用错误信息。 0025 根据本发明的另一方面, 提供了一种拦截应用程序中的植入信息的装置, 包括 : 0026 关键 API 确定单元, 用于根据预先收集到的信息, 将用于植入信息代码调用的应 用程序编程接口 API 确定为关键 API, 所述关键 API 为植入信息提供方提供的 API ; 0027 关键 API 监控单元, 用于在目标应用程序启动后, 通过对所述关键 API 进行钩挂, 对所述目标应用程序调用所述关键 API 的行为进行监控 ; 0028 请求拦截单元, 用于如果所述目标应用程序发起调用所。
16、述关键 API 的请求, 则确 定出所述目标应用程序中包含有植入信息代码, 并对所述调用关键 API 的请求进行拦截, 以阻止植入信息代码的运行, 实现对目标应用程序中植入信息的拦截。 0029 可选的, 还包括 : 0030 提示单元, 用于所述对所述调用 API 的请求进行拦截之后, 展示所述目标应用程 序中包含植入信息代码的提示信息, 并询问用户是否需要对所述目标应用程序中的植入信 息进行拦截 ; 0031 执行单元, 用于如果需要, 则阻止植入信息代码的运行, 否则, 将所述调用 API 的 请求放行。 0032 可选的, 还包括 : 0033 设置入口提供单元, 用于为用户提供为目标。
17、应用程序统一设置拦截规则的操作入 口, 并记录用户为所述目标应用设置的拦截规则 ; 0034 查询单元, 用于对所述调用 API 的请求进行拦截之后, 查询用户设置的拦截规则, 如果用户设置为需要对所述目标应用程序中的植入信息进行拦截, 则阻止植入信息代码的 运行, 实现对目标应用程序中植入信息的拦截。 0035 可选的, 所述设置入口提供单元包括 : 0036 分别设置子单元, 用于分别为系统中的各个目标应用程序提供统一设置拦截规则 的操作入口 ; 说 明 书 CN 103150513 A 5 3/10 页 6 0037 或者, 0038 全局设置子单元, 用于为系统中的所有目标应用程序提供。
18、全局的统一设置拦截规 则的操作入口。 0039 可选的, 通过以下单元实现阻止植入信息代码的运行 : 0040 取消发送单元, 用于将所述调用 API 的请求取消发送。 0041 可选的, 通过以下单元实现阻止植入信息代码的运行 : 0042 调用错误信息返回单元, 用于将所述调用 API 的请求指向自定义的地址, 以便针 对所述调用 API 的请求返回调用错误信息。 0043 根据本发明的拦截应用程序中的植入信息的方法及装置, 可以预先对植入信息代 码中常用的API调用的特点进行收集, 这样可以生成一个关键API列表, 在目标应用程序启 动之后, 就可以对这些关键API进行HOOK, 以此实。
19、现对目标应用程序调用关键API的行为进 行监控, 当监控到目标应用程序发起了调用某关键 API 的请求时, 就可以将该请求进行拦 截, 这样就可以阻止植入信息代码的运行, 实现对目标应用程序中的植入信息的拦截, 避免 对传输带宽造成占用, 进而避免对用户显示界面的占用。 同时, 由于本发明实施例中是对植 入信息代码中常用的 API 进行钩挂, 这种 API 一般是植入信息提供商提供的 API, 而不是系 统 API, 因此不会干扰操作系统的运行, 并且提高了拦截的准确度。 0044 上述说明仅是本发明技术方案的概述, 为了能够更清楚了解本发明的技术手段, 而可依照说明书的内容予以实施, 并且为。
20、了让本发明的上述和其它目的、 特征和优点能够 更明显易懂, 以下特举本发明的具体实施方式。 附图说明 0045 通过阅读下文优选实施方式的详细描述, 各种其他的优点和益处对于本领域普通 技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的, 而并不认为是对本发明 的限制。而且在整个附图中, 用相同的参考符号表示相同的部件。在附图中 : 0046 图 1 示出了根据本发明一个实施例的方法的流程图 ; 0047 以及, 0048 图 2 示出了根据本发明一个实施例的装置的示意图。 具体实施方式 0049 下面将参照附图更详细地描述本公开的示例性实施例。 虽然附图中显示了本公开 的示例性实施例,。
21、 然而应当理解, 可以以各种形式实现本公开而不应被这里阐述的实施例 所限制。 相反, 提供这些实施例是为了能够更透彻地理解本公开, 并且能够将本公开的范围 完整的传达给本领域的技术人员。 0050 首先需要说明的是, 在应用程序中的植入信息一般具有如下特点 (为便于描述, 以下均以广告为例进行介绍) : 植入到应用程序中的广告需要依赖的第三方广告商的 API (Application Programming Interface, 应用程序编程接口) 。 在实际应用中, 一般通过SDK (Software Development Kit, 软件开发工具包) 的形式开放出来, 供应用程序开发商集成。
22、 在自己的应用程序中, 从而完成广告的植入。 例如, 假设某应用程序开发商想要在自己开发 的应用程序中植入广告, 以便在用户使用该应用程序时展示广告为开发商带来收入, 因此, 说 明 书 CN 103150513 A 6 4/10 页 7 开发商就可以选择下载广告商的广告 SDK(比如哇棒 (admob) 等等) , 将广告 SDK 植入到自 己开发的应用程序中, 这样, 在应用程序启动之后, 就会调用广告商的 API, 向广告商服务器 取得和展示广告, 这样应用程序就能在适当的位置显示广告商的广告。 0051 其中, 所谓的广告 SDK 就是内置于应用程序内的广告开发工具包, 由广告提供商 。
23、提供。当某应用程序开发商需要植入某广告商的广告时, 可以通过以下方式实现 : 首先通 过访问广告商的网站等方式注册开发商账户, 然后登录到广告商的移动广告平台, 完善用 户基本信息和财务账户信息, 选择适用的操作系统平台 (例如 android、 iOS 等等) 之后, 可 以按照要求填写应用相关信息, 完成后, 就可以获得一个唯一的标识码作为开发商用户的 身份 ID, 同时还可以获得广告 SDK 的下载地址, 进而就可以根据该地址下载到该广告商的 SDK, 然后就可以将 SDK 添加到应用程序的项目工程中, 从而实现将广告 SDK 集成到应用程 序中。接下来可以在项目工程中对需要显示的广告的。
24、展现形式 (印象式、 嵌入式等) 、 广告位 (应用程序中为广告预留的展示区域) 类型 (条形、 半屏、 全屏等) 、 广告点击效果 (查看网页、 拨打电话、 发送信息、 发送邮件、 下载程序等等, 也可以由 SDK 自动控制) 、 广告所属分类 (生 活资讯、 影音娱乐、 教育培训等等, SDK 可以根据分类编号来选择相应类型的广告数据) 等进 行设置, 同时将广告商分配给应用程序开发商的身份 ID 填写到相应的代码中。应用调试完 毕后, 还可以将其发送到广告商的移动广告平台进行审批, 通过之后, 就可以实现在该应用 程序中按照其定制的形式展现其广告商提供的广告了。 0052 具体在展现应用。
25、程序中植入的广告时, 首先需要启动应用程序, 然后由于应用程 序中已经集成了广告 SDK, 因此, 相当于应用程序中带有广告代码, 应用程序启动之后就可 以通过调用广告商的 API, 向广告服务器其发起获取广告信息的请求, 该请求中会携带上开 发商的身份 ID 信息以及所需广告的大小等信息, 广告商在接收到请求之后, 需要根据身份 ID 信息对开发商进行身份验证, 验证通过之后, 就可以返回一个 URL(Uniform/Universal Resource Locator, 统一资源定位符) , 应用程序就可以根据该 URL 去下载相应的广告数据 并进行展现。 0053 可见, 在应用程序中展。
26、现广告的过程中, 应用程序中的广告代码需要调用广告商 提供的 API, 来请求广告商的广告数据, 然后再进行相关的展现操作。而本发明人在实现本 发明的过程中发现, 广告商提供的 API 一般会体现出一些特点, 例如, 具特定的函数名等, 这些特点是其他非广告商的API所不具有的, 进而, 就可以通过这些API来判断应用程序中 是否带有广告代码。因此, 在本发明实施例中, 就可以预先对广告代码调用 API 的特点进行 搜集, 将这些关键 API 的名称等保存成某种格式的文件或者数据库等, 这样就可以对目标 应用程序的 API 调用行为进行监控, 一旦发现目标应用程序调用某 API, 就可以判断当。
27、前被 调用的 API 是否出现为预先搜集到的广告代码调用的 API, 如果是, 就可以进行拦截, 以便 阻止广告代码的执行, 使得应用程序无法获取到相关的广告数据, 也就无法在其显示界面 中展示广告, 避免对传输带宽造成占用, 也避免对用户造成影响。 0054 下面对本发明实施例提供的拦截应用程序中的植入信息的方法进行详细地介绍。 参见图 1, 该方法可以包括以下步骤 : 0055 S101 : 根据预先收集到的信息, 将用于植入信息代码调用的应用程序编程接口 API 确定为关键 API, 所述关键 API 为植入信息提供方提供的 API ; 0056 如前文所述, 为了判断一个应用程序中是否。
28、含有广告代码, 可以预先对广告代码 说 明 书 CN 103150513 A 7 5/10 页 8 中API调用的特点进行收集, 这样就可以将各种广告代码中经常调用的API收集到一起, 为 便于描述, 这种被广告代码调用的 API 在本发明实施例中被称为关键 API。在收集到关键 API 之后, 可以进行保存, 例如, 可以生成一个列表, 将各个关键 API 的名称等信息保存在该 列表中, 这样, 通过查询该列表, 就可以确定出广告代码中常用的关键 API。其中, 这种关键 API 一般是广告提供方 (一般称为广告商等) 提供的 API, 集成了广告 SDK 的应用程序通过调 用这些 API 。
29、实现对广告商的广告的获取及展现。 0057 S102 : 在目标应用程序启动后, 通过对所述关键 API 进行钩挂, 对所述目标应用程 序调用所述关键 API 的行为进行监控 ; 0058 其中, 目标应用程序可以是任意的第三方应用程序, 或者, 由于在实际应用中, 一 般是一些特定功能的应用程序容易中容易插入一些广告等植入信息, 因此, 也可以将具有 某种特定功能的应用程序作为待监控的目标应用程序, 例如在线视频播放工具、 浏览器等 等。可以通过安装驱动程序等来获知哪些应用程序被启动, 同时可以根据被启动进程的名 称等信息来判断应用程序所属的类别或者所具有的功能等。 在发现某目标应用程序被启。
30、动 之后, 就可以对前述列表中的各个关键 API 进行钩挂 (HOOK) , 这样, 就可以实现对目标应用 程序调用关键 API 的行为进行监控。 0059 S103 : 如果所述目标应用程序发起调用所述关键 API 的请求, 则确定出所述目标 应用程序中包含有植入信息代码, 并对所述调用 API 的请求进行拦截, 以阻止植入信息代 码的运行, 实现对目标应用程序中植入信息的拦截。 0060 如果监控到目标应用程序发起了调用上述某关键 API 的请求, 则由于关键 API 是 广告代码常调用的 API, 因此, 可以确定当前应用程序中含有广告代码, 如果允许该请求的 执行, 则就会将请求发送到。
31、广告服务器, 进而广告服务器返回相应的广告数据等, 造成对传 输带宽的占用, 在将广告信息展现出来之后, 还会对应用程序的显示界面造成占用, 等等。 因此, 在本发明实施例中, 在监控到目标应用程序发起调用关键 API 的请求后, 就可以确定 出当前的目标应用程序中包含有广告代码, 因此, 就可以对该请求进行拦截, 以便阻止应用 程序中的广告代码的运行, 也即实现对应用程序中的广告的拦截。 0061 其中, 所谓的对目标应用程序发起的调用关键 API 的请求进行拦截, 就是暂时先 不会将该调用请求发送到目标应用程序原定的接收对象, 接下来, 可以直接改变关键 API 函数的入口点, 使其指向某。
32、自定义的函数等, 从而改变其返回值。 例如, 自定义的函数中, 可 以是直接返回某出错信息等, 这样, 目标应用程序发送到广告服务器的请求就无法送达, 也 不会产生广告数据的传输, 因此可以节省对传输带宽的占用, 进而避免广告内容对显示界 面的占用。另外, 在实际应用中, 在拦截到目标应用程序发起的调用关键 API 的请求之后, 也可以首先向用户提供提示信息, 用于提示用户目标应用程序中包含有广告代码, 即将在 其显示界面中显示出广告内容, 并询问用户是否需要拦截该广告, 同时为用户提供选择拦 截或者不拦截的操作入口 ; 如果接收到用户的需要拦截的应答, 则可以按照前述方式向应 用程序返回一出。
33、错信息等, 如果接收到用户的不需要拦截的应答, 则可以将当前拦截到的 调用关键 API 的请求放行, 使其发送到广告服务器, 并由广告服务器进行身份验证之后, 返 回相应的广告数据, 等等。 0062 另外, 还可以为用户提供统一的 “设置” 入口, 这样, 用户可以在 “设置” 里完成统 一拦截的规则, 例如, 可以设置为只要发现某目标应用程序正在调用某关键 API, 则一律进 说 明 书 CN 103150513 A 8 6/10 页 9 行拦截, 这样, 在发现某目标应用程序正在调用某关键 API 之后, 就可以根据用户的这一设 置, 直接对目标用于程序中的广告进行拦截即可, 这样就不用。
34、用户每次都手动选择拦截或 者放行操作。需要说明的是, 这里的统一的设置入口, 可以是分别为不同的目标应用程序 提供统一的设置入口, 例如, 可以首先判断当前系统中安装了哪些应用程序, 如果存在一些 可能包含有广告的目标应用程序, 则分别为各个目标应用程序提供统一的设置入口, 这样, 如果针对某目标应用程序 A, 用户需要将其中所有的广告都拦截, 则可以在该目标用于程序 A 的统一设置入口中, 将该目标应用程序 A 设置为只要发现其正在调用关键 API, 就一律进 行拦截。如果针对用户某目标应用程序 B, 用户不需要将其中的广告进行拦截, 则可以在该 目标用于程序 B 的统一设置入口中, 将该目。
35、标应用程序 B 设置为即使发现其正在调用关键 API, 也不需要进行拦截。如果针对某目标应用程序 C, 用户需要将其中的部分广告进行拦 截, 则可以在该目标用于程序C的统一设置入口中, 将该目标应用程序C设置为在发现其正 在调用关键 API 之后, 就弹出提示信息, 并对用户进行询问, 等等。另外, 还可以针对所有的 目标应用程序提供一个统一的设置入口, 这样, 如果某用户需要对其安装的所有目标应用 程序中的广告都需要拦截或者放行, 则可以在该统一设置入口中统一进行设置, 等等。 0063 需要说明的是, 在拦截到某目标应用程序发送的调用某关键 API 的请求之后, 如 果需要阻止广告代码的运。
36、行, 则可以有多种实现方式, 除了前述将关键 API 的入口指向某 自定义函数, 以便返回某出错信息之外, 还可以直接将该请求丢弃, 相当于取消该请求的发 送。 0064 总之, 在本发明实施例中, 可以预先对植入信息代码中常用的 API 调用的特点进 行收集, 这样可以生成一个关键 API 列表, 在目标应用程序启动之后, 就可以对这些关键 API进行HOOK, 以此实现对目标应用程序调用关键API的行为进行监控, 当监控到目标应用 程序发起了调用某关键 API 的请求时, 就可以将该请求进行拦截, 这样就可以阻止植入信 息代码的运行, 实现对目标应用程序中的植入信息的拦截, 避免对传输带宽。
37、造成占用, 进而 避免对用户显示界面的占用。同时, 由于本发明实施例中是对植入信息代码中常用的 API 进行钩挂, 这种API一般是植入信息提供商提供的API, 而不是系统API, 因此不会干扰操作 系统的运行, 并且提高了拦截的准确度。 0065 与本发明实施例提供的拦截应用程序中的植入信息的方法相对应, 本发明实施例 还提供了一种拦截应用程序中的植入信息的装置, 参见图 2, 该装置可以包括 : 0066 关键 API 确定单元 201, 用于根据预先收集到的信息, 将用于植入信息代码调用的 应用程序编程接口 API 确定为关键 API, 所述关键 API 为植入信息提供方提供的 API 。
38、; 0067 关键 API 监控单元 202, 用于在目标应用程序启动后, 通过对所述关键 API 进行钩 挂, 对所述目标应用程序调用所述关键 API 的行为进行监控 ; 0068 请求拦截单元 203, 用于如果所述目标应用程序发起调用所述关键 API 的请求, 则确定出所述目标应用程序中包含有植入信息代码, 并对所述调用关键 API 的请求进行拦 截, 以阻止植入信息代码的运行, 实现对目标应用程序中植入信息的拦截。 0069 具体实现时, 该装置还可以包括 : 0070 提示单元, 用于所述对所述调用 API 的请求进行拦截之后, 展示所述目标应用程 序中包含植入信息代码的提示信息, 。
39、并询问用户是否需要对所述目标应用程序中的植入信 息进行拦截 ; 说 明 书 CN 103150513 A 9 7/10 页 10 0071 执行单元, 用于如果需要, 则阻止植入信息代码的运行, 否则, 将所述调用 API 的 请求放行。 0072 或者, 为了避免用户每次都需要手动选择拦截或者放行, 该装置还可以包括 : 0073 设置入口提供单元, 用于为用户提供为目标应用程序统一设置拦截规则的操作入 口, 并记录用户为所述目标应用设置的拦截规则 ; 0074 查询单元, 用于对所述调用 API 的请求进行拦截之后, 查询用户设置的拦截规则, 如果用户设置为需要对所述目标应用程序中的植入信。
40、息进行拦截, 则阻止植入信息代码的 运行, 实现对目标应用程序中植入信息的拦截。 0075 其中, 所述设置入口提供单元可以包括 : 0076 分别设置子单元, 用于分别为系统中的各个目标应用程序提供统一设置拦截规则 的操作入口 ; 0077 或者, 0078 全局设置子单元, 用于为系统中的所有目标应用程序提供全局的统一设置拦截规 则的操作入口。 0079 具体实现时, 通过以下单元实现阻止植入信息代码的运行 : 0080 取消发送单元, 用于将所述调用 API 的请求取消发送。 0081 或者, 在另一种实现方式下, 还可以通过以下单元实现阻止植入信息代码的运 行 : 0082 调用错误信。
41、息返回单元, 用于将所述调用 API 的请求指向自定义的地址, 以便针 对所述调用 API 的请求返回调用错误信息。 0083 总之, 在本发明实施例中, 可以预先对植入信息代码中常用的 API 调用的特点进 行收集, 这样可以生成一个关键 API 列表, 在目标应用程序启动之后, 就可以对这些关键 API进行HOOK, 以此实现对目标应用程序调用关键API的行为进行监控, 当监控到目标应用 程序发起了调用某关键 API 的请求时, 就可以将该请求进行拦截, 这样就可以阻止植入信 息代码的运行, 实现对目标应用程序中的植入信息的拦截, 避免对传输带宽造成占用, 进而 避免对用户显示界面的占用。。
42、同时, 由于本发明实施例中是对植入信息代码中常用的 API 进行钩挂, 这种API一般是植入信息提供商提供的API, 而不是系统API, 因此不会干扰操作 系统的运行, 并且提高了拦截的准确度。 0084 在此提供的算法和显示不与任何特定计算机、 虚拟系统或者其它设备固有相关。 各种通用系统也可以与基于在此的示教一起使用。根据上面的描述, 构造这类系统所要求 的结构是显而易见的。此外, 本发明也不针对任何特定编程语言。应当明白, 可以利用各种 编程语言实现在此描述的本发明的内容, 并且上面对特定语言所做的描述是为了披露本发 明的最佳实施方式。 0085 在此处所提供的说明书中, 说明了大量具体。
43、细节。然而, 能够理解, 本发明的实施 例可以在没有这些具体细节的情况下实践。 在一些实例中, 并未详细示出公知的方法、 结构 和技术, 以便不模糊对本说明书的理解。 0086 类似地, 应当理解, 为了精简本公开并帮助理解各个发明方面中的一个或多个, 在 上面对本发明的示例性实施例的描述中, 本发明的各个特征有时被一起分组到单个实施 例、 图、 或者对其的描述中。 然而, 并不应将该公开的方法解释成反映如下意图 : 即所要求保 说 明 书 CN 103150513 A 10 8/10 页 11 护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说, 如下面 的权利要求书所反。
44、映的那样, 发明方面在于少于前面公开的单个实施例的所有特征。 因此, 遵循具体实施方式的权利要求书由此明确地并入该具体实施方式, 其中每个权利要求本身 都作为本发明的单独实施例。 0087 本领域那些技术人员可以理解, 可以对实施例中的设备中的模块进行自适应性地 改变并且把它们设置在与该实施例不同的一个或多个设备中。 可以把实施例中的模块或单 元或组件组合成一个模块或单元或组件, 以及此外可以把它们分成多个子模块或子单元或 子组件。除了这样的特征和 / 或过程或者单元中的至少一些是相互排斥之外, 可以采用任 何组合对本说明书 (包括伴随的权利要求、 摘要和附图) 中公开的所有特征以及如此公开的。
45、 任何方法或者设备的所有过程或单元进行组合。 除非另外明确陈述, 本说明书 (包括伴随的 权利要求、 摘要和附图) 中公开的每个特征可以由提供相同、 等同或相似目的的替代特征来 代替。 0088 此外, 本领域的技术人员能够理解, 尽管在此所述的一些实施例包括其它实施例 中所包括的某些特征而不是其它特征, 但是不同实施例的特征的组合意味着处于本发明的 范围之内并且形成不同的实施例。 例如, 在下面的权利要求书中, 所要求保护的实施例的任 意之一都可以以任意的组合方式来使用。 0089 本发明的各个部件实施例可以以硬件实现, 或者以在一个或者多个处理器上运行 的软件模块实现, 或者以它们的组合实。
46、现。 本领域的技术人员应当理解, 可以在实践中使用 微处理器或者数字信号处理器 (DSP) 来实现根据本发明实施例的拦截应用程序中的植入信 息的设备中的一些或者全部部件的一些或者全部功能。 本发明还可以实现为用于执行这里 所描述的方法的一部分或者全部的设备或者装置程序 (例如, 计算机程序和计算机程序产 品) 。这样的实现本发明的程序可以存储在计算机可读介质上, 或者可以具有一个或者多个 信号的形式。 这样的信号可以从因特网网站上下载得到, 或者在载体信号上提供, 或者以任 何其他形式提供。 0090 应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制, 并且本领 域技术人员在不脱离。
47、所附权利要求的范围的情况下可设计出替换实施例。在权利要求中, 不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词 “包含” 不排除存在 未列在权利要求中的元件或步骤。位于元件之前的单词 “一” 或 “一个” 不排除存在多个这 样的元件。 本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来 实现。在列举了若干装置的单元权利要求中, 这些装置中的若干个可以是通过同一个硬件 项来具体体现。单词第一、 第二、 以及第三等的使用不表示任何顺序。可将这些单词解释为 名称。 0091 本申请可以应用于计算机系统 / 服务器, 其可与众多其它通用或专用计算系统环 境或配置一起操作。。
48、适于与计算机系统 / 服务器一起使用的众所周知的计算系统、 环境和 / 或配置的例子包括但不限于 : 个人计算机系统、 服务器计算机系统、 瘦客户机、 厚客户机、 手持或膝上设备、 基于微处理器的系统、 机顶盒、 可编程消费电子产品、 网络个人电脑、 小型 计算机系统大型计算机系统和包括上述任何系统的分布式云计算技术环境, 等等。 0092 计算机系统 / 服务器可以在由计算机系统执行的计算机系统可执行指令 (诸如程 序模块) 的一般语境下描述。通常, 程序模块可以包括例程、 程序、 目标程序、 组件、 逻辑、 数 说 明 书 CN 103150513 A 11 9/10 页 12 据结构等等。
49、, 它们执行特定的任务或者实现特定的抽象数据类型。计算机系统 / 服务器可 以在分布式云计算环境中实施, 分布式云计算环境中, 任务是由通过通信网络链接的远程 处理设备执行的。在分布式云计算环境中, 程序模块可以位于包括存储设备的本地或远程 计算系统存储介质上。 0093 本发明还公开了 A1、 一种拦截应用程序中的植入信息的方法, 包括 : 0094 根据预先收集到的信息, 将用于植入信息代码调用的应用程序编程接口 API 确定 为关键 API, 所述关键 API 为植入信息提供方提供的 API ; 0095 在目标应用程序启动后, 通过对所述关键 API 进行钩挂, 对所述目标应用程序调 用所述关键 API 的行为进行监控 ; 0096 如果所述目标应用程序发起调用所述关键 API 的请求, 则确定出所述目标应用程 序中包含有植入信息代码, 并对所述调用关键 API 的请求进行拦截, 以阻止植入信息。