[发明专利]函数编译方法和装置有效

专利信息
申请号: 201710555363.5 申请日: 2017-07-07
公开(公告)号: CN107391219B 公开(公告)日: 2018-09-18
发明(设计)人: 黄柳优;李源纯;周江;王鹏;魏学峰 申请(专利权)人: 腾讯科技(深圳)有限公司
主分类号: G06F8/30 分类号: G06F8/30;G06F8/41;G06F9/448
代理公司: 北京康信知识产权代理有限责任公司 11240 代理人: 赵囡囡;褚敏
地址: 518000 广东省深圳*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 函数 编译 方法 装置
【说明书】:

发明公开了一种函数编译方法和装置。该方法包括:将对第一函数进行编译得到的第二函数挂钩到自定义代理函数中得到函数调用指针,第一函数为使用第一编程语言编写的被挂钩函数,函数调用指针用于调用第二函数;将函数调用指针进行注册以使其被允许用第一编程语言编写的代码调用;利用经过注册的函数调用指针对第三函数进行编译得到第四函数,第三函数中包括用于调用第一函数的代码,第三函数为使用第一编程语言编写的自定义挂钩函数,第二函数中的代码以及第四函数中的代码允许直接被CPU执行。本发明解决了相关技术在对函数进行Hook时自定义Hook函数必须使用C/C++编写,导致自定义Hook函数的开发成本较高的技术问题。

技术领域

本发明涉及计算机领域,具体而言,涉及一种函数编译方法和装置。

背景技术

Hook技术可以指利用一个自定义的函数替换某个函数的过程,其中,该过程可以涉及到三个函数,一个是被Hook函数,一个是自定义Hook函数,Hook之后可以返回一个函数指针,该函数指针可以完成被Hook函数的功能,也即该函数指针可以指示被Hook函数的调用。

Hook技术可以应用于测试等领域中,例如,图1是现有技术在手机游戏协议测试工具中使用的示意图,如图1所示,具体包括如下步骤:

1.注册JIT完成事件:用Mono提供的接口mono_profiler_install_jit_end向Mono注册全局的JIT完成事件的回调函数。其中,Mono可以是一个可以运行.Net程序的开源项目,JIT可以指Mono运行时将IL代码动态编译成Native代码的过程,其中,IL代码为.Net语言编译后的字节码,Native代码为可以直接被CPU执行的代码。

2.设置JIT完成通知事件:用Mono提供的接口mono_profiler_set_events向设置在有JIT完成的时候通知用户自定义的JIT完成事件的回调函数。

3.监听所有被JIT的函数:在自定义的JIT完成事件回调函数中检查所有函数是不是现在需要Hook的函数,如果是,则实施Hook,否则什么也不做。

4.实施HOOK:对需要Hook的函数进行Hook。其中,Hook函数可以由开发人员根据实际需求用C/C++语言编写。

现有技术方案在上述使用过程中存在以下不足:

第一点不足:注册机制导致在注册前就JIT的函数永远都不会通知到JIT完成的回调函数。

第二点不足:自定义的Hook函数要用C/C++编写。

对于第一点不足,基于Mono在运行时对同一个C#函数只会JIT一次的前提,那么在开发人员向Mono注册JIT完成事件前就已经JIT的C#函数,就永远没有机会被Hook了,这不是开发人员想要的结果。

对于第二点不足,在开发人员想对被Hook函数做一些逻辑上的修改的时候,往往是需要操作C#的对象的,这个时候如果用C/C++来写代码去操作C#的对象,这会大大增加开发成本,这个成本不仅仅局限于多写几行C/C++代码,更是需要非常熟悉Mono的C/C++和C#代码交互基础才能编写。而在对想要编写非常复杂的逻辑的时候,用C/C++来完成原本C#应该完成的事情是非常困难的。

针对上述的问题,目前尚未提出有效的解决方案。

发明内容

本发明实施例提供了一种函数编译方法和装置,以至少解决相关技术在对函数进行Hook时自定义Hook函数必须使用C/C++编写,导致自定义Hook函数的开发成本较高的技术问题。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201710555363.5/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top