CN109753322B - 一种ios平台上对应用程序的加速方法和装置 - Google Patents

一种ios平台上对应用程序的加速方法和装置 Download PDF

Info

Publication number
CN109753322B
CN109753322B CN201710755574.3A CN201710755574A CN109753322B CN 109753322 B CN109753322 B CN 109753322B CN 201710755574 A CN201710755574 A CN 201710755574A CN 109753322 B CN109753322 B CN 109753322B
Authority
CN
China
Prior art keywords
function
system time
obtaining
acceleration
mach
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710755574.3A
Other languages
English (en)
Other versions
CN109753322A (zh
Inventor
周志刚
陈少杰
张文明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201710755574.3A priority Critical patent/CN109753322B/zh
Publication of CN109753322A publication Critical patent/CN109753322A/zh
Application granted granted Critical
Publication of CN109753322B publication Critical patent/CN109753322B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明提供了一种IOS平台上对应用程序的加速方法和装置,涉及信息处理技术领域,所述方法包括:通过获得IOS应用程序的加速函数;获得所述IOS应用程序中的目标函数;确定所述目标函数为***时间函数;根据所述加速函数,对所述***时间函数进行加速。解决现有技术中在运行程序时尤其是有当程序中存在各种模块时,存在应用程序的运行速度较慢的技术问题。达到了有效防提高应用程序运行速度,从而提高对应用程序检测效率的技术效果。

Description

一种IOS平台上对应用程序的加速方法和装置
技术领域
本发明涉及信息处理技术领域,尤其涉及一种IOS平台上对应用程序的加速方法和装置。
背景技术
目前,随着移动设备的日益普及,移动应用产业尤其是IOS应用得到飞速的发展,同时IOS应用的开发模式和代码框架也都发生了巨大的变化。
现有技术中,在IOS应用程序的编写中,当需要编写一些功能模块注入到对应的进程中时,需要编写一个dylib文件,然后将所述dylib文件注入到对应的进程中运行。
但是,现有技术中在运行程序时尤其是有当程序中存在各种模块时,存在应用程序的运行速度较慢的技术问题。
发明内容
本发明实施例提供了一种IOS平台上对应用程序的加速方法和装置,解决现有技术中在运行程序时尤其是有当程序中存在各种模块时,存在应用程序的运行速度较慢的技术问题。
鉴于上述问题,提出了本申请实施例以便提供一种IOS平台上对应用程序的加速方法和装置。
第一方面,本发明提供了一种IOS平台上对应用程序的加速方法,所述方法包括:获得IOS应用程序的加速函数;获得所述IOS应用程序中的目标函数;确定所述目标函数为***时间函数;根据所述加速函数,对所述***时间函数进行加速。
优选的,所述获得IOS应用程序的加速函数,还包括:获得所述IOS应用程序中的Mach-o文件;根据所述Mach-o文件,获得所述目标函数;将所述目标函数地址修改为所述加速函数。
优选的,所述获得所述IOS应用程序中的Mach-o文件,还包括:根据所述Mach-o文件,获得所述Mach-o文件的内存起始地址;根据所述Mach-o文件的内存起始地址,获得所述Mach-o文件的虚拟内存地址。
优选的,所述根据所述Mach-o文件,获得所述目标函数,还包括:根据所述Mach-o文件,获得所述Mach-o文件中的函数索引和函数名称;根据所述函数索引、所述函数名称,获得所述目标函数。
优选的,所述将所述目标函数地址修改为所述加速函数,还包括:根据所述Mach-o文件的虚拟内存地址,获得所述目标函数的内存地址;将所述目标函数的内存地址修改为所述加速函数的内存地址。
优选的,所述根据所述加速函数,对所述***时间函数进行加速,还包括:获得第一函数指针,所述第一函数指针用于存储所述***时间函数;获得虚拟***时间函数;通过所述加速函数,将所述***时间函数替换为所述虚拟***时间函数。
优选的,所述方法还包括:根据所述***时间函数,获得***时间;根据所述虚拟***时间函数,获得第一加速变量;根据所述***时间、所述第一加速变量,确定第一加速时间。
第二方面,本发明提供了一种IOS平台上对应用程序的加速装置,所述装置包括:
第一获得单元,所述第一获得单元用于获得IOS应用程序的加速函数;
第二获得单元,所述第二获得单元用于获得所述IOS应用程序中的目标函数;
第一确定单元,所述第一确定单元用于确定所述目标函数为***时间函数;
第一加速单元,所述第一加速单元用于根据所述加速函数,对所述***时间函数进行加速。
进一步的,所述装置还包括:
第三获得单元,所述第三获得单元用于获得所述IOS应用程序中的Mach-o文件;
第四获得单元,所述第四获得单元用于根据所述Mach-o文件,获得所述目标函数;
第一修改单元,所述第一修改单元用于将所述目标函数地址修改为所述加速函数。
进一步的,所述装置还包括:
第五获得单元,所述第五获得单元用于根据所述Mach-o文件,获得所述Mach-o文件的内存起始地址;
第六获得单元,所述第六获得单元用于根据所述Mach-o文件的内存起始地址,获得所述Mach-o文件的虚拟内存地址。
进一步的,所述装置还包括:
第七获得单元,所述第七获得单元用于根据所述Mach-o文件,获得所述Mach-o文件中的函数索引和函数名称;
第八获得单元,所述第八获得单元用于根据所述函数索引、所述函数名称,获得所述目标函数。
进一步的,所述装置还包括:
第九获得单元,所述第九获得单元用于根据所述Mach-o文件的虚拟内存地址,获得所述目标函数的内存地址;
第二修改单元,所述第二修改单元用于将所述目标函数的内存地址修改为所述加速函数的内存地址。
进一步的,所述装置还包括:
第十获得单元,所述第十获得单元用于获得第一函数指针,所述第一函数指针用于存储所述***时间函数;
第十一获得单元,所述第十一获得单元用于获得虚拟***时间函数;
第一替换单元,所述第一替换单元用于通过所述加速函数,将所述***时间函数替换为所述虚拟***时间函数。
进一步的,所述装置还包括:
第十二获得单元,所述第十二获得单元用于根据所述***时间函数,获得***时间;
第十三获得单元,所述第十三获得单元用于根据所述虚拟***时间函数,获得第一加速变量;
第一确定单元,所述第一确定单元用于根据所述***时间、所述第一加速变量,确定第一加速时间。
第三方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:获得IOS应用程序的加速函数;获得所述IOS应用程序中的目标函数;确定所述目标函数为***时间函数;根据所述加速函数,对所述***时间函数进行加速。。
第四方面,本发明提供了一种IOS平台上对应用程序的加速装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:获得IOS应用程序的加速函数;获得所述IOS应用程序中的目标函数;确定所述目标函数为***时间函数;根据所述加速函数,对所述***时间函数进行加速。。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
1.本申请实施例提供的一种IOS平台上对应用程序的加速方法和装置,通过获得IOS应用程序的加速函数;获得所述IOS应用程序中的目标函数;确定所述目标函数为***时间函数;根据所述加速函数,对所述***时间函数进行加速。解决现有技术中在运行程序时尤其是有当程序中存在各种模块时,存在应用程序的运行速度较慢的技术问题。达到了有效防提高应用程序运行速度,从而提高对应用程序检测的效率的技术效果。
2.本申请实施例通过根据获得所述IOS应用程序中的Mach-o文件;根据所述Mach-o文件,获得所述目标函数;将所述目标函数地址修改为所述加速函数。。进一步解决现有技术中在运行程序时尤其是有当程序中存在各种模块时,存在应用程序的运行速度较慢的技术问题。进一步达到了通过对应用程序中每个Mach-o文件中的目标函数进行加速,从而使不管是哪个Mach-o文件调用目标函数,都能被加速的技术效果。
3、本申请实施例通过根据所述***时间函数,获得***时间;根据所述虚拟***时间函数,获得第一加速变量;根据所述***时间、所述第一加速变量,确定第一加速时间。进一步解决现有技术中在运行程序时尤其是有当程序中存在各种模块时,存在应用程序的运行速度较慢的技术问题。进一步达到了能够控制对应用程序进行加速的速度大小的技术效果。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
图1为本发明实施例中一种IOS平台上对应用程序的加速方法的流程示意图;
图2为本发明实施例中获得IOS应用程序的加速函数的流程示意图
图3为本发明实施例中一种IOS平台上对应用程序的加速装置的结构示意图;
图4为本发明实施例中另一种IOS平台上对应用程序的加速装置的结构示意图。
具体实施方式
本发明实施例提供了一种IOS平台上对应用程序的加速方法和装置,用于解决了现有技术中在运行程序时尤其是有当程序中存在各种模块时,存在应用程序的运行速度较慢的技术问题,本发明提供的技术方案总体思路如下:
在本发明实施例的技术方案中,通过获得IOS应用程序的加速函数;获得所述IOS应用程序中的目标函数;确定所述目标函数为***时间函数;根据所述加速函数,对所述***时间函数进行加速。解决现有技术中在运行程序时尤其是有当程序中存在各种模块时,存在应用程序的运行速度较慢的技术问题。达到了有效防提高应用程序运行速度,从而提高对应用程序检测的效率的技术效果。
下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
为了更清楚的对本申请进行阐述,下面对本申请所涉及的专业名词进行解释:
1、iOS:是由苹果公司开发的手持设备操作***。苹果公司最早于2007年1月9日的Macworld大会上公布这个***,iOS最初是设计给iPhone使用的,后来陆续套用到iPodtouch、iPad以及Apple TV等苹果产品上。iOS与苹果的Mac OS X操作***一样,它也是以Darwin为基础的,因此同样属于类Unix的商业操作***。
2、Hook,是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。钩子实际上是一个处理消息的程序段,通过***调用,把它挂入***。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。
3、Mach-O:是Mach object文件格式的缩写,是一种可执行文件、目标代码、共享程序库、动态加载代码和核心DUMP。是a.out格式的一种替代。Mach-O提供更多的可扩展性和更快的符号表信息存取。Mach-O应用在基于Mach核心的***上,目前NeXTSTEP、Darwin、MacOS X(iPhone)都是使用这种可执行文件格式。
4、API:就是操作***留给应用程序的一个调用接口,应用程序通过调用操作***的API而使操作***去执行应用程序的命令(动作)。应用程序接口是一组定义、程序及协议的集合,通过API接口实现计算机软件之间的相互通信。API的一个主要功能是提供通用功能集。程序员通过调用API函数对应用程序进行开发,可以减轻编程任务。API同时也是一种中间件,为各种不同平台提供数据共享。
实施例一
图1为本发明实施例中一种IOS平台上对应用程序的加速方法的流程示意图。如图1所示,所述方法包括:
步骤110:获得IOS应用程序的加速函数;
具体而言,所述加速函数为HOOK函数,具有基础的HOOK功能,也就是能够通过***调用,把所述HOOK函数挂入***。每当特定的函数在执行功能时,在没有到达目的窗口前,所述HOOK函数就先捕获所述特定的函数,亦即所述HOOK函数先得到控制权。这时所述HOOK函数即可以加工处理或者修改所述特定的函数。通过所述HOOK函数的功能达到对所述IOS应用程序加速的效果。
进一步的,所述获得IOS应用程序的加速函数,可以通过以下步骤来实现,如图2所示:
步骤111:获得所述IOS应用程序中的Mach-o文件;
具体而言,由于一个IOS应用程序会加载多个所述Mach-o文件,每个Mach-o文件都存储有自己的函数地址,并且每一个Mach-o文件也都有可能会调用到需要被加速的目标函数,所以为了保障对目标函数的HOOK功能,则需要对每个Mach-o文件编写HOOK函数,从而实现不管是哪个Mach-o文件调用目标函数,都能实现HOOK功能。获得IOS程序中所有Mach-o文件,具体可以通过以下方法实现:
uint32_t c=_dyld_image_count();
通过_dyld_image_count来获取IOS程序所加载的Mach-o的个数;
for(uint32_t i=0;i<c;i++)
通过for循环来遍历所述Mach-o文件,从而获得所述IOS应用程序中的所有Mach-o文件。
进一步的,根据所述Mach-o文件,获得所述Mach-o文件的内存起始地址;根据所述Mach-o文件的内存起始地址,获得所述Mach-o文件的虚拟内存地址。
具体而言,实现方式如下:
const struct mach_header*header=_dyld_get_image_header(i);
通过函数_dyld_get_image_header获取所述Mach-o文件的内存起始地址;
intptr_t slide=_dyld_get_image_vmaddr_slide(i);
通过函数_dyld_get_image_vmaddr_slide来获取所述Mach-o文件的虚拟内存地址。
步骤112:根据所述Mach-o文件,获得所述目标函数;
进一步的,所述根据所述Mach-o文件,获得所述目标函数,还包括:根据所述Mach-o文件,获得所述Mach-o文件中的函数索引和函数名称;根据所述函数索引、所述函数名称,获得所述目标函数。
具体而言,首先需要对IOS程序的Mach-o文件进行解析,从而获取到所述Mach-o文件中的函数索引和函数名称,通过函数名称便可以找出所述目标函数。
步骤113:将所述目标函数地址修改为所述加速函数。
进一步的,所述将所述目标函数地址修改为所述加速函数,还包括:根据所述Mach-o文件的虚拟内存地址,获得所述目标函数的内存地址;将所述目标函数的内存地址修改为所述加速函数的内存地址。
具体而言,通过所述Mach-o文件的虚拟内存地址,获得所述目标函数的内存地址后,将所述目标函数地址修改为所述加速函数的内存地址,也就是将所述目标函数内存地址修改为能够实现HOOK功能的函数内存地址。代码如下:
pSaveOrg=setion_indirect_symbol_bindings[i];
上述为原始的目标函数的内存地址。
setion_indirect_symbol_bindings[i]=pNew;
上述为能够实现HOOK功能的函数内存地址,将原始的目标函数的内存地址替换成能够实现HOOK功能的函数内存地址。从而实现使所述目标函数具有HOOK功能。对步骤111所遍历的每一个Mach-o文件都采用步骤113所述的方法,从而最终使***的每一个Mach-o文件的目标函数都具有HOOK功能。
步骤120:获得所述IOS应用程序中的目标函数;
步骤130:确定所述目标函数为***时间函数;
具体而言,在IOS***中提供了这样一些API函数来获取当前***的时间,具体则包括NSDate、CFAbsoluteTimeGetCurrent、gettimeofday3个函数,而对于这3个函数中,而只有gettimeofday函数才是获取到的是Unixtime即***时间参数,其中,所述gettimeofday为所述***时间函数,本申请实施例通过对所述***时间参数进行加速,从而达到对应用程序运行的加速,例如应用程序中的渲染函数,会获取每秒钟渲染多少次帧数,那么如果时间过的越快则其实际渲染的帧数就会越多,从而整个程序看起来就是进行了加速。所以根据上述原理,本申请实施例将所述***时间函数确定为后续步骤的目标函数。
步骤140:根据所述加速函数,对所述***时间函数进行加速。
进一步的,所述根据所述加速函数,对所述***时间函数进行加速,还包括:获得第一函数指针,所述第一函数指针用于存储所述***时间函数;获得虚拟***时间函数;通过所述加速函数,将所述***时间函数替换为所述虚拟***时间函数。
具体而言,定义一个函数指针,即所述第一函数指针,所述第一函数指针用于存放所述***时间函数,也就是原始的,未经加速的gettimeofday函数,然后编写所述虚拟***时间函数my_gettimeofday,所述虚拟***时间函数比所述***时间函数的时间快,然后调用所述加速函数,将所述***时间函数替换为虚拟***时间函数,通过所述加速函数的HOOK功能,使应用程序在调用***时间函数前,直接执行所述虚拟***时间函数,即完成了所述虚拟***时间函数替换***时间函数,从而实现对应用程序的加速。
进一步的,所述方法还包括:根据所述***时间函数,获得***时间;根据所述虚拟***时间函数,获得第一加速变量;根据所述***时间、所述第一加速变量,确定第一加速时间。
具体而言,通过所述***时间函数,得到真实的***时间,根据所述虚拟***时间函数获得所述第一加速变量,所述第一加速变量决定所述虚拟***时间加速的大小,也就是说,所述第一加速变量为所述***时间的加速倍数,换言之,所述第一加速变量越大,应用程序的加速越快,举例来讲,如果所述第一加速变量为2,虚拟***时间=***时间*2,所述第一加速变量的大小可根据实际情况设定,本申请实施例不对此作任何限制。通过将获取到的***时间的秒数和微秒数都乘以加速的倍数,那么对于IOS应用程序中所有调用gettimeofday函数来获取当前时间的地方其最终获取到的时间则是真实时间的多少倍的关系。达到了通过对gettimeofday函数进行HOOK,从而实现了对整个IOS应用程序进行加速的效果。
实施例2
基于与前述实施例中一种IOS平台上对应用程序的加速方法同样的发明构思,本发明还提供一种IOS平台上对应用程序的加速装置,如图2所示,包括:
第一获得单元11,所述第一获得单元11用于获得IOS应用程序的加速函数;
第二获得单元12,所述第二获得单元12用于获得所述IOS应用程序中的目标函数;
第一确定单元13,所述第一确定单元13用于确定所述目标函数为***时间函数;
第一加速单元14,所述第一加速单元14用于根据所述加速函数,对所述***时间函数进行加速。
进一步的,所述装置还包括:
第三获得单元,所述第三获得单元用于获得所述IOS应用程序中的Mach-o文件;
第四获得单元,所述第四获得单元用于根据所述Mach-o文件,获得所述目标函数;
第一修改单元,所述第一修改单元用于将所述目标函数地址修改为所述加速函数。
进一步的,所述装置还包括:
第五获得单元,所述第五获得单元用于根据所述Mach-o文件,获得所述Mach-o文件的内存起始地址;
第六获得单元,所述第六获得单元用于根据所述Mach-o文件的内存起始地址,获得所述Mach-o文件的虚拟内存地址。
进一步的,所述装置还包括:
第七获得单元,所述第七获得单元用于根据所述Mach-o文件,获得所述Mach-o文件中的函数索引和函数名称;
第八获得单元,所述第八获得单元用于根据所述函数索引、所述函数名称,获得所述目标函数。
进一步的,所述装置还包括:
第九获得单元,所述第九获得单元用于根据所述Mach-o文件的虚拟内存地址,获得所述目标函数的内存地址;
第二修改单元,所述第二修改单元用于将所述目标函数的内存地址修改为所述加速函数的内存地址。
进一步的,所述装置还包括:
第十获得单元,所述第十获得单元用于获得第一函数指针,所述第一函数指针用于存储所述***时间函数;
第十一获得单元,所述第十一获得单元用于获得虚拟***时间函数;
第一替换单元,所述第一替换单元用于通过所述加速函数,将所述***时间函数替换为所述虚拟***时间函数。
进一步的,所述装置还包括:
第十二获得单元,所述第十二获得单元用于根据所述***时间函数,获得***时间;
第十三获得单元,所述第十三获得单元用于根据所述虚拟***时间函数,获得第一加速变量;
第一确定单元,所述第一确定单元用于根据所述***时间、所述第一加速变量,确定第一加速时间。
前述图1实施例1中的一种IOS平台上对应用程序的加速方法的各种变化方式和具体实例同样适用于本实施例的一种IOS平台上对应用程序的加速装置,通过前述对一种IOS平台上对应用程序的加速方法的详细描述,本领域技术人员可以清楚的知道本实施例中一种IOS平台上对应用程序的加速装置的实施方法,所以为了说明书的简洁,在此不再详述。
实施例3
基于与前述实施例中一种IOS平台上对应用程序的加速方法同样的发明构思,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文所述一种IOS平台上对应用程序的加速方法的任一方法的步骤。
其中,在图3中,总线架构(用总线300来代表),总线300可以包括任意数量的互联的总线和桥,总线300将包括由处理器302代表的一个或多个处理器和存储器304代表的存储器的各种电路链接在一起。总线300还可以将诸如***设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口306在总线300和接收器301和发送器303之间提供接口。接收器301和发送器303可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。
处理器302负责管理总线300和通常的处理,而存储器304可以被用于存储处理器302在执行操作时所使用的数据。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
1.本申请实施例提供的一种IOS平台上对应用程序的加速方法和装置,通过获得IOS应用程序的加速函数;获得所述IOS应用程序中的目标函数;确定所述目标函数为***时间函数;根据所述加速函数,对所述***时间函数进行加速。解决现有技术中在运行程序时尤其是有当程序中存在各种模块时,存在应用程序的运行速度较慢的技术问题。达到了有效防提高应用程序运行速度,从而提高对应用程序检测的效率的技术效果。
2.本申请实施例通过根据获得所述IOS应用程序中的Mach-o文件;根据所述Mach-o文件,获得所述目标函数;将所述目标函数地址修改为所述加速函数。。进一步解决现有技术中在运行程序时尤其是有当程序中存在各种模块时,存在应用程序的运行速度较慢的技术问题。进一步达到了通过对应用程序中每个Mach-o文件中的目标函数进行加速,从而使不管是哪个Mach-o文件调用目标函数,都能被加速的技术效果。
3、本申请实施例通过根据所述***时间函数,获得***时间;根据所述虚拟***时间函数,获得第一加速变量;根据所述***时间、所述第一加速变量,确定第一加速时间。进一步解决现有技术中在运行程序时尤其是有当程序中存在各种模块时,存在应用程序的运行速度较慢的技术问题。进一步达到了能够控制对应用程序进行加速的速度大小的技术效果。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (8)

1.一种IOS平台上对应用程序的加速方法,其特征在于,所述方法包括:
获得IOS应用程序的加速函数,所述加速函数为HOOK函数;
获得所述IOS应用程序中的目标函数;
确定所述目标函数为***时间函数,所述***时间函数为gettimeofday函数;
根据所述加速函数,对所述***时间函数进行加速;
其中,所述获得IOS应用程序的加速函数,还包括:
获得所述IOS应用程序中的每一个Mach-o文件;
根据所述每一个Mach-o文件,获得所述目标函数;
将所述目标函数修改为所述加速函数;
其中,所述根据所述加速函数,对所述***时间函数进行加速,还包括:
获得第一函数指针,所述第一函数指针用于存储所述***时间函数;
获得虚拟***时间函数;
通过所述加速函数,将所述***时间函数替换为所述虚拟***时间函数。
2.如权利要求1所述的方法,其特征在于,所述获得所述IOS应用程序中的每一个Mach-o文件,还包括:
根据所述每一个Mach-o文件,获得所述每一个Mach-o文件的内存起始地址;
根据所述每一个Mach-o文件的内存起始地址,获得所述每一个Mach-o文件的虚拟内存地址。
3.如权利要求1所述的方法,其特征在于,所述根据所述每一个Mach-o文件,获得所述目标函数,还包括:
根据所述每一个Mach-o文件,获得所述每一个Mach-o文件中的函数索引和函数名称;
根据所述函数索引、所述函数名称,获得所述目标函数。
4.如权利要求1所述的方法,其特征在于,所述将所述目标函数修改为所述加速函数,还包括:
根据所述每一个Mach-o文件的虚拟内存地址,获得所述目标函数的内存地址;
将所述目标函数的内存地址修改为所述加速函数的内存地址。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述***时间函数,获得***时间;
根据所述虚拟***时间函数,获得第一加速变量;
根据所述***时间、所述第一加速变量,确定第一加速时间。
6.一种IOS平台上对应用程序的加速装置,其特征在于,所述装置包括:
第一获得单元,所述第一获得单元用于获得IOS应用程序的加速函数,所述加速函数为HOOK函数;
第二获得单元,所述第二获得单元用于获得所述IOS应用程序中的目标函数;
第一确定单元,所述第一确定单元用于确定所述目标函数为***时间函数,所述***时间函数为gettimeofday函数;
第一加速单元,所述第一加速单元用于根据所述加速函数,对所述***时间函数进行加速;
第三获得单元,所述第三获得单元用于获得所述IOS应用程序中的每一个Mach-o文件;
第四获得单元,所述第四获得单元用于根据所述每一个Mach-o文件,获得所述目标函数;
第一修改单元,所述第一修改单元用于将所述目标函数地址修改为所述加速函数;
第十获得单元,所述第十获得单元用于获得第一函数指针,所述第一函数指针用于存储所述***时间函数;
第十一获得单元,所述第十一获得单元用于获得虚拟***时间函数;
第一替换单元,所述第一替换单元用于通过所述加速函数,将所述***时间函数替换为所述虚拟***时间函数。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现以下步骤:
获得IOS应用程序的加速函数,所述加速函数为HOOK函数;
获得所述IOS应用程序中的目标函数;
确定所述目标函数为***时间函数,所述***时间函数为gettimeofday函数;
根据所述加速函数,对所述***时间函数进行加速;
其中,所述获得IOS应用程序的加速函数,还包括:
获得所述IOS应用程序中的每一个Mach-o文件;
根据所述每一个Mach-o文件,获得所述目标函数;
将所述目标函数修改为所述加速函数;
其中,所述根据所述加速函数,对所述***时间函数进行加速,还包括:
获得第一函数指针,所述第一函数指针用于存储所述***时间函数;
获得虚拟***时间函数;
通过所述加速函数,将所述***时间函数替换为所述虚拟***时间函数。
8.一种IOS平台上对应用程序的加速装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现以下步骤:
获得IOS应用程序的加速函数,所述加速函数为HOOK函数;
获得所述IOS应用程序中的目标函数;
确定所述目标函数为***时间函数,所述***时间函数为gettimeofday函数;
根据所述加速函数,对所述***时间函数进行加速;
其中,所述获得IOS应用程序的加速函数,还包括:
获得所述IOS应用程序中的每一个Mach-o文件;
根据所述每一个Mach-o文件,获得所述目标函数;
将所述目标函数修改为所述加速函数;
其中,所述根据所述加速函数,对所述***时间函数进行加速,还包括:
获得第一函数指针,所述第一函数指针用于存储所述***时间函数;
获得虚拟***时间函数;
通过所述加速函数,将所述***时间函数替换为所述虚拟***时间函数。
CN201710755574.3A 2017-08-29 2017-08-29 一种ios平台上对应用程序的加速方法和装置 Active CN109753322B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710755574.3A CN109753322B (zh) 2017-08-29 2017-08-29 一种ios平台上对应用程序的加速方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710755574.3A CN109753322B (zh) 2017-08-29 2017-08-29 一种ios平台上对应用程序的加速方法和装置

Publications (2)

Publication Number Publication Date
CN109753322A CN109753322A (zh) 2019-05-14
CN109753322B true CN109753322B (zh) 2022-04-15

Family

ID=66397738

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710755574.3A Active CN109753322B (zh) 2017-08-29 2017-08-29 一种ios平台上对应用程序的加速方法和装置

Country Status (1)

Country Link
CN (1) CN109753322B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111666586A (zh) * 2020-04-30 2020-09-15 平安科技(深圳)有限公司 共享库文件模拟方法、装置、计算机设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5506955A (en) * 1992-10-23 1996-04-09 International Business Machines Corporation System and method for monitoring and optimizing performance in a data processing system
CN103049628A (zh) * 2011-10-14 2013-04-17 深圳市快播科技有限公司 一种网络游戏的加速方法及***
CN103885776A (zh) * 2014-03-24 2014-06-25 广州华多网络科技有限公司 程序加速方法及其装置
CN104217164A (zh) * 2014-09-11 2014-12-17 工业和信息化部电子第五研究所 智能移动终端恶意软件的检测方法与装置
CN106126290A (zh) * 2016-06-27 2016-11-16 微梦创科网络科技(中国)有限公司 应用程序优化方法、装置及***
CN106161351A (zh) * 2015-03-31 2016-11-23 中兴通讯股份有限公司 流媒体服务与文件下载融合的方法、装置及cdn服务器
CN106230644A (zh) * 2016-08-31 2016-12-14 北京像素软件科技股份有限公司 一种客户端加速的检测方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103544095B (zh) * 2012-07-12 2015-09-16 腾讯科技(深圳)有限公司 服务器程序的监控方法及其***
AU2016283117A1 (en) * 2015-06-25 2018-01-25 Websafety, Inc. Management and control of mobile computing device using local and remote software agents

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5506955A (en) * 1992-10-23 1996-04-09 International Business Machines Corporation System and method for monitoring and optimizing performance in a data processing system
CN103049628A (zh) * 2011-10-14 2013-04-17 深圳市快播科技有限公司 一种网络游戏的加速方法及***
CN103885776A (zh) * 2014-03-24 2014-06-25 广州华多网络科技有限公司 程序加速方法及其装置
CN104217164A (zh) * 2014-09-11 2014-12-17 工业和信息化部电子第五研究所 智能移动终端恶意软件的检测方法与装置
CN106161351A (zh) * 2015-03-31 2016-11-23 中兴通讯股份有限公司 流媒体服务与文件下载融合的方法、装置及cdn服务器
CN106126290A (zh) * 2016-06-27 2016-11-16 微梦创科网络科技(中国)有限公司 应用程序优化方法、装置及***
CN106230644A (zh) * 2016-08-31 2016-12-14 北京像素软件科技股份有限公司 一种客户端加速的检测方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
"Android下的挂钩(hook)和代码注入(inject)";岁月静好,时光匆匆;《https://www.cnblogs.com/syjhsgcc/p/4788353.html》;20150907;第1-6页 *
"iOS逆向工程之fishhook";李峰峰;《https://imlifengfeng.github.io/article/692/》;20170706;第1-11页 *
"蜂窝脚本IOS加速器分析";管理员;《https://gslab.qq.com/article-252-1.html》;20170104;第1-2页 *
检测游戏是否存在作弊行为的方法;黄佳;《企业科技与发展》;20170310(第03期);第133-135页 *
管理员."蜂窝脚本IOS加速器分析".《https://gslab.qq.com/article-252-1.html》.2017, *

Also Published As

Publication number Publication date
CN109753322A (zh) 2019-05-14

Similar Documents

Publication Publication Date Title
CN110874212B (zh) 一种硬件加速方法、编译器以及设备
CN109213607B (zh) 一种多线程渲染的方法和装置
US20190258534A1 (en) Message oriented middleware with integrated rules engine
US11200099B2 (en) Kernel configuration information management method and device, and electronic apparatus
US20140059114A1 (en) Application service providing system and method and server apparatus and client apparatus for application service
CN110609677A (zh) 一种基于WebGL的图形绘制方法、装置及***
CN114153584A (zh) 游戏帧循环的任务处理方法、设备及存储介质
CN109753322B (zh) 一种ios平台上对应用程序的加速方法和装置
US10466974B2 (en) Independent expression animations
CN111555987B (zh) 限流配置方法、装置、设备及计算机存储介质
US10198784B2 (en) Capturing commands in a multi-engine graphics processing unit
US20170075682A1 (en) Power management data package provision method and apparatus
US20170236321A1 (en) Customizable state machine for visual effect insertion
CN112988355A (zh) 程序任务的调度方法、装置、终端设备及可读存储介质
CN111803939B (zh) 图像的渲染方法、装置及电子设备
CN114416381B (zh) 处理资源超分方法、装置、设备及存储介质
CN111258715A (zh) 多操作***渲染处理方法及装置
CN113687879B (zh) 跨平台框架与平台交互库的交互方法及装置
CN109766692A (zh) 判断隐私调用合理性的方法和装置及机器可读存储介质
EP2989535A1 (en) User interface response to an asynchronous manipulation
US10055253B2 (en) Reducing processor loading during housekeeping operations
CN114389951B (zh) 一种5g网络下的无缝升级方法、网络设备及存储介质
US11888685B1 (en) System, method, and computer program for a model driven non-real time radio intelligent controller (RIC) for O-RAN management and orchestration
CN108921953B (zh) 一种设备指令异步分发方法和装置
KR101474115B1 (ko) 싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant