[发明专利]一种程序调用的优化方法及装置在审
申请号: | 201811581212.8 | 申请日: | 2018-12-24 |
公开(公告)号: | CN111352629A | 公开(公告)日: | 2020-06-30 |
发明(设计)人: | 任太胜;王冬 | 申请(专利权)人: | 北京奇虎科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F9/448 |
代理公司: | 北京华沛德权律师事务所 11302 | 代理人: | 房德权 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 程序 调用 优化 方法 装置 | ||
1.一种程序调用的优化方法,其特征在于,所述方法包括:
将原函数与目标函数所对应的本地代码进行链接;
将所述原函数所在栈的第一目标参数调整为预设的替换函数所对应的参数,以执行所述替换函数;
在执行完所述替换函数之后,将所述替换函数所在栈的第二目标参数调整为所述目标函数对应的本地代码所对应的参数,以跳转执行所述目标函数所对应的本地代码。
2.根据权利要求1所述的方法,其特征在于,所述将原函数与目标函数所对应的本地代码进行链接之前,还包括:
判断所述目标函数是否存在对应的本地代码;
若否,则根据所述目标函数,编译所述目标函数对应的本地代码。
3.根据权利要求2所述的方法,其特征在于,所述根据所述目标函数,编译所述目标函数对应的本地代码,包括:
判断所述目标函数是否为桥函数;
若是,则根据所述桥函数,编译所述桥函数对应的本地代码。
4.根据权利要求2所述的方法,其特征在于,所述根据所述目标函数,编译所述目标函数对应的本地代码,包括:
将所述本地代码的入口点调整为执行对所述第二目标参数的调整之后的跳转点。
5.根据权利要求1所述的方法,其特征在于,所述将原函数与目标函数所对应的本地代码进行链接,包括:
在虚拟机中调用编译器,将原函数与目标函数所对应的本地代码进行链接。
6.根据权利要求1所述的方法,其特征在于,所述将所述原函数所在栈的第一目标参数调整为预设的替换函数所对应的参数,包括:
根据预设的第一汇编代码,将所述原函数所在栈的第一目标参数调整为预设的替换函数所对应的参数。
7.根据权利要求1所述的方法,其特征在于,所述将所述替换函数所在栈的第二目标参数调整为所述目标函数对应的本地代码所对应的参数,包括:
根据预设的第二汇编代码,将所述替换函数所在栈的第二目标参数调整为所述目标函数对应的本地代码所对应的参数。
8.一种程序调用的优化装置,其特征在于,所述装置包括:
链接模块,用于将原函数与目标函数所对应的本地代码进行链接;
第一调整模块,用于将所述原函数所在栈的第一目标参数调整为预设的替换函数所对应的参数,以执行所述替换函数;
第二调整模块,用于在执行完所述替换函数之后,将所述替换函数所在栈的第二目标参数调整为所述目标函数对应的本地代码所对应的参数,以跳转执行所述目标函数所对应的本地代码。
9.一种用户终端,其特征在于,包括处理器和存储器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时使所述用户终端执行权利要求1-7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-7中任一项所述方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司,未经北京奇虎科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811581212.8/1.html,转载请声明来源钻瓜专利网。