[发明专利]一种API的拦截方法、装置及移动终端有效
申请号: | 201210252551.8 | 申请日: | 2012-07-20 |
公开(公告)号: | CN102855138A | 公开(公告)日: | 2013-01-02 |
发明(设计)人: | 张立春 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 滕一斌 |
地址: | 518000 广东省深*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 api 拦截 方法 装置 移动 终端 | ||
1.一种应用程序编程接口API的拦截方法,其特征在于,所述方法包括:
根据API进程的进程标识在系统对应的虚拟机中对所述API进程进行实时监控;
当API进程被启动时,根据API进程的进程标识从内存中获取所述API进程对应的虚拟机实例;
根据待拦截API的标识信息从所述API进程对应的虚拟机实例中将所述待拦截的采用第一计算机语言编写的第一API的代码指向地址替换为已存储的采用第二计算机语言编写的且与第一API相对应的第二API的代码指向地址,所述第二语言与第一代码相区别;
通过第二函数实现对API进程的控制。
2.如权利要求1所述的方法,其特征在于,所述根据API进程的进程标识在系统对应的虚拟机中对所述API进程进行实时监控,包括:
监控系统对应的虚拟机开始运行所述API进程的进程标识对应的API进程时,则监控出所述API进程被启动。
3.如权利要求1所述的方法,其特征在于,所述待拦截的API的标识信息至少包括所述待拦截的API所属类的类标识和所述待拦截的API的函数标识。
4.如权利要求3所述的方法,其特征在于:所述根据待拦截API的标识信息从所述API进程对应的虚拟机实例中将所述待拦截的采用第一计算机语言编写的第一API的代码指向地址替换为已存储的采用第二计算机语言编写的且与第一API相对应的第二API的代码指向地址,包括:
根据所述类标识,从所述API进程对应的虚拟机实例中获取所述待拦截的第一API所属的类对应的类结构体;
根据所述待拦截的第一API的函数标识,从所述类结构体中获取所述待拦截的第一API对应的函数结构体;
将所述函数结构体中存储的所述待拦截的第一API的代码指向地址替换为已存储的第二API的代码指向地址。
5.如权利要求1至4任一项权利要求所述的方法,其特征在于,所述第二计算机语言为C语言或C++语言。
6.一种应用程序编程接口API的拦截装置,其特征在于,所述装置包括:
监控模块,用于根据API进程的进程标识在系统对应的虚拟机中对所述API进程进行实时监控;
获取模块,用于当API进程被启动时,根据API进程的进程标识从内存中获取所述API进程对应的虚拟机实例;
拦截模块,用于根据待拦截API的标识信息从所述API进程对应的虚拟机实例中将所述待拦截的采用第一计算机语言编写的第一API的代码指向地址替换为已存储的采用第二计算机语言编写的且与第一API相对应的第二API的代码指向地址,所述第二语言与第一代码相区别;
通过第二函数实现对API进程的控制。
7.如权利要求6所述的装置,其特征在于,所述监控模块,具体用于监控系统对应的虚拟机开始运行所述API进程的进程标识对应的API进程时,则监控出所述API进程被启动。
8.如权利要求6所述的装置,其特征在于,所述待拦截的API的标识信息至少包括所述待拦截的API所属类的类标识和所述待拦截的API的函数标识。
9.如权利要求8所述的装置,其特征在于,所述拦截模块包括:
第一获取单元,用于根据所述类标识,从所述API进程对应的虚拟机实例中获取所述待拦截的第一API所属的类对应的类结构体;
第二获取单元,用于根据所述待拦截的第一API的函数标识,从所述类结构体中获取所述待拦截的第一API对应的函数结构体;
替换单元,用于将所述函数结构体中存储的所述待拦截的第一API的代码指向地址替换为已存储的第二API的代码指向地址。
10.一种移动终端,其特征在于,包括权利要求6至9任一项权利要求所述的装置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210252551.8/1.html,转载请声明来源钻瓜专利网。