[发明专利]函数编译方法和装置有效
申请号: | 201710555363.5 | 申请日: | 2017-07-07 |
公开(公告)号: | CN107391219B | 公开(公告)日: | 2018-09-18 |
发明(设计)人: | 黄柳优;李源纯;周江;王鹏;魏学峰 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/41;G06F9/448 |
代理公司: | 北京康信知识产权代理有限责任公司 11240 | 代理人: | 赵囡囡;褚敏 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 函数 编译 方法 装置 | ||
1.一种函数编译方法,其特征在于,包括:
将对第一函数进行编译得到的第二函数挂钩到自定义代理函数中,得到函数调用指针,其中,所述第一函数为使用第一编程语言编写的被挂钩函数,所述第二函数中的代码允许直接被CPU执行,所述函数调用指针用于调用所述第二函数;
将所述函数调用指针进行注册,以使得所述函数调用指针被允许用所述第一编程语言编写的代码调用;
利用经过注册的所述函数调用指针对第三函数进行编译,得到第四函数,其中,所述第三函数中包括用于调用所述第一函数的代码,所述第三函数为使用所述第一编程语言编写的自定义挂钩函数,所述第四函数中的代码允许直接被CPU执行。
2.根据权利要求1所述的方法,其特征在于,在所述利用经过注册的所述函数调用指针对第三函数进行编译之后,所述方法还包括:
接收到操作请求,其中,所述操作请求用于请求对目标应用进行预定操作,所述目标应用使用所述第一编程语言进行编写得到;
在响应所述操作请求对所述目标应用进行所述预定操作的过程中,当所述第一函数被请求执行时,跳转到所述第四函数,以执行所述第四函数。
3.根据权利要求1所述的方法,其特征在于,在所述将对第一函数进行编译得到的第二函数挂钩到自定义代理函数中之前,所述方法还包括:
根据所述第一函数的标识在预定的程序集中获取所述第一函数。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第一函数的标识在预定的程序集中获取所述第一函数包括:
对每个程序集执行以下操作,其中,所述程序集在执行以下操作时被标记为当前程序集:在所述当前程序集的标识与预定标识相匹配的情况下,从所述当前程序集中确定预定的类,并从所述预定的类中确定所述第一函数。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述第一编程语言为C#,所述第二函数中的代码和所述第四函数中的代码为Native代码。
6.一种函数编译方法,其特征在于,包括:
对第一函数进行编译得到第二函数,其中,所述第一函数为使用第一编程语言编写的被挂钩函数,所述第二函数中的代码允许直接被CPU执行;
对第三函数进行编译得到第四函数,其中,所述第三函数中包括用于调用所述第一函数的第一代码,所述第三函数为使用所述第一编程语言编写的自定义挂钩函数,所述第四函数中的代码允许直接被CPU执行;
将所述第一代码进行编译得到第二代码,其中,所述第二代码允许直接被CPU执行;
将所述第二函数挂钩到所述第四函数,得到函数调用指针,其中,所述函数调用指针用于调用所述第二函数;
将所述第二代码挂钩到所述函数调用指针所指示的所述第二函数。
7.根据权利要求6所述的方法,其特征在于,在所述将所述第二代码挂钩到所述函数调用指针所指示的所述第二函数之后,所述方法还包括:
接收到操作请求,其中,所述操作请求用于请求对目标应用进行预定操作,所述目标应用使用所述第一编程语言进行编写得到;
在响应所述操作请求对所述目标应用进行所述预定操作的过程中,当所述第一函数被请求执行时,跳转到所述第四函数,以执行所述第四函数。
8.根据权利要求6所述的方法,其特征在于,在所述对第一函数进行编译得到第二函数之前,所述方法还包括:
根据所述第一函数的标识在预定的程序集中获取所述第一函数。
9.根据权利要求8所述的方法,其特征在于,所述根据所述第一函数的标识在预定的程序集中获取所述第一函数包括:
对每个程序集执行以下操作,其中,所述程序集在执行以下操作时被标记为当前程序集:在所述当前程序集的标识与预定标识相匹配的情况下,从所述当前程序集中确定预定的类,并从所述预定的类中确定所述第一函数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710555363.5/1.html,转载请声明来源钻瓜专利网。