CN106874022A - 一种热补丁注入方法及装置 - Google Patents
一种热补丁注入方法及装置 Download PDFInfo
- Publication number
- CN106874022A CN106874022A CN201510924194.9A CN201510924194A CN106874022A CN 106874022 A CN106874022 A CN 106874022A CN 201510924194 A CN201510924194 A CN 201510924194A CN 106874022 A CN106874022 A CN 106874022A
- Authority
- CN
- China
- Prior art keywords
- instruction
- target
- code
- patch
- address
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种热补丁注入方法及装置,涉及计算机软件领域,该方法将补丁代码加载到目标进程中,在确定被替换的代码中首地址开始的连续N行指令没有被任何线程运行时,将该N行指令修改为跳转到补丁代码的首地址的指令,在运行过程中即可实现由被替换的代码跳转到补丁代码,从而实现热补丁注入,不需要被注入的进程中有事先编译,也减小了热补丁注入时的消耗。由于在将该N行指令修改为跳转到补丁代码的首地址的指令前,确定了被替换的代码中首地址开始的连续N行指令没有被任何线程运行,也减小了补丁加载时的运行风险。
Description
技术领域
本发明涉及计算机软件领域,尤其涉及一种热补丁注入方法及装置。
背景技术
对于正在运行的软件***,想要进行一些功能扩展或者修补一些软件问题,而又要求不能复位***,这就需要给***打热补丁。
热补丁就是把原来软件***中的想要替换的函数单独修改重新编译组成热补丁单元,再通过热补丁加载工具加载到运行的目标软件***中,替换原始函数。
然而,目前使用的热补丁技术有两个问题,一是需要在被注入的进程中有事先编译进去的代码负责补丁函数对被补函数的替换;二是当将被替换函数的头几条指令修改为跳转到新的补丁函数时,补丁加载存在风险,解决这个风险的现有方案都存在应用面窄,不通用,增加额外的内存与cpu的消耗的问题。
发明内容
本发明提供一种热补丁注入方法及装置,以实现不依赖被注入的进程中有事先编译进去的代码进行热补丁注入,并减小热补丁注入时的消耗。
依据本发明的一个方面,提供一种热补丁注入方法,包括:
将补丁代码加载到目标进程中;
确定被替换的代码中首地址开始的连续N行指令没有被任何线程运行,所述N大于或等于目标体系结构中跳转到内存任意地址所需要的最小指令数;
将所述N行指令修改为跳转到补丁代码的首地址的指令。
进一步,所述确定被替换的代码中首地址开始的连续N行指令没有被任何线程运行,具体包括:
暂停目标进程内的所有线程;
确定被替换的代码中首地址开始的连续N行指令为目标指令,并将该目标指令之外的至少一条指令修改为异常指令;
让所有指针处于目标指令中的线程继续执行,当所有线程均被异常捕获工具捕捉时,确定所述目标指令没有被任何线程运行;
此时,所述将所述N行指令修改为跳转到补丁代码的首地址的指令后,还包括:
将所述修改为异常指令的至少一条指令恢复为原指令;
继续执行目标进程内的所有线程。
更进一步,所述将该目标指令之外的至少一条指令修改为异常指令,具体包括:
将该目标指令的后一条指令修改为异常指令。
较佳的,所述将补丁代码加载到目标进程中,具体包括:
通过代码注入将补丁代码加载到目标进程中。
本发明实施例还相应提供一种热补丁注入装置,包括:
加载单元,用于将补丁代码加载到目标进程中;
确定单元,用于确定被替换的代码中首地址开始的连续N行指令没有被任何线程运行,所述N大于或等于目标体系结构中跳转到内存任意地址所需要的最小指令数;
修改单元,用于将所述N行指令修改为跳转到补丁代码的首地址的指令。
进一步,所述确定单元具体用于:
暂停目标进程内的所有线程;
确定被替换的代码中首地址开始的连续N行指令为目标指令,并将该目标指令之外的至少一条指令修改为异常指令;
让所有指针处于目标指令中的线程继续执行,当所有线程均被异常捕获工具捕捉时,确定所述目标指令没有被任何线程运行;
此时,所述修改单元还用于:
将所述N行指令修改为跳转到补丁代码的首地址的指令后,将所述修改为异常指令的至少一条指令恢复为原指令,并继续执行目标进程内的所有线程。
更进一步,所述确定单元将该目标指令之外的至少一条指令修改为异常指令,具体包括:
将该目标指令的后一条指令修改为异常指令。
较佳的,所述加载单元具体用于:
通过代码注入将补丁代码加载到目标进程中。
本发明有益效果如下:通过本发明实施例提供的热补丁注入方法及装置,将补丁代码加载到目标进程中,在确定被替换的代码中首地址开始的连续N行指令没有被任何线程运行时,将该N行指令修改为跳转到补丁代码的首地址的指令,在运行过程中即可实现由被替换的代码跳转到补丁代码,从而实现热补丁注入,不需要被注入的进程中有事先编译,也减小了热补丁注入时的消耗。由于在将该N行指令修改为跳转到补丁代码的首地址的指令前,确定了被替换的代码中首地址开始的连续N行指令没有被任何线程运行,也减小了补丁加载时的运行风险。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的热补丁注入方法流程图;
图2为本发明实施例提供的具体实例中的热补丁注入方法流程图;
图3为本发明实施例提供的热补丁注入装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供的热补丁注入方法,包括:
步骤S101、将补丁代码加载到目标进程中;
步骤S102、确定被替换的代码中首地址开始的连续N行指令没有被任何线程运行,N大于或等于目标体系结构中跳转到内存任意地址所需要的最小指令数;
步骤S103、将N行指令修改为跳转到补丁代码的首地址的指令。
由于在确定被替换的代码中首地址开始的连续N行指令没有被任何线程运行时,将该N行指令修改为跳转到补丁代码的首地址的指令,在运行过程中即可实现由被替换的代码跳转到补丁代码,从而实现热补丁注入,不需要被注入的进程中有事先编译,也减小了热补丁注入时的消耗。由于在将该N行指令修改为跳转到补丁代码的首地址的指令前,确定了被替换的代码中首地址开始的连续N行指令没有被任何线程运行,也减小了补丁加载时的运行风险。
该方法可以由程序员执行,也可以由热补丁注入工具或者包含热补丁注入工具的装置来执行。
具体的,可以利用异常捕获工具来确定被替换的代码中首地址开始的连续N行指令没有被任何线程运行,此时,步骤S102中,确定被替换的代码中首地址开始的连续N行指令没有被任何线程运行,具体包括:
暂停目标进程内的所有线程;
确定被替换的代码中首地址开始的连续N行指令为目标指令,并将该目标指令之外的至少一条指令修改为异常指令;
让所有指针处于目标指令中的线程继续执行,当所有线程均被异常捕获工具捕捉时,确定目标指令没有被任何线程运行;
此时,步骤S103中,将N行指令修改为跳转到补丁代码的首地址的指令后,还包括:
将修改为异常指令的至少一条指令恢复为原指令;
继续执行目标进程内的所有线程。
当然,本领域技术人员也可以采用其它的方法或利用其它工具来确定被替换的代码中首地址开始的连续N行指令没有被任何线程运行,此处不再一一说明。
进一步,为提高异常捕获的效率,可以将该目标指令的后一条指令修改为异常指令,此时异常捕获的效率较高,修改量较少。此时,将该目标指令之外的至少一条指令修改为异常指令,具体包括:
将该目标指令的后一条指令修改为异常指令。
较佳的,可以通过代码注入等工具来实现补丁代码的加载,此时,步骤S101中,将补丁代码加载到目标进程中,具体包括:
通过代码注入将补丁代码加载到目标进程中。
下面,通过一个具体的实例对本发明实施例提供的热补丁注入方法进行说明:
下面假设目的进程PROC中存在函数FUNC1,热补丁PATCH模块中存在函数FUNC2,目标体系结构中跳转到内存任意地址需要N条指令,欲将FUNC1替换为补丁函数FUNC2,如图2所示,详细实施步骤如下:
步骤S201、通过目标操作***提供的基础api组合实现代码注入,把补丁模块PATCH加载到PROC的进程空间;
步骤S202、暂停进程PROC内的所有线程;
步骤S203、遍历所有线程,确定是否有pc指针处于欲替换指令区域中前N条指令的线程,如果是,执行步骤S204,否则,执行步骤S208;
步骤S204、找到函数FUNC1的首地址,将首地址开始的第N+1条指令先记录下来,再修改为异常指令,其中,N等于目标体系结构中跳转到内存任意地址所需要的最小指令数;
步骤S205、让所有pc指针处于欲替换指令区域中前N条指令的线程继续执行;
步骤S206、确定继续执行的线程都被异常捕获工具捕捉到;
步骤S207、把FUNC1的第N+1条指令恢复为原始的正常指令;
步骤S208、将FUNC1的前N条指令修改为跳转到补丁函数FUNC2首地址的指令;
正在执行函数FUNC1前N条指令的线程执行到FUNC1的第N+1条指令时,会触发刚才放置的异常指令从而产生异常,当所有这样的线程都被异常捕获工具捕捉到时,此时进程PROC内已经没有任何线程在运行FUNC1的前N条指令了,因此可以安全的去修改FUNC1的前N条指令了,此时即可将这N条指令修改为跳转到补丁函数FUNC2首地址的指令,并把FUNC1的第N+1条指令恢复为原始的正常指令;
步骤S209、让进程PROC内的所有线程恢复正常运行,至此安全的完成了任意条指令的替换。
上述步骤可以由程序员执行,也可以由热补丁注入工具或者包含热补丁注入工具的装置来执行。
本发明实施例还相应提供一种热补丁注入装置,该装置可以具体为热补丁注入工具,也可以具体为包含热补丁注入工具的装置,如图3所示,该装置包括:
加载单元301,用于将补丁代码加载到目标进程中;
确定单元302,用于确定被替换的代码中首地址开始的连续N行指令没有被任何线程运行,N大于或等于目标体系结构中跳转到内存任意地址所需要的最小指令数;
修改单元303,用于将N行指令修改为跳转到补丁代码的首地址的指令。
进一步,确定单元302具体用于:
暂停目标进程内的所有线程;
确定被替换的代码中首地址开始的连续N行指令为目标指令,并将该目标指令之外的至少一条指令修改为异常指令;
让所有指针处于目标指令中的线程继续执行,当所有线程均被异常捕获工具捕捉时,确定目标指令没有被任何线程运行;
此时,修改单元303还用于:
将N行指令修改为跳转到补丁代码的首地址的指令后,将修改为异常指令的至少一条指令恢复为原指令,并继续执行目标进程内的所有线程。
更进一步,为提高热补丁注入的效率,确定单元302将该目标指令之外的至少一条指令修改为异常指令,具体包括:
将该目标指令的后一条指令修改为异常指令。
较佳的,加载单元301具体用于:
通过代码注入将补丁代码加载到目标进程中。
通过本发明实施例提供的热补丁注入方法及装置,将补丁代码加载到目标进程中,在确定被替换的代码中首地址开始的连续N行指令没有被任何线程运行时,将该N行指令修改为跳转到补丁代码的首地址的指令,在运行过程中即可实现由被替换的代码跳转到补丁代码,从而实现热补丁注入,不需要被注入的进程中有事先编译,也减小了热补丁注入时的消耗。由于在将该N行指令修改为跳转到补丁代码的首地址的指令前,确定了被替换的代码中首地址开始的连续N行指令没有被任何线程运行,也减小了补丁加载时的运行风险。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是其与其他实施例的不同之处。尤其对于装置实施例而言,由于其基本相似与方法实施例,所以,描述的比较简单,相关之处参见方法实施例的部分说明即可。
虽然通过实施例描述了本申请,本领域的技术人员知道,本申请有许多变形和变化而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种热补丁注入方法,其特征在于,包括:
将补丁代码加载到目标进程中;
确定被替换的代码中首地址开始的连续N行指令没有被任何线程运行,所述N大于或等于目标体系结构中跳转到内存任意地址所需要的最小指令数;
将所述N行指令修改为跳转到补丁代码的首地址的指令。
2.如权利要求1所述的方法,其特征在于,所述确定被替换的代码中首地址开始的连续N行指令没有被任何线程运行,具体包括:
暂停目标进程内的所有线程;
确定被替换的代码中首地址开始的连续N行指令为目标指令,并将该目标指令之外的至少一条指令修改为异常指令;
让所有指针处于目标指令中的线程继续执行,当所有线程均被异常捕获工具捕捉时,确定所述目标指令没有被任何线程运行;
所述将所述N行指令修改为跳转到补丁代码的首地址的指令后,还包括:
将所述修改为异常指令的至少一条指令恢复为原指令;
继续执行目标进程内的所有线程。
3.如权利要求2所述的方法,其特征在于,所述将该目标指令之外的至少一条指令修改为异常指令,具体包括:
将该目标指令的后一条指令修改为异常指令。
4.如权利要求1所述的方法,其特征在于,所述将补丁代码加载到目标进程中,具体包括:
通过代码注入将补丁代码加载到目标进程中。
5.一种热补丁注入装置,其特征在于,包括:
加载单元,用于将补丁代码加载到目标进程中;
确定单元,用于确定被替换的代码中首地址开始的连续N行指令没有被任何线程运行,所述N大于或等于目标体系结构中跳转到内存任意地址所需要的最小指令数;
修改单元,用于将所述N行指令修改为跳转到补丁代码的首地址的指令。
6.如权利要求5所述的装置,其特征在于,所述确定单元具体用于:
暂停目标进程内的所有线程;
确定被替换的代码中首地址开始的连续N行指令为目标指令,并将该目标指令之外的至少一条指令修改为异常指令;
让所有指针处于目标指令中的线程继续执行,当所有线程均被异常捕获工具捕捉时,确定所述目标指令没有被任何线程运行;
所述修改单元还用于:
将所述N行指令修改为跳转到补丁代码的首地址的指令后,将所述修改为异常指令的至少一条指令恢复为原指令,并继续执行目标进程内的所有线程。
7.如权利要求6所述的装置,其特征在于,所述确定单元将该目标指令之外的至少一条指令修改为异常指令,具体包括:
将该目标指令的后一条指令修改为异常指令。
8.如权利要求5所述的装置,其特征在于,所述加载单元具体用于:
通过代码注入将补丁代码加载到目标进程中。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510924194.9A CN106874022B (zh) | 2015-12-11 | 2015-12-11 | 一种热补丁注入方法及装置 |
PCT/CN2016/091753 WO2017096917A1 (zh) | 2015-12-11 | 2016-07-26 | 一种热补丁注入方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510924194.9A CN106874022B (zh) | 2015-12-11 | 2015-12-11 | 一种热补丁注入方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106874022A true CN106874022A (zh) | 2017-06-20 |
CN106874022B CN106874022B (zh) | 2021-06-25 |
Family
ID=59013711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510924194.9A Active CN106874022B (zh) | 2015-12-11 | 2015-12-11 | 一种热补丁注入方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106874022B (zh) |
WO (1) | WO2017096917A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107357622A (zh) * | 2017-07-17 | 2017-11-17 | 迈普通信技术股份有限公司 | 热补丁实现方法及通信设备 |
CN110308920A (zh) * | 2019-05-31 | 2019-10-08 | 北京控制工程研究所 | 一种不影响正常运行的在轨修改星上产品软件的方法 |
CN110618824A (zh) * | 2018-06-20 | 2019-12-27 | 中移(杭州)信息技术有限公司 | 一种软件升级方法、装置、介质和设备 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112631639B (zh) * | 2020-12-23 | 2022-11-04 | 苏州三六零智能安全科技有限公司 | 补丁代码添加方法、装置、设备及计算机可读存储介质 |
CN112559085B (zh) * | 2020-12-23 | 2022-11-04 | 苏州三六零智能安全科技有限公司 | 物联网设备的插件加载方法、设备、存储介质及装置 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6310239A (ja) * | 1986-06-30 | 1988-01-16 | Nec Corp | 高級言語のパツチ生成方式 |
CN101561764A (zh) * | 2009-05-18 | 2009-10-21 | 华为技术有限公司 | 一种多核环境下的补丁方法与补丁装置 |
CN101799763A (zh) * | 2009-02-10 | 2010-08-11 | 华为技术有限公司 | 内核在线补丁的方法、装置和*** |
CN102156661A (zh) * | 2010-02-11 | 2011-08-17 | 华为技术有限公司 | 在线补丁的激活方法、装置及*** |
CN102609241A (zh) * | 2012-01-19 | 2012-07-25 | 中兴通讯股份有限公司 | 热补丁方法及装置 |
CN102831054A (zh) * | 2012-06-30 | 2012-12-19 | 华为技术有限公司 | 程序断点处理方法及装置 |
CN103218262A (zh) * | 2010-02-11 | 2013-07-24 | 华为技术有限公司 | 在线补丁的激活方法、装置及*** |
CN103345412A (zh) * | 2013-07-10 | 2013-10-09 | 华为技术有限公司 | 打补丁的方法及装置 |
US20150007156A1 (en) * | 2013-06-26 | 2015-01-01 | Sap Ag | Injecting patch code at runtime |
CN104424037A (zh) * | 2013-08-29 | 2015-03-18 | 中兴通讯股份有限公司 | 一种动态补丁函数的方法及装置 |
WO2015102631A1 (en) * | 2014-01-02 | 2015-07-09 | Hewlett Packard Development Company, L.P. | Distributed kernel thread list processing for kernel patching |
US9164754B1 (en) * | 2013-12-18 | 2015-10-20 | Amazon Technologies, Inc. | Runtime patching of native-code programs |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530184B (zh) * | 2013-10-24 | 2017-04-12 | 华为技术有限公司 | 一种在线补丁激活的方法及装置 |
-
2015
- 2015-12-11 CN CN201510924194.9A patent/CN106874022B/zh active Active
-
2016
- 2016-07-26 WO PCT/CN2016/091753 patent/WO2017096917A1/zh active Application Filing
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6310239A (ja) * | 1986-06-30 | 1988-01-16 | Nec Corp | 高級言語のパツチ生成方式 |
CN101799763A (zh) * | 2009-02-10 | 2010-08-11 | 华为技术有限公司 | 内核在线补丁的方法、装置和*** |
CN101561764A (zh) * | 2009-05-18 | 2009-10-21 | 华为技术有限公司 | 一种多核环境下的补丁方法与补丁装置 |
CN102156661A (zh) * | 2010-02-11 | 2011-08-17 | 华为技术有限公司 | 在线补丁的激活方法、装置及*** |
CN103218262A (zh) * | 2010-02-11 | 2013-07-24 | 华为技术有限公司 | 在线补丁的激活方法、装置及*** |
CN102609241A (zh) * | 2012-01-19 | 2012-07-25 | 中兴通讯股份有限公司 | 热补丁方法及装置 |
CN102831054A (zh) * | 2012-06-30 | 2012-12-19 | 华为技术有限公司 | 程序断点处理方法及装置 |
US20150007156A1 (en) * | 2013-06-26 | 2015-01-01 | Sap Ag | Injecting patch code at runtime |
CN103345412A (zh) * | 2013-07-10 | 2013-10-09 | 华为技术有限公司 | 打补丁的方法及装置 |
CN104424037A (zh) * | 2013-08-29 | 2015-03-18 | 中兴通讯股份有限公司 | 一种动态补丁函数的方法及装置 |
US9164754B1 (en) * | 2013-12-18 | 2015-10-20 | Amazon Technologies, Inc. | Runtime patching of native-code programs |
WO2015102631A1 (en) * | 2014-01-02 | 2015-07-09 | Hewlett Packard Development Company, L.P. | Distributed kernel thread list processing for kernel patching |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107357622A (zh) * | 2017-07-17 | 2017-11-17 | 迈普通信技术股份有限公司 | 热补丁实现方法及通信设备 |
CN110618824A (zh) * | 2018-06-20 | 2019-12-27 | 中移(杭州)信息技术有限公司 | 一种软件升级方法、装置、介质和设备 |
CN110618824B (zh) * | 2018-06-20 | 2023-07-21 | 中移(杭州)信息技术有限公司 | 一种软件升级方法、装置、介质和设备 |
CN110308920A (zh) * | 2019-05-31 | 2019-10-08 | 北京控制工程研究所 | 一种不影响正常运行的在轨修改星上产品软件的方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2017096917A1 (zh) | 2017-06-15 |
CN106874022B (zh) | 2021-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106874022A (zh) | 一种热补丁注入方法及装置 | |
CN101799763B (zh) | 内核在线补丁的方法、装置和*** | |
KR20170132296A (ko) | 연합 기반 메모리 관리 | |
CN107480476B (zh) | 一种基于ELF感染的Android本地层指令编译虚拟化加壳方法 | |
KR20160079007A (ko) | 복수의 스레드를 처리하는 데이터 처리 장치 및 방법 | |
CN105159738A (zh) | 一种热补丁实现方法及*** | |
CN105022956A (zh) | 一种抵御代码重用攻击的方法 | |
CN104317612B (zh) | 龙芯处理器内存控制器参数交互式调试的方法 | |
CN106201636B (zh) | 一种dsp片外代码动态加载方法及装置 | |
CN103440457A (zh) | 基于进程模拟的二进制程序分析*** | |
CN106874195A (zh) | 一种针对android应用的bug修复和持续交付方案 | |
CN106020905A (zh) | 一种微控制器固件开发与更新的方法及*** | |
CN102930903B (zh) | 一种内存测试方法及设备 | |
CN103268284A (zh) | 一种星敏感器在轨维护方法 | |
CN106295340A (zh) | 一种程序文件恢复***及方法 | |
CN104679561A (zh) | 一种动态链接库文件加载的方法及*** | |
CN103645888A (zh) | 一种自动构建操作***的***及方法 | |
CN103544415B (zh) | 一种移动平台应用软件的加固方法 | |
CN104063329B (zh) | 64位立即数处理方法及装置 | |
CN103902303A (zh) | 基于配置表的程序固化方法 | |
CN106293825A (zh) | 一种基于硬件信号量的多核启动同步方法 | |
CN107957953A (zh) | 一种回归测试的方法 | |
CN106126211A (zh) | 一种支持调试接口的mcu在线编程*** | |
CN102819445A (zh) | 变电站综自软件在嵌入式***硬件平台上的快速移植方法 | |
Spink et al. | Efficient code generation in a region-based dynamic binary translator |
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 |