CN111782334A - 一种动态链接库文件虚拟化方法、存储介质及终端设备 - Google Patents
一种动态链接库文件虚拟化方法、存储介质及终端设备 Download PDFInfo
- Publication number
- CN111782334A CN111782334A CN201910272180.1A CN201910272180A CN111782334A CN 111782334 A CN111782334 A CN 111782334A CN 201910272180 A CN201910272180 A CN 201910272180A CN 111782334 A CN111782334 A CN 111782334A
- Authority
- CN
- China
- Prior art keywords
- function
- protected
- virtual machine
- dynamic link
- link library
- 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
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000006870 function Effects 0.000 claims abstract description 138
- 238000004806 packaging method and process Methods 0.000 claims abstract description 8
- 230000000694 effects Effects 0.000 abstract description 6
- 241000282414 Homo sapiens Species 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 241001391944 Commicarpus scandens Species 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种动态链接库文件虚拟化方法、存储介质及终端设备,其包括:提取源文件中待虚拟化保护的被保护函数,并为提取到的被保护函数增设虚拟化保护标识;根据所述虚拟化保护标识对所述源文件进行虚拟化,并根据虚拟后的源文件生成目标文件;将所述目标文件与虚拟机解释器链接,以生成新的动态链接库文件;将生成的新的动态链接库文件存放APP中,并重新签名打包。这样,通过将需要被保护的函数进行编译,并生成新的动态链接库文件,从而使新的动态链接库文件具有代码和数据隐藏、反篡改,反Dump等效果,能够大大增加保护的强度。
Description
技术领域
本发明涉及计算机应用技术技术领域,特别涉及一种动态链接库文件虚拟化方法、存储介质及终端设备。
背景技术
虚拟机保护技术是移动信息安全领域一种新的软件保护技术,其实现原理是:定义一套指令集,将要被保护的源代码翻译为人类难于理解的虚拟机字节码,在程序运行时再由虚拟机解释器对这些字节码进行解释执行。
目前,传统的Android 动态链接库文件防护技术,主要是对动态链接库进行加壳或者在编译的过程中通过编译器进行代码混淆,加壳技术固定,容易被破解,而混淆也有很多开源的反混淆框架,容易被针对。
因而现有技术还有待改进和提高。
发明内容
本发明要解决的技术问题在于,针对现有技术的不足,提供一种动态链接库文件虚拟化方法、存储介质及终端设备,以解决现有技术中Android系统中动态链接库容易被破解、安全性低的问题。
为了解决上述技术问题,本发明所采用的技术方案如下:
一种动态链接库文件虚拟化方法,其包括:
提取源文件中待虚拟化保护的被保护函数,并为提取到的被保护函数增设虚拟化保护标识;
根据所述虚拟化保护标识对所述源文件进行虚拟化,并根据虚拟后的源文件生成目标文件;
将所述目标文件与虚拟机解释器链接,以生成新的动态链接库文件;
将生成的新的动态链接库文件存放APP中,并重新签名打包。
所述动态链接库文件虚拟化方法,其中,所述提取源文件中待虚拟化保护的被保护函数,并为提取到的被保护函数增设虚拟化保护标识具体包括:
提取源文件中待虚拟化保护的被保护函数,并为提取到的被保护函数增设虚拟化保护标识;
通过编译器对提取到的被保护函数进行编译,并在编译时加入所述虚拟化保护标识。
所述动态链接库文件虚拟化方法,其中,所述根据所述虚拟化保护标识对所述源文件进行虚拟化,并根据虚拟后的源文件生成目标文件具体包括:
扫描每个LLVM模块,识别被保护函数;
逐条指令遍历被保护函数,将被保护函数中需要用的全局变量和全局函数的地址保存到全局地址表中。
所述动态链接库文件虚拟化方法,其中,所述逐条指令遍历被保护函数,将被保护函数中需要用的全局变量和全局函数的地址保存到全局地址表中之后还包括:
判断遍历到的被保护函数是否需要调用本地函数;
如果被保护函数需要调用本地函数,则根据调用的本地函数的返回值和参数类型,创建包装函数,并将包装函数的地址保存到包装函数表中。
所述动态链接库文件虚拟化方法,其中,所述如果被保护函数需要调用本地函数,则根据调用的本地函数的返回值和参数类型,创建包装函数,并将包装函数的地址保存到包装函数表中之后还包括:
逐条指令遍历被保护函数,将LLVM IR指令翻译为等价的虚拟机指令,并将新生成的虚拟机字节码保存到字节码表中。
所述动态链接库文件虚拟化方法,其中,所述逐条指令遍历被保护函数,将LLVMIR指令翻译为等价的虚拟机指令,并将新生成的虚拟机字节码保存到字节码表中之后还包括:
记录每个被保护函数在字节码表中的起始位置,将被保护函数的序号和在字节码表中的位置保存到字节码索引表中。
所述动态链接库文件虚拟化方法,其中,所述记录每个被保护函数在字节码表中的起始位置,将被保护函数的序号和在字节码表中的位置保存到字节码索引表中之后还包括:
根据被保护函数参数类型和返回值的不同,动态创建虚拟机桥接函数,桥接函数主要用来向虚拟机传递参数以及调用完成后从虚拟机向本地函数传送返回值。
所述动态链接库文件虚拟化方法,其中,所述根据被保护函数参数类型和返回值的不同,动态创建虚拟机桥接函数,桥接函数主要用来向虚拟机传递参数以及调用完成后从虚拟机向本地函数传送返回值之后还包括:
将被保护函数的函数体抽空,替换成等价的虚拟机桥接函数的调用。
一种终端设备,其中,包括:处理器和存储器;所述存储器上存储有可被所述处理器执行的计算机可读程序;所述处理器执行所述计算机可读程序时实现如上任意一项所述的动态链接库文件虚拟化方法中的步骤。
一种计算机可读存储介质,其中,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上任意一项所述动态链接库文件虚拟化方法中的步骤。
有益效果:与现有技术相比,本发明提供了一种动态链接库文件虚拟化方法、存储介质及终端设备,所述方法包括:提取源文件中待虚拟化保护的被保护函数,并为提取到的被保护函数增设虚拟化保护标识;根据所述虚拟化保护标识对所述源文件进行虚拟化,并根据虚拟后的源文件生成目标文件;将所述目标文件与虚拟机解释器链接,以生成新的动态链接库文件;将生成的新的动态链接库文件存放APP中,并重新签名打包。这样,通过将需要被保护的函数进行编译,并生成新的动态链接库文件,从而使新的动态链接库文件具有代码和数据隐藏、反篡改,反Dump等效果,能够大大增加保护的强度。
附图说明
图1为本发明提供的一种动态链接库文件虚拟化方法较佳实施例的流程图。
图2为本发明提供的一种动态链接库文件虚拟化方法中步骤S200较佳实施例的具体流程图。
图3为本发明提供的终端设备较佳实施例的结构原理图。
具体实施方式
本发明一种动态链接库文件虚拟化方法、存储介质及终端设备,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
下面结合附图,通过对实施例的描述,对发明内容作进一步说明。
请参照图1,图1为本发明提供的一种动态链接库文件虚拟化方法较佳实施例的流程图。所述方法包括:
S100、提取源文件中待虚拟化保护的被保护函数,并为提取到的被保护函数增设虚拟化保护标识。
具体地,本发明通过改造最新的LLVM编译器,先将C/C++源码转为LLVM IR(IR,intermediate representation)中间代码,然后基于LLVM中间代码作虚拟化处理,将C/C++源码中要保护的函数翻译为人类难以理解的虚拟机指令集,在程序运行时再由虚拟机解释器对这些虚拟机指令进行解释执行。由于这些虚拟机指令集是非公开的,不同于以往任何已公开的指令集,所以加固后的SO文件具有代码和数据隐藏、反篡改,反Dump等效果,能够大大增加保护的强度。相应的,所述提取源文件中待虚拟化保护的被保护函数,并为提取到的被保护函数增设虚拟化保护标识具体包括:
S101、提取源文件中待虚拟化保护的被保护函数,并为提取到的被保护函数增设虚拟化保护标识;
S102、通过编译器对提取到的被保护函数进行编译,并在编译时加入所述虚拟化保护标识。
具体地,Android开发者在需要被保护的函数原型后面增加虚拟化保护标识,并指定并提取源文件中需要虚拟化保护的函数,其中,虚拟化保护标识形如__attribute((__annotate__(("ivmp"))))。
进一步,开发者使用定制的LLVM编译器进行编译,通过对增加了虚拟化标识的函数进行编译,并添加预设的参数,以实现对源文件的虚拟化处理。其中,预设的参数为-mllvm -mivmp参数,在编译器编译时,需要加上必要的预设参数,以方便编译器进一步在LLVM IR层对被保护源文件进行虚拟化处理。
S200、根据所述虚拟化保护标识对所述源文件进行虚拟化,并根据虚拟后的源文件生成目标文件。
具体地,如图2所示,所述根据所述虚拟化保护标识对所述源文件进行虚拟化,并根据虚拟后的源文件生成目标文件具体包括:
S201、扫描每个LLVM模块,识别被保护函数;
其中,LLVM模块用于优化以任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time),对开发者保持开放,并兼容已有脚本。
S202、逐条指令遍历被保护函数,将被保护函数中需要用的全局变量和全局函数的地址保存到全局地址表中;
S203、判断遍历到的被保护函数是否需要调用本地函数;如果被保护函数需要调用本地函数,则根据调用的本地函数的返回值和参数类型,创建包装函数,并将包装函数的地址保存到包装函数表中;
S204、逐条指令遍历被保护函数,将LLVM IR指令(就是LLVM中间表示,IR,intermediate representation)翻译为等价的虚拟机指令,并将新生成的虚拟机字节码保存到字节码表中;
S205、记录每个被保护函数在字节码表中的起始位置,将被保护函数的序号和在字节码表中的位置保存到字节码索引表中;
S206、根据被保护函数参数类型和返回值的不同,动态创建虚拟机桥接函数,桥接函数主要用来向虚拟机传递参数以及调用完成后从虚拟机向本地函数传送返回值;
S207、将被保护函数的函数体抽空,替换成等价的虚拟机桥接函数的调用。
S300、将所述目标文件与虚拟机解释器链接,以生成新的动态链接库文件。
具体地,将S200步骤中虚拟化处理后的LLVM IR编译生成目标文件,再和虚拟机解释器链接,以生成新的动态链接库文件。本发明通过改造最新的LLVM编译器,先将C/C++源码转为LLVM IR(IR,intermediate representation)中间代码,然后基于LLVM中间作虚拟化处理,将C/C++源码中要保护的函数翻译为人类难以理解的虚拟机指令集,在程序运行时再由虚拟机解释器对这些虚拟机指令进行解释执行。
由于这些虚拟机指令集是非公开的,不同于以往任何已公开的指令集,所以加固后的SO文件具有反篡改,反Dump等效果,能够大大增加保护的强度。
S400、将生成的新的动态链接库文件存放APP中,并重新签名打包。
具体地,将步骤S300中生成的新的动态链接库文件存放入APP中,并重新签名打包。
进一步,关于虚拟机化后的程序运行:当程序执行到被保护函数时,调用虚拟机解释器对虚拟机字节码进行解释,当执行完成后退出虚拟机,返回调用函数。
综上所述,本发明通过使用最新的LLVM编译器,编译时加上虚拟化参数,编译过程中先将C/C++源码转化LLVM IR中间代码,然后在LLVM IR层做虚拟化处理,将要保护的函数代码翻译为虚拟机字节码,并和虚拟机解释器链接在一起,生成虚拟化保护后的动态链接库文件。由于虚拟机指令集是自己定义的非公开的,对于人类难以理解对于机器可以识别,所以虚拟化保护后的动态链接库文件具有反篡改,反Dump等效果,再配合反调试,能够极大的增强动态链接库的安全性。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例所述的一种动态链接库文件虚拟化方法中的步骤。
本发明还提供了一种终端设备,如图3所示,其包括至少一个处理器(processor)20;显示屏21;以及存储器(memory)22,还可以包括通信接口(Communications Interface)23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中预设的用户引导界面。通信接口23可以传输信息。处理器20可以调用存储器22中的逻辑指令,以执行上述实施例中的方法。
此外,上述的存储器22中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令或模块。处理器30通过运行存储在存储器22中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。
存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
此外,上述存储介质以及移动终端中的多条指令处理器加载并执行的具体过程在上述方法中已经详细说明,在这里就不再一一陈述。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种动态链接库文件虚拟化方法,其特征在于,其包括:
提取源文件中待虚拟化保护的被保护函数,并为提取到的被保护函数增设虚拟化保护标识;
根据所述虚拟化保护标识对所述源文件进行虚拟化,并根据虚拟后的源文件生成目标文件;
将所述目标文件与虚拟机解释器链接,以生成新的动态链接库文件;
将生成的新的动态链接库文件存放APP中,并重新签名打包。
2.根据权利要求1所述动态链接库文件虚拟化方法,其特征在于,所述提取源文件中待虚拟化保护的被保护函数,并为提取到的被保护函数增设虚拟化保护标识具体包括:
提取源文件中待虚拟化保护的被保护函数,并为提取到的被保护函数增设虚拟化保护标识;
通过编译器对提取到的被保护函数进行编译,并在编译时加入所述虚拟化保护标识。
3.根据权利要求1所述动态链接库文件虚拟化方法,其特征在于,所述根据所述虚拟化保护标识对所述源文件进行虚拟化,并根据虚拟后的源文件生成目标文件具体包括:
扫描每个LLVM模块,识别被保护函数;
逐条指令遍历被保护函数,将被保护函数中需要用的全局变量和全局函数的地址保存到全局地址表中。
4.根据权利要求3所述动态链接库文件虚拟化方法,其特征在于,所述逐条指令遍历被保护函数,将被保护函数中需要用的全局变量和全局函数的地址保存到全局地址表中之后还包括:
判断遍历到的被保护函数是否需要调用本地函数;
如果被保护函数需要调用本地函数,则根据调用的本地函数的返回值和参数类型,创建包装函数,并将包装函数的地址保存到包装函数表中。
5.根据权利要求4所述动态链接库文件虚拟化方法,其特征在于,所述如果被保护函数需要调用本地函数,则根据调用的本地函数的返回值和参数类型,创建包装函数,并将包装函数的地址保存到包装函数表中之后还包括:
逐条指令遍历被保护函数,将LLVM IR指令翻译为等价的虚拟机指令,并将新生成的虚拟机字节码保存到字节码表中。
6.根据权利要求5所述动态链接库文件虚拟化方法,其特征在于,所述逐条指令遍历被保护函数,将LLVM IR指令翻译为等价的虚拟机指令,并将新生成的虚拟机字节码保存到字节码表中之后还包括:
记录每个被保护函数在字节码表中的起始位置,将被保护函数的序号和在字节码表中的位置保存到字节码索引表中。
7.根据权利要求6所述动态链接库文件虚拟化方法,其特征在于,所述记录每个被保护函数在字节码表中的起始位置,将被保护函数的序号和在字节码表中的位置保存到字节码索引表中之后还包括:
根据被保护函数参数类型和返回值的不同,动态创建虚拟机桥接函数,桥接函数主要用来向虚拟机传递参数以及调用完成后从虚拟机向本地函数传送返回值。
8.根据权利要求7所述动态链接库文件虚拟化方法,其特征在于,所述根据被保护函数参数类型和返回值的不同,动态创建虚拟机桥接函数,桥接函数主要用来向虚拟机传递参数以及调用完成后从虚拟机向本地函数传送返回值之后还包括:
将被保护函数的函数体抽空,替换成等价的虚拟机桥接函数的调用。
9.一种终端设备,其特征在于,包括:处理器和存储器;所述存储器上存储有可被所述处理器执行的计算机可读程序;所述处理器执行所述计算机可读程序时实现如权利要求1~8任意一项所述的动态链接库文件虚拟化方法中的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1~8任意一项所述动态链接库文件虚拟化方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910272180.1A CN111782334B (zh) | 2019-04-04 | 2019-04-04 | 一种动态链接库文件虚拟化方法、存储介质及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910272180.1A CN111782334B (zh) | 2019-04-04 | 2019-04-04 | 一种动态链接库文件虚拟化方法、存储介质及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111782334A true CN111782334A (zh) | 2020-10-16 |
CN111782334B CN111782334B (zh) | 2024-02-23 |
Family
ID=72755257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910272180.1A Active CN111782334B (zh) | 2019-04-04 | 2019-04-04 | 一种动态链接库文件虚拟化方法、存储介质及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111782334B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112395614A (zh) * | 2020-11-27 | 2021-02-23 | 南京理工大学 | 基于LLVM的Android应用程序虚拟化保护方法 |
CN112685095A (zh) * | 2020-12-25 | 2021-04-20 | 北京浪潮数据技术有限公司 | 一种虚拟设备的加载方法、装置、设备及存储介质 |
CN113010181A (zh) * | 2021-03-24 | 2021-06-22 | 北京百度网讯科技有限公司 | 一种深度学习框架之中算子的部署方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6182283B1 (en) * | 1996-03-15 | 2001-01-30 | International Business Machines Corporation | Linker optimization for compiled object oriented programs |
CN107992723A (zh) * | 2017-11-29 | 2018-05-04 | 南京莱斯信息技术股份有限公司 | 一种基于动态链接库的Java源码保护方法 |
CN108932406A (zh) * | 2017-05-18 | 2018-12-04 | 北京梆梆安全科技有限公司 | 虚拟化软件保护方法和装置 |
-
2019
- 2019-04-04 CN CN201910272180.1A patent/CN111782334B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6182283B1 (en) * | 1996-03-15 | 2001-01-30 | International Business Machines Corporation | Linker optimization for compiled object oriented programs |
CN108932406A (zh) * | 2017-05-18 | 2018-12-04 | 北京梆梆安全科技有限公司 | 虚拟化软件保护方法和装置 |
CN107992723A (zh) * | 2017-11-29 | 2018-05-04 | 南京莱斯信息技术股份有限公司 | 一种基于动态链接库的Java源码保护方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112395614A (zh) * | 2020-11-27 | 2021-02-23 | 南京理工大学 | 基于LLVM的Android应用程序虚拟化保护方法 |
CN112395614B (zh) * | 2020-11-27 | 2023-07-28 | 南京理工大学 | 基于LLVM的Android应用程序虚拟化保护方法 |
CN112685095A (zh) * | 2020-12-25 | 2021-04-20 | 北京浪潮数据技术有限公司 | 一种虚拟设备的加载方法、装置、设备及存储介质 |
CN112685095B (zh) * | 2020-12-25 | 2024-03-22 | 北京浪潮数据技术有限公司 | 一种虚拟设备的加载方法、装置、设备及存储介质 |
CN113010181A (zh) * | 2021-03-24 | 2021-06-22 | 北京百度网讯科技有限公司 | 一种深度学习框架之中算子的部署方法、装置及电子设备 |
US11531529B2 (en) | 2021-03-24 | 2022-12-20 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method and electronic device for deploying operator in deep learning framework |
Also Published As
Publication number | Publication date |
---|---|
CN111782334B (zh) | 2024-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108733988B (zh) | 安卓平台上可执行程序的保护方法 | |
CN108932406B (zh) | 虚拟化软件保护方法和装置 | |
CN107943469B (zh) | 一种智能合约的发布方法及装置 | |
CN107077337B (zh) | 用于执行根据两个指令集架构编译的应用编码的系统和方法 | |
US8863079B2 (en) | Efficient and expansive conversions between reference and primitive | |
CN111782334B (zh) | 一种动态链接库文件虚拟化方法、存储介质及终端设备 | |
US11720344B2 (en) | Code hot-update method and device, storage medium, processor, and terminal | |
US20160232017A1 (en) | System and Method for Reloading Constructors | |
CN107480476B (zh) | 一种基于ELF感染的Android本地层指令编译虚拟化加壳方法 | |
CN109684794B (zh) | 一种代码保护虚拟机kvm系统实现方法、装置、计算机设备及存储介质 | |
CN109598107B (zh) | 一种基于应用安装包文件的代码转换方法及装置 | |
CN105930694B (zh) | 用于模糊虚拟机的灵活指令集 | |
US20130311993A1 (en) | Adaptive obfuscated virtual machine | |
CN100492387C (zh) | 基于Keil C51的软件保护开发的方法和系统 | |
CN109829313B (zh) | 一种基于代码复用编程防御sgx侧信道攻击的方法及装置 | |
US20160246622A1 (en) | Method and system for implementing invocation stubs for the application programming interfaces embedding with function overload resolution for dynamic computer programming languages | |
WO2024045379A1 (zh) | 编译方法和编译器、Wasm虚拟机 | |
WO2022017242A1 (zh) | 在第一系统运行第二系统应用的方法、装置、设备及介质 | |
CN110032425B (zh) | 一种动态链接库文件虚拟化方法、系统及存储介质 | |
CN107153563B (zh) | 一种软件版本生成方法及装置 | |
CN109933410B (zh) | 一种基于虚拟化技术的虚拟指令下发方法及系统 | |
CN109960511B (zh) | 基于虚拟化技术的动态库下发方法、存储介质及智能终端 | |
CN106557350B (zh) | 应用程序安装包中java字节码转换方法、装置及设备 | |
CN103106356B (zh) | 一种在安全环境中生成代码提高软件保护强度的方法 | |
CN112052047A (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 |