[发明专利]一种API的拦截方法、装置及移动终端有效
申请号: | 201210252551.8 | 申请日: | 2012-07-20 |
公开(公告)号: | CN102855138A | 公开(公告)日: | 2013-01-02 |
发明(设计)人: | 张立春 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 滕一斌 |
地址: | 518000 广东省深*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 api 拦截 方法 装置 移动 终端 | ||
技术领域
本发明涉及移动终端领域,特别涉及一种API(Application Programming Interface,应用程序编程接口)的拦截方法、装置及移动终端。
背景技术
随着Android(安卓)系统的快速发展,使用Android系统的终端越来越多,Android系统是一个开放源代码系统,可以在使用Android系统终端内安装应用,Android系统为该应用提供运行环境。
目前,厂商在生产使用Android系统的终端时,可以直接在终端内内置应用,用户也可以根据自己的需要在终端内安装其他的应用;这些应用都是由相应的厂商提供,且每个应用在开发完成后,每个应用的功能都固定下来了,不可以对应用的功能进行扩展或进行修改。
发明内容
为了能够对应用的功能进行扩展或修改,本发明提供了一种拦截函数的方法及装置。所述技术方案如下:
一种应用程序编程接口API的拦截方法,所述方法包括:
根据API进程的进程标识在系统对应的虚拟机中对所述API进程进行实时监控;
当API进程被启动时,根据API进程的进程标识从内存中获取所述API进程对应的虚拟机实例;
根据待拦截API的标识信息从所述API进程对应的虚拟机实例中将所述待拦截的采用第一计算机语言编写的第一API的代码指向地址替换为已存储的采用第二计算机语言编写的且与第一API相对应的第二API的代码指向地址,所述第二语言与第一代码相区别;
通过第二函数实现对API进程的控制。
所述根据API进程的进程标识在系统对应的虚拟机中对所述API进程进行实时监控,包括:
监控系统对应的虚拟机开始运行所述API进程的进程标识对应的API进程时,则监控出所述API进程被启动。
所述待拦截的API的标识信息至少包括所述待拦截的API所属类的类标识和所述待拦截的API的函数标识。
所述根据待拦截API的标识信息从所述API进程对应的虚拟机实例中将所述待拦截的采用第一计算机语言编写的第一API的代码指向地址替换为已存储的采用第二计算机语言编写的且与第一API相对应的第二API的代码指向地址,包括:
根据所述类标识,从所述API进程对应的虚拟机实例中获取所述待拦截的第一API所属的类对应的类结构体;
根据所述待拦截的第一API的函数标识,从所述类结构体中获取所述待拦截的第一API对应的函数结构体;
将所述函数结构体中存储的所述待拦截的第一API的代码指向地址替换为已存储的第二API的代码指向地址。
所述第二计算机语言为C语言或C++语言。
一种应用程序编程接口API的拦截装置,所述装置包括:
监控模块,用于根据API进程的进程标识在系统对应的虚拟机中对所述API进程进行实时监控;
获取模块,用于当API进程被启动时,根据API进程的进程标识从内存中获取所述API进程对应的虚拟机实例;
拦截模块,用于根据待拦截API的标识信息从所述API进程对应的虚拟机实例中将所述待拦截的采用第一计算机语言编写的第一API的代码指向地址替换为已存储的采用第二计算机语言编写的且与第一API相对应的第二API的代码指向地址,所述第二语言与第一代码相区别;
通过第二函数实现对API进程的控制。
所述监控模块,具体用于监控系统对应的虚拟机开始运行所述API进程的进程标识对应的API进程时,则监控出所述API进程被启动。
所述待拦截的API的标识信息至少包括所述待拦截的API所属类的类标识和所述待拦截的API的函数标识。
所述拦截模块包括:
第一获取单元,用于根据所述类标识,从所述API进程对应的虚拟机实例中获取所述待拦截的第一API所属的类对应的类结构体;
第二获取单元,用于根据所述待拦截的第一API的函数标识,从所述类结构体中获取所述待拦截的第一API对应的函数结构体;
替换单元,用于将所述函数结构体中存储的所述待拦截的第一API的代码指向地址替换为已存储的第二API的代码指向地址。
一种移动终端,其特征在于,包括所述的装置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210252551.8/2.html,转载请声明来源钻瓜专利网。