程序调用的优化方法及装置制造方法及图纸

技术编号:17939153 阅读:62 留言:0更新日期:2018-05-15 19:43
本发明专利技术公开了一种程序调用的优化方法及装置,涉及一种应用开发技术领域,主要目的在于解决现有ART虚拟机在利用Hook函数实现钩取目标函数时,无法保证原函数与目标函数之间的ELF文件与DEX文件的转换格式一致的问题。主要技术方案:当原函数通过Hook函数钩取目标函数时,判断所述目标函数中是否存在跳转标识;若存在跳转标识,则解析所述目标函数中的参数;若所述参数的转换格式标识小于预设转换条件,则通过预置指向指令跳转至替换函数进行处理。主要用于程序调用的优化。

【技术实现步骤摘要】
程序调用的优化方法及装置
本专利技术涉及一种应用开发
,特别是涉及一种程序调用的优化方法及装置。
技术介绍
随着操作系统应用开发技术的快速发展,使用虚拟化技术对操作系统底层进行处理、开发以及成为主流手段。安卓运行时(Androidruntime,ART)虚拟机区别于传统的Dalvik虚拟机,使用预编译技术取代Dalvik中的及时编译技术,加快了应用程序的启动和执行。目前,传统的Dalvik虚拟机中在多开应用时,使用Hook函数实现钩取目标函数来完成多开应用的技术已经发展成熟,但是,安卓系统在使用ART虚拟机调用第三方应用之后,系统程序变为复杂,ART虚拟机运行时是翻译DEX字节码后得到的机器码指令,ART虚拟机主要应用的一种Android私有ELF文件格式,即OAT文件,其中包含从传统Dalvik的DEX文件翻译过来的机器码指令,但是由于ART虚拟机运行时提供了Java接口,而实现Java接口不得不依赖于DEX文件,所以OAT文件又包含原始的DEX文件内容,即ART虚拟机在利用Hook函数实现钩取目标函数时,无法保证原函数与目标函数之间的ELF文件与DEX文件的转换格式一致,因本文档来自技高网...
程序调用的优化方法及装置

【技术保护点】
一种程序调用的优化方法,其特征在于,包括:当原函数通过Hook函数钩取目标函数时,判断所述目标函数中是否存在跳转标识;若存在跳转标识,则解析所述目标函数中的参数;若所述参数的转换格式标识小于预设转换条件,则通过预置指向指令跳转至替换函数进行处理。

【技术特征摘要】
1.一种程序调用的优化方法,其特征在于,包括:当原函数通过Hook函数钩取目标函数时,判断所述目标函数中是否存在跳转标识;若存在跳转标识,则解析所述目标函数中的参数;若所述参数的转换格式标识小于预设转换条件,则通过预置指向指令跳转至替换函数进行处理。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:若所述参数的转换格式标识大于预设转换条件,则执行第一跳转指令,所述第一跳转指令用于跳转至所述目标函数。3.根据权利要求1或2所述的方法,其特征在于,所述若所述参数的转换格式标识小于预设转换条件,则通过预置指向指令跳转至替换函数进行处理之后,所述方法还包括:当所述替换函数执行完毕后,根据所述原函数的业务需求判断是否执行第二跳转指令,若所述业务需求确定为执行原函数,则执行所述第二跳转指令,所述第二跳转指令用于跳转至所述原函数。4.根据权利要求3所述的方法,其特征在于,所述当原函数通过Hook函数钩取目标函数时,判断所述目标函数中是否存在跳转标识包括:当原函数通过Hook函数钩取目标函数时,判断所述目标函数中的头字节是否为占用特定字节的JMP指令。5.一种程序调用的优化装置,其特征在于,包括:判断单元,用于当原函数通过Hook函数钩取目标函数时,判断所述目标函数中是否存在跳转标识;解析单元,用于若存在跳转...

【专利技术属性】
技术研发人员:任太胜王浩易新
申请(专利权)人:北京奇虎科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1