[发明专利]程序调用的优化方法及装置有效
| 申请号: | 201711160970.8 | 申请日: | 2017-11-20 |
| 公开(公告)号: | CN108021357B | 公开(公告)日: | 2022-03-11 |
| 发明(设计)人: | 任太胜;王浩;易新 | 申请(专利权)人: | 北京奇虎科技有限公司 |
| 主分类号: | G06F8/20 | 分类号: | G06F8/20;G06F8/41;G06F9/48;G06F9/455 |
| 代理公司: | 北京律诚同业知识产权代理有限公司 11006 | 代理人: | 王玉双 |
| 地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 程序 调用 优化 方法 装置 | ||
本发明公开了一种程序调用的优化方法及装置,涉及一种应用开发技术领域,主要目的在于解决现有ART虚拟机在利用Hook函数实现钩取目标函数时,无法保证原函数与目标函数之间的ELF文件与DEX文件的转换格式一致的问题。主要技术方案:当原函数通过Hook函数钩取目标函数时,判断所述目标函数中是否存在跳转标识;若存在跳转标识,则解析所述目标函数中的参数;若所述参数的转换格式标识小于预设转换条件,则通过预置指向指令跳转至替换函数进行处理。主要用于程序调用的优化。
技术领域
本发明涉及一种应用开发技术领域,特别是涉及一种程序调用的优化方法及装置。
背景技术
随着操作系统应用开发技术的快速发展,使用虚拟化技术对操作系统底层进行处理、开发以及成为主流手段。安卓运行时(Android runtime,ART)虚拟机区别于传统的Dalvik虚拟机,使用预编译技术取代Dalvik中的及时编译技术,加快了应用程序的启动和执行。
目前,传统的Dalvik虚拟机中在多开应用时,使用Hook函数实现钩取目标函数来完成多开应用的技术已经发展成熟,但是,安卓系统在使用ART虚拟机调用第三方应用之后,系统程序变为复杂,ART虚拟机运行时是翻译DEX字节码后得到的机器码指令,ART虚拟机主要应用的一种Android私有ELF文件格式,即OAT文件,其中包含从传统Dalvik的DEX文件翻译过来的机器码指令,但是由于ART虚拟机运行时提供了Java接口,而实现Java接口不得不依赖于DEX文件,所以OAT文件又包含原始的DEX文件内容,即ART虚拟机在利用Hook函数实现钩取目标函数时,无法保证原函数与目标函数之间的ELF文件与DEX文件的转换格式一致,因此,对程序调用的优化已经成为亟待解决的问题。
发明内容
有鉴于此,本发明提供一种程序调用的优化方法及装置,主要目的在于解决现有ART虚拟机在利用Hook函数实现钩取目标函数时,无法保证原函数与目标函数之间的ELF文件与DEX文件的转换格式一致的问题。
依据本发明一个方面,提供了一种程序调用的优化方法,包括:
当原函数通过Hook函数钩取目标函数时,判断所述目标函数中是否存在跳转标识;
若存在跳转标识,则解析所述目标函数中的参数;
若所述参数的转换格式标识小于预设转换条件,则通过预置指向指令跳转至替换函数进行处理。
进一步地,所述方法还包括:
若所述参数的转换格式标识大于预设转换条件,则执行第一跳转指令,所述第一跳转指令用于跳转至所述目标函数。
进一步地,所述若所述参数的转换格式标识小于预设转换条件,则通过预置指向指令跳转至替换函数进行处理之后,所述方法还包括:
当所述替换函数执行完毕后,根据所述原函数的业务需求判断是否执行第二跳转指令,若所述业务需求确定为执行原函数,则执行所述第二跳转指令,所述第二跳转指令用于跳转至所述原函数。
进一步地,所述当原函数通过Hook函数钩取目标函数时,判断所述目标函数中是否存在跳转标识包括:
当原函数通过Hook函数钩取目标函数时,判断所述目标函数中的头字节是否为占用特定字节的JMP指令。
进一步地,所述若存在跳转标识,则解析所述目标函数中的参数之后,所述方法还包括:
将解析后的参数存储在预置线程对应的局部变量中,并根据所述参数将所述局部变量中的元素转换为对应的数据类型指针,传递至Java层,所述参数包括转换格式信息、参数传递顺序信息、参数类型信息。
进一步地,所述当所述替换函数执行完毕后,根据所述原函数的业务需求判断是否执行第二跳转指令,若所述业务需求确定为执行原函数,则执行所述第二跳转指令包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司,未经北京奇虎科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711160970.8/2.html,转载请声明来源钻瓜专利网。





