CN111352673A - 一种新型Hook方法、存储介质及电子装置 - Google Patents
一种新型Hook方法、存储介质及电子装置 Download PDFInfo
- Publication number
- CN111352673A CN111352673A CN202010000957.1A CN202010000957A CN111352673A CN 111352673 A CN111352673 A CN 111352673A CN 202010000957 A CN202010000957 A CN 202010000957A CN 111352673 A CN111352673 A CN 111352673A
- Authority
- CN
- China
- Prior art keywords
- artmethod
- hook
- target
- springboard
- backup
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明提供了一种新型Hook方法,包括:S1:劫持HookFunction;S2:生成ArtMethod内存布局;S3:生成替换ArtMethod和备份ArtMethod;S4:判断当前环境,S4A:等待目标Method所对应类初始化;S4B:调用目标ArtMethod;S5:将目标ArtMethod拷贝到备份ArtMethod中;S6:替换一段跳板的ArtMethod为替换ArtMethod;S7:执行替换ArtMethod。本发明的有益效果是:可以在Java层上高效率运行且逻辑清晰的实现除Callback以外的hook使用方式。
Description
技术领域
本发明涉及移动互联网,特别涉及一种新型Hook方法、存储介质及电子装置。
背景技术
随着我国经济的发展,人民生活水平的提高,我国移动互联网日新月异,而随着我国互联网发展日新月异,如何提高移动设备的安全系数成为一个亟待解决的问题。
现有技术中,安卓的hook技术有PltGot替换hook技术、Xposed框架hook技术和substrate等native层内联hook框架。其中,Plt-Got替换hook技术由于对应用内存直接操作,只适用于hook应用自身native层函数,并不适用对全局(安卓系统中全部应用)的hook;Xposed框架仅在Java层hook,缺少native层hook的相关功能;而substrate等native层内联hook框架则兼容性、稳定性不高,相比较pc端的hook技术,安卓的hook技术还不够成熟,难以兼顾控制范围、稳定性和兼容性,并且在使用过程中,其仅支持Callback API,而不能使用其他的方法进行使用,同时由于Callback方式的固有弊端,其运行效率相对较低并且逻辑不够清晰,维护相对困难。
故市场亟需一种可以实现在Java层上实现除Callback以外的hook使用方式,一方面提高运行效率,另一方面逻辑清晰的的Hook方法、存储介质及电子装置。
发明内容
为了解决上述技术问题,本发明中披露了一种新型Hook方法、存储介质及电子装置,本发明的技术方案是这样实施的:
一种新型Hook方法,其特征在于:包括:S1:启动安卓APP,Hook模块劫持所有HookFunction;S2:使用Java反射机制读取ART,解析ART中的ArtMethod,生成ArtMethod内存布局;S3:所述Hook模块解析Java Annotation,并根据所述ArtMethod内存布局生成相应的替换ArtMethod和备份ArtMethod;S4:判断当前环境,若当前环境满足inline hook条件,进入S4A,否则进入S4B;S4A:暂存hook行为,等待所述ART中的目标Method所对应的所在的类初始化;S4B:调用所述目标ArtMethod所指向的方法,初始化所述目标ArtMethod所对应的方法所在的类并将DexCache中的目标方法覆盖成替换方法;S5:运行ArtMethod生成程序,将所述目标ArtMethod拷贝到所述备份ArtMethod中;S6:申请一段跳板,替换所述一段跳板的ArtMethod为替换ArtMethod;S7:执行所述替换ArtMethod的所指向的方法。
优选地,还包括:S6A:若所述目标ArtMethod的方法使用内联Hook,申请二段跳板;还包括S6B:所述一段跳板中的入口代码指向所述二段跳板,所述目标ArtMethod的入口代码被替换到二段跳板中。
优选地,所述S5还包括:S5A:禁止备份ArtMethod的JIT;若所述备份ArtMethod所指向的方法非static方法,所述方法设置为private方法;若调用所述目标Method,使用反射调用备份ArtMethod所指向的方法。
优选地,还包括S8:禁止目标Method的JIT;若所述Android版本大于8.0并且处于Debug模式下,设置目标Method为native方法。
优选地,还包括S9A:若使用Callback API,使用DexMaker动态生成替换方法;所述DexMaker收集参数并转发到桥函数;所述桥函数依次向注册的Callback API依次分发。
优选地,所述ART中CompilerOptions中的inline_max_code_units=0;所述inline_max_code_units=0通过调用Hook execve方法设置;所述全局线程的暂停与恢复使用Debug接口。
优选地,若所述Android版本小于8.0且代码长度不少于4行时,所述替换ArtMethod为内联方法。
优选地,还包括S9B:若使用Callback API,使用预置的桩函数;所述桩函数使用Python脚本生成;所述Python脚本的参数为32位整数。
一种新型Hook存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行一种新型Hook方法。
一种新型Hook电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行一种新型Hook方法。
实施本发明的技术方案可解决现有技术中仅能使用Callback API进行hook使用,从而导致性能低,逻辑不清晰,维护困难的技术问题;实施本发明的技术方案,可实现增加了Java Annotation式的使用方式,提高了逻辑的清晰度并提高了性能,维护便捷的技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一种实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种具体的实施例1的运行流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在一种具体的实施例1中,如图1所示,一种新型Hook方法,其特征在于:包括:S1:启动安卓APP,Hook模块劫持所有Hook Function;S2:使用Java反射机制读取ART,解析ART中的ArtMethod,生成ArtMethod内存布局;S3:所述Hook模块解析Java Annotation,并根据所述ArtMethod内存布局生成相应的替换ArtMethod和备份ArtMethod;S4:判断当前环境,若当前环境满足inline hook条件,进入S4A,否则进入S4B;S4A:暂存hook行为,等待所述ART中的目标Method所对应的所在的类初始化;S4B:调用所述目标ArtMethod所指向的方法,初始化所述目标ArtMethod所对应的方法所在的类并将DexCache中的目标方法覆盖成替换方法;S5:运行ArtMethod生成程序,将所述目标ArtMethod拷贝到所述备份ArtMethod中;S6:申请一段跳板,替换所述一段跳板的ArtMethod为替换ArtMethod;S7:执行所述替换ArtMethod的所指向的方法。
在该种具体的实施例1中,安卓APP启动之后,Hook模块检查所有的代码并劫持其中具有Hook Function功能的方法,然后使用Java的反射机制读取ART中的上层数据,并解析上层数据,从而获得相应的ArtMethod在ART中的内存布局,然后Hook模块解析JavaAnnotation,根据Java Annotation并结合ArtMethod内存布局基于原有的ArtMethod进行修改,从而生成新的用于替换原有的ArtMethod的替换ArtMethod,并且用于对原有的ArtMethod进行备份的备份ArtMethod;然后检查当前使用的安卓系统是否支持使用内联hook,如果支持使用内联hook,则先暂停进行hook,等待ART中的目标方法所对应的类初始化,然后再进行hook;如果不满足,调用一次目标方法,从而主动触发类的初始化,然后再将DexCache中的目标方法覆盖成替换方法;然后再申请一段跳板,一段跳板包含多个ArtMethod,其中0号ArtMethod为原有的目标ArtMethod,然后使用替换ArtMethod来替换,从而在执行时跳转到原hook的入口代码并执行;通过上述步骤,实现了在Java层上的JavaAnnotation式Hook,从而提高了易用性,逻辑更加清晰,并且提高了性能。
在一种优选的实施例2中,还包括:S6A:若所述目标ArtMethod的方法使用内联Hook,申请二段跳板;还包括S6B:所述一段跳板中的入口代码指向所述二段跳板,所述目标ArtMethod的入口代码被替换到二段跳板中。
在该种优选的实施例中,当目标ArtMethod所指向的方法为内联方法,即inline方法的时候,由于原入口代码已经被塞入跳板,所以我们需要再次申请一块跳板,即申请二段跳板,并将备份ArtMethod存储在二段跳板中,在该种情况下,由于一段跳板替换了目标ArtMethod的前4行代码,故在运行时会直接跳转到二段跳板,由二段跳板首先判断其是否为需要Hook的方法,若需要,则将二段跳板的设置为跳转到Hook入口,使用替换ArtMethod进行执行;若不需要,则跳转到备份ArtMethod中进行执行。
在一种优选的实施例3中,所述S5还包括:S5A:禁止备份ArtMethod的JIT;若所述备份ArtMethod所指向的方法非static方法,所述方法设置为private方法;若调用所述目标Method,使用反射调用备份ArtMethod所指向的方法。
在该种优选的实施例中,禁止备份ArtMethod的JIT可以禁止备份ArtMethod所指向方法进行执行;同时在该种情况下,备份ArtMethod所指向的方法一般为静态方法,若为非static方法,则必须为private,否则无法通过反射进行使用;当需要调用备份ArtMethod所指向的方法时,则利用Java的反射机制来实现。
一种优选的实施例4中,还包括S8:禁止目标Method的JIT;若所述Android版本大于8.0并且处于Debug模式下,设置目标Method为native方法。
在该种优选的实施例中,首先应当禁止目标Method的JIT,从而禁止目标Method代码的解释执行,根据不同的安卓系统等级适用于不同的操作模式,如果版本高于8.0并且处于Debug模式之下,设置目标Method为native方法;在Debug模式下,会导致程序的全局解释执行,而不会查询ArtMethod入口,故在Debug模式下必须将目标Method设置为native模式,从而命令其查询ArtMethod入口以实现相关的功能。
在一种优选的实施例5中,还包括S9A:若使用Callback API,使用DexMaker动态生成替换方法;所述DexMaker收集参数并转发到桥函数;所述桥函数依次向注册的CallbackAPI依次分发。
在该种优选的实施例中,若需要使用Callback API,通过运行在Android VM上的DexMaker动态生成Dex字节码的API,从而实现替换方法的动态生成,然后再使用桥函数为虚拟机搭桥,再使用DexMaker注册所需的参数,然后桥函数向经过注册的Callback依次分发。
在一种优选的实施例6中,还包括S9B:若使用Callback API,使用预置的桩函数;所述桩函数使用Python脚本生成;所述Python脚本的参数为32位整数;
在该种优选的实施例中,可使用预置的桩函数来实现Callback,桩函数使用Python脚本实现,Python脚本一方面编写起来较为简单,另一方面Python作为一种胶水语言具有良好的可扩展性,可以实现良好的可扩展性;在使用的过程中,Python脚本的参数为32位整数,如果是基本类型的参数,Python脚本参数会经过简单的转换得到相应的值,如果是对应的是对象参数,则对应的是相应的内存地址。
在一种优选的实施例7中,所述ART中CompilerOptions中的inline_max_code_units=0;所述inline_max_code_units=0通过调用Hook execve方法设置;所述全局线程的暂停与恢复使用Debug接口。
在该优选的实施例中,由于在运行过程中ART编译器中的dex2oat程序会进行内联优化,而hook可能会因为内联优化而失败,故在运行前需要对CompilerOptions进行设置,一般设置方法为调用Hook execve方法为dex2oat调用增加inline_max_code_units=0的标志,从而关闭运行过程中的内联优化,从而避免dex2oat中的内联优化导致Hook失败。
在一种优选的实施例8中,若所述Android版本小于8.0且代码长度不少于4行时,所述替换ArtMethod为内联方法。
在该种优选的实施例中,若Android版本小于8.0时,由于存在着大量跳转的情况,所以应当使用内联方法以提高函数的效率,但是假设代码少于4行,代码长度过短,则将入口代码替换即可。
在一种具体的实施例中9,一种新型Hook存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行一种新型Hook方法。
在该种具体的实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
在一种具体的实施例中10,一种新型Hook电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行一种新型Hook方法。
在该种具体的实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
需要指出的是,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种新型Hook方法,其特征在于:包括:
S1:启动安卓APP,Hook模块劫持所有Hook Function;
S2:使用Java反射机制读取ART,解析ART中的ArtMethod,生成ArtMethod内存布局;
S3:所述Hook模块解析Java Annotation,并根据所述ArtMethod内存布局生成相应的替换ArtMethod和备份ArtMethod;
S4:判断当前环境,若当前环境满足inline hook条件,进入S4A,否则进入S4B;
S4A:暂存hook行为,等待所述ART中的目标Method所对应的所在的类初始化;
S4B:调用所述目标ArtMethod所指向的方法,初始化所述目标ArtMethod所对应的方法所在的类并将DexCache中的目标方法覆盖成替换方法;
S5:运行ArtMethod生成程序,将所述目标ArtMethod拷贝到所述备份ArtMethod中;
S6:申请一段跳板,替换所述一段跳板的ArtMethod为替换ArtMethod;
S7:执行所述替换ArtMethod的所指向的方法。
2.根据权利要求1所述的一种新型Hook方法,其特征在于:还包括:S6A:若所述目标ArtMethod的方法使用内联Hook,申请二段跳板;
还包括S6B:所述一段跳板中的入口代码指向所述二段跳板,所述目标ArtMethod的入口代码被替换到二段跳板中。
3.根据权利要求2所述的一种新型Hook方法,其特征在于:所述S5还包括:S5A:禁止备份ArtMethod的JIT;
若所述备份ArtMethod所指向的方法非static方法,所述方法设置为private方法;若调用所述目标Method,使用反射调用备份ArtMethod所指向的方法。
4.根据权利要求3所述的一种新型Hook方法,其特征在于:还包括S8:禁止目标Method的JIT;若所述Android版本大于8.0并且处于Debug模式下,设置目标Method为native方法。
5.根据权利要求4所述的一种新型Hook方法,其特征在于:还包括S9A:若使用CallbackAPI,使用DexMaker动态生成替换方法;
所述DexMaker收集参数并转发到桥函数;
所述桥函数依次向注册的Callback API依次分发。
6.根据权利要求4所述的一种新型Hook方法,其特征在于:还包括S9B:若使用CallbackAPI,使用预置的桩函数;所述桩函数使用Python脚本生成;所述Python脚本的参数为32位整数。
7.根据权利要求1-6任一所述的一种新型Hook方法,其特征在于:所述ART中CompilerOptions中的inline_max_code_units=0;所述inline_max_code_units=0通过调用Hook execve方法设置;
所述全局线程的暂停与恢复使用Debug接口。
8.根据权利要求7任一所述的一种新型Hook方法,其特征在于:
若所述Android版本小于8.0且代码长度不少于4行时,所述替换ArtMethod为内联方法。
9.一种新型Hook存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至6任一项中所述的方法。
10.一种新型Hook电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至6任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010000957.1A CN111352673B (zh) | 2020-01-02 | 2020-01-02 | 一种新型Hook方法、存储介质及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010000957.1A CN111352673B (zh) | 2020-01-02 | 2020-01-02 | 一种新型Hook方法、存储介质及电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111352673A true CN111352673A (zh) | 2020-06-30 |
CN111352673B CN111352673B (zh) | 2023-10-03 |
Family
ID=71192238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010000957.1A Active CN111352673B (zh) | 2020-01-02 | 2020-01-02 | 一种新型Hook方法、存储介质及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111352673B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6658657B1 (en) * | 2000-03-31 | 2003-12-02 | Intel Corporation | Method and apparatus for reducing the overhead of virtual method invocations |
US20070113282A1 (en) * | 2005-11-17 | 2007-05-17 | Ross Robert F | Systems and methods for detecting and disabling malicious script code |
US20120254830A1 (en) * | 2008-10-06 | 2012-10-04 | The Mathworks, Inc. | Verification of computer-executable code generated from a model |
US9483283B1 (en) * | 2014-11-20 | 2016-11-01 | Apptimize, Inc. | Enhanced code callback |
CN106990955A (zh) * | 2017-03-09 | 2017-07-28 | 武汉斗鱼网络科技有限公司 | 一种对应用程序进行打点的方法和系统 |
CN107621939A (zh) * | 2017-09-18 | 2018-01-23 | 北京奇虎科技有限公司 | 一种应用优化方法及装置 |
CN108021357A (zh) * | 2017-11-20 | 2018-05-11 | 北京奇虎科技有限公司 | 程序调用的优化方法及装置 |
KR20190043750A (ko) * | 2017-10-19 | 2019-04-29 | 한국전자통신연구원 | 덱스 파일의 메모리 적재 장치 및 방법 |
US20190129733A1 (en) * | 2017-10-30 | 2019-05-02 | National Taiwan University | Android dynamic framework and a method thereof |
CN109814948A (zh) * | 2018-12-29 | 2019-05-28 | 360企业安全技术(珠海)有限公司 | 基于xposed框架对native层函数进行hook的方法、装置及电子装置 |
CN110046497A (zh) * | 2018-01-16 | 2019-07-23 | 腾讯科技(深圳)有限公司 | 一种函数挂钩实现方法、装置和存储介质 |
-
2020
- 2020-01-02 CN CN202010000957.1A patent/CN111352673B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6658657B1 (en) * | 2000-03-31 | 2003-12-02 | Intel Corporation | Method and apparatus for reducing the overhead of virtual method invocations |
US20070113282A1 (en) * | 2005-11-17 | 2007-05-17 | Ross Robert F | Systems and methods for detecting and disabling malicious script code |
US20120254830A1 (en) * | 2008-10-06 | 2012-10-04 | The Mathworks, Inc. | Verification of computer-executable code generated from a model |
US9483283B1 (en) * | 2014-11-20 | 2016-11-01 | Apptimize, Inc. | Enhanced code callback |
CN106990955A (zh) * | 2017-03-09 | 2017-07-28 | 武汉斗鱼网络科技有限公司 | 一种对应用程序进行打点的方法和系统 |
CN107621939A (zh) * | 2017-09-18 | 2018-01-23 | 北京奇虎科技有限公司 | 一种应用优化方法及装置 |
KR20190043750A (ko) * | 2017-10-19 | 2019-04-29 | 한국전자통신연구원 | 덱스 파일의 메모리 적재 장치 및 방법 |
US20190129733A1 (en) * | 2017-10-30 | 2019-05-02 | National Taiwan University | Android dynamic framework and a method thereof |
CN108021357A (zh) * | 2017-11-20 | 2018-05-11 | 北京奇虎科技有限公司 | 程序调用的优化方法及装置 |
CN110046497A (zh) * | 2018-01-16 | 2019-07-23 | 腾讯科技(深圳)有限公司 | 一种函数挂钩实现方法、装置和存储介质 |
CN109814948A (zh) * | 2018-12-29 | 2019-05-28 | 360企业安全技术(珠海)有限公司 | 基于xposed框架对native层函数进行hook的方法、装置及电子装置 |
Non-Patent Citations (6)
Title |
---|
OSTCB: "Android ART Hook & 注入实现细节", 《HTTPS://BLOG.CSDN.NET/GANYAO939543405/ARTICLE/DETAILS/89205821》 * |
OSTCB: "Android ART Hook & 注入实现细节", 《HTTPS://BLOG.CSDN.NET/GANYAO939543405/ARTICLE/DETAILS/89205821》, 11 April 2019 (2019-04-11), pages 2 - 29 * |
OSTCB: "Android ART Hook 实现 - SandHook", 《HTTPS://BLOG.CSDN.NET/GANYAO939543405/ARTICLE/DETAILS/86661040》 * |
OSTCB: "Android ART Hook 实现 - SandHook", 《HTTPS://BLOG.CSDN.NET/GANYAO939543405/ARTICLE/DETAILS/86661040》, 27 January 2019 (2019-01-27) * |
常生果: "AndroidHook机制——浅谈", 《HTTPS://BLOG.CSDN.NET/ZHYOOO123/ARTICLE/DETAILS/81712114》 * |
常生果: "AndroidHook机制——浅谈", 《HTTPS://BLOG.CSDN.NET/ZHYOOO123/ARTICLE/DETAILS/81712114》, 16 August 2018 (2018-08-16), pages 1 * |
Also Published As
Publication number | Publication date |
---|---|
CN111352673B (zh) | 2023-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Olivier et al. | A binary-compatible unikernel | |
CN109697060B (zh) | 视频特效系统及其生成方法、装置、设备和存储介质 | |
US7203941B2 (en) | Associating a native resource with an application | |
US6948164B2 (en) | Method and system for modifying executable code to add additional functionality | |
JP5415557B2 (ja) | デバッギングのためのユーザ・スクリプト・コードの変換 | |
US8739160B1 (en) | Methods and systems for safe execution of guest code in virtual machine context | |
JP4901075B2 (ja) | コンピュータ読取可能な媒体、方法及びコンピューティングデバイス | |
US20090204963A1 (en) | Reducing memory usage of a data processing task performed using a virtual machine | |
US8607203B1 (en) | Test automation framework using dependency injection | |
CN107908402A (zh) | Java服务端热修复方法和系统 | |
JP2003196107A (ja) | エミュレートされるコードとネイティブコードとを統合するシステムおよび方法 | |
US6243668B1 (en) | Instruction set interpreter which uses a register stack to efficiently map an application register state | |
US20110302563A1 (en) | Program structure recovery using multiple languages | |
US20090249311A1 (en) | Sharing a native module of compiled code using an abstraction module of interpreted code in a virtual machine environment | |
US6834391B2 (en) | Method and apparatus for automated native code isolation | |
US20050071856A1 (en) | Dynamically loadable stub modules | |
US8281296B2 (en) | Cross-ISA inlining in a system virtual machine | |
WO2007008506A2 (en) | Selective pre-compilation of virtual code to enhance emulator performance | |
CN106850650B (zh) | 用于游戏客户端访问数据的方法及客户端游戏系统 | |
US8904346B1 (en) | Method and system for automated load testing of web applications | |
US20060070028A1 (en) | Procedure invocation in an integrated computing environment having both compiled and interpreted code segments | |
CN109947407B (zh) | 一种数据获取方法及装置 | |
JP5129904B2 (ja) | 実行時における関数の実行性能を増大させるための方法、計算機システム、実行時における関数の実行性能を増大させるための、コンピュータプログラムを格納するコンピュータ読み取り可能媒体 | |
CN111352673B (zh) | 一种新型Hook方法、存储介质及电子装置 | |
CN111158863B (zh) | 中断控制器的处理方法、装置及电子设备 |
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 |