CN107341372B - 一种软件保护方法和装置 - Google Patents
一种软件保护方法和装置 Download PDFInfo
- Publication number
- CN107341372B CN107341372B CN201710611787.9A CN201710611787A CN107341372B CN 107341372 B CN107341372 B CN 107341372B CN 201710611787 A CN201710611787 A CN 201710611787A CN 107341372 B CN107341372 B CN 107341372B
- Authority
- CN
- China
- Prior art keywords
- operand
- protected
- code
- code segment
- memory space
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000003860 storage Methods 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 5
- 238000009826 distribution Methods 0.000 description 3
- 101100179594 Caenorhabditis elegans ins-4 gene Proteins 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101100179596 Caenorhabditis elegans ins-3 gene Proteins 0.000 description 1
- 101100072652 Xenopus laevis ins-b gene Proteins 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000000877 morphologic effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- 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/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种软件保护方法,其中,在将软件的源代码编译为目标代码的过程中,对编译期间生成的中间代码进行如下处理:在中间代码中确定待保护代码段,确定待保护代码段内的至少一个操作数和对至少一个操作数进行操作的至少一个操作指令;为至少一个操作数分配专用存储空间,并将至少一个操作指令修改为对专用存储空间进行存取的指令;对包括经修改的至少一个操作指令的待保护代码段进行加密处理。本发明同时提供了一种软件保护装置。通过本发明的软件保护方法和装置,实现了跨平台的软件保护。
Description
技术领域
本发明涉及计算机软件领域,特别涉及一种软件保护方法和装置。
背景技术
目前,对软件进行加密保护的技术已经广泛使用,其中,通常使用的方式例如包括将软件中的受保护代码段移植到软件外部、该受保护代码段进行加密处理、为软件颁发数字许可并基于数字许可的有效性来监控软件的使用等。
其中,在对受保护代码段进行加密处理时,不同的软件编译平台下生成的软件各自的文件格式不同、指令格式和含义各异,同一加密过程无法适用于所有平台下的软件。
发明内容
有鉴于此,本发明实施例提供了一种软件保护方法和装置,其目的之一是为不同平台下的软件提供一个统一的跨平台软件保护方案。
为此,本发明实施例提供的软件保护方法包括,在将软件的源代码编译为目标代码的过程中,对编译期间生成的中间代码进行如下处理:在所述中间代码中确定待保护代码段,确定所述待保护代码段内的至少一个操作数和对所述至少一个操作数进行操作的至少一个操作指令;为所述至少一个操作数分配专用存储空间,并将所述至少一个操作指令修改为从所述专用存储空间读取源操作数并将对源操作数进行操作后得到的结果操作数存入所述专用存储空间;对包括经修改的所述至少一个操作指令的所述待保护代码段进行加密处理。
本发明实施例提供的软件保护装置包括处理器,其中,处理器配置为在将软件的源代码编译为目标代码的过程中,对编译期间生成的中间代码进行如下处理:在所述中间代码中确定待保护代码段,确定所述待保护代码段内的至少一个操作数和对所述至少一个操作数进行操作的至少一个操作指令;为所述至少一个操作数分配专用存储空间,并将所述至少一个操作指令修改为从所述专用存储空间读取源操作数并将对源操作数进行操作后得到的结果操作数存入所述专用存储空间;对包括经修改的所述至少一个操作指令的所述待保护代码段进行加密处理。
本发明实施例的软件保护方法和装置通过对软件编译过程中的中间代码进行加密,使得加密过程不会受到不同平台下软件指令格式各异的影响,实现了对软件代码进行跨平台的加密。
附图说明
图1为本发明一个实施例的软件保护方法的示意性流程图;
图2为本发明另一个实施例的软件保护方法的示意性流程图;
图3为本发明又一个实施例的软件保护方法的示意性流程图。
具体实施方式
下面参照附图对本发明的多个实施例进行详细说明。
图1为本发明一个实施例的软件保护方法的示意性流程图。
一般对软件的编译过程依次包括词法分析、语法分析、语义分析、生成中间代码、对中间代码进行优化、以及生成目标代码,然后对生成的目标代码进行链接后生成软件的可执行程序。在本实施例的软件保护方法中,在将软件的源代码编译为目标代码的过程中,对编译期间生成的中间代码进行如图1所示的如下处理:
S101、在中间代码中确定待保护代码段,确定待保护代码段内的至少一个操作数和对至少一个操作数进行操作的至少一个操作指令;
在中间代码中确定的待保护代码段可以包括一条或多条操作指令,例如一个函数模块中的一条或多条操作指令。待保护代码段中可以包括用于对一个或多个操作数进行操作的操作指令,例如运算操作指令、判断操作指令、读写操作指令等,,还可以包括不涉及操作数的操作指令,例如分配地址空间的指令。例如,在加法运算操作指令中,对读取操作指令读取的两个操作数进行加和操作,并产生一个和值,由写入操作指令将该生成的和值作为操作数写入存储位置。当确定的待保护代码段内包括多个操作指令时,确定每个操作指令所处理的操作数。
S102、为至少一个操作数分配专用存储空间,并将所述至少一个操作指令修改为从所述专用存储空间读取源操作数并将对源操作数进行操作后得到的结果操作数存入所述专用存储空间;
中间代码在经过本发明实施例处理之前,其所有指令相关的各操作数在通用的存储空间中按顺序进行写入和读取。本发明实施例中为待保护代码段中的操作数另外又分配了一个专用的存储空间,其中,不改动原先已经为待保护代码段中的操作数分配的通用存储空间中的存储地址。为待保护代码段中的操作数分配了专用存储空间后,在中间代码中增加将这些操作数在通用存储空间和专用存储空间之间存取的指令,并将待保护代码段中的需要对操作数进行操作的操作指令修改为从专用存储空间读取源操作数并将对源操作数进行操作后得到的结果操作数存入专用存储空间的指令或指令块。
S103、对包括经修改的至少一个操作指令的待保护代码段进行加密处理。
经过上述处理后,可对经过处理的待保护代码段进行各种加密处理。该加密处理例如可以是在待保护代码段中打乱各个指令或指令块的顺序并添加跳转指令的混淆处理,对待保护代码段中的一些或全部指令进行虚拟化并利用虚拟机来进行指令的读取、翻译和执行的虚拟化处理,以及待保护代码段执行后获得的结果数据进行数值随机化或数据加密等。以上各个加密方式仅为示例性的,本发明实施例不限制具体采用的加密处理方式。
在本发明实施例中,可将中间代码中不同位置的不同指令或指令块分别确定为待保护代码段,并对每个确定的待保护代码段进行上述S101-S103的处理。
在将中间代码中的一个或多个待保护代码段进行上述处理之后,将得到的经处理的中间代码继续进行常规的中间代码优化处理得到目标代码,然后将目标代码进行链接得到软件的可执行程序。
本发明实施例的方案通过对软件编译过程中的中间代码进行加密来实现软件保护,使得加密过程不会受到不同平台下软件指令格式各异的影响,能够在影响软件的可执行程序的正常执行的同时,实现使用统一的加密方案对不同平台下的软件代码进行跨平台的加密。
图2本发明另一个实施例的软件保护方法的示意性流程图。
在本实施例的软件保护方法中,在将软件的源代码编译为目标代码的过程中,对编译期间生成的中间代码进行如图2所示的如下处理:
S201、在中间代码中确定待保护代码段,确定待保护代码段内的至少一个操作数和对至少一个操作数进行操作的至少一个操作指令;
操作指令例如可以包括运算操作指令、判断操作指令、读写操作指令等。操作指令用于对一个或多个操作数进行操作,例如,在减法运算操作指令中,对读取操作指令读取的两个操作数进行相减操作,并产生一个差值,由写入操作指令将该生成的差值作为操作数写入存储位置。
S202、为至少一个操作数分配专用存储空间,并将至少一个操作指令修改为从专用存储空间读取源操作数并将对源操作数进行操作后得到的结果操作数存入专用存储空间,操作数包括在待保护代码段内部产生并由外部引用的至少一个第一操作数;
本实施例中同样为待保护代码段中的操作数在通用存储空间之外又分配了一个专用的存储空间,并且本实施例中,待保护代码段中的操作数包括由待保护代码段内部指令产生的并且需要由待保护代码段外部的指令引用的第一操作数。例如,待保护代码段中包括一条减法运算操作指令,该指令的结果操作数正是中间代码中待保护代码段外部的一个比较运算操作指令的操作数,则将该减法运算操作指令修改为将对源操作数进行减法运算得到的结果操作数写入专用存储空间。
S203、对包括经修改的至少一个操作指令的待保护代码段进行加密处理。
经过上述处理后,可对经过处理的待保护代码段进行各种加密处理。该加密处理例如但不限于将待保护代码段进行混淆处理、指令虚拟化处理、结果数据的数值随机化或数据加密等。
S204、将中间代码中引用第一操作数的操作指令修改为从专用存储空间读取第一操作数。
仍以上述例子进行说明,将中间代码中待保护代码段外部的上述比较运算操作指令修改为从专用存储空间获得上述减法运算操作指令写入的结果操作数作为比较运算操作指令的源操作数进行运算操作。
上述实施例中S203也可以在S204之后执行。
本发明实施例的方案通过将待保护代码段中生成并由外部指令引用的操作数写入专用存储空间,使得在对中间代码中的待保护代码段进行加密时,不会影响中间代码中待保护代码段外部与待保护代码段相关的其他指令的正常执行。
图3为本发明又一个实施例的软件保护方法的示意性流程图。
在本实施例的软件保护方法中,在将软件的源代码编译为目标代码的过程中,对编译期间生成的中间代码进行如图3所示的如下处理:
S301、在中间代码中确定待保护代码段,确定待保护代码段内的至少一个操作数和对至少一个操作数进行操作的至少一个操作指令;
操作指令例如可以包括运算操作指令、判断操作指令、读写操作指令等。操作指令用于对一个或多个操作数进行操作,例如,在乘法运算操作指令中,对读取操作指令读取的两个操作数进行相乘操作,并产生一个乘积值,由写入操作指令将该生成的乘积值作为操作数写入存储位置。
S302、为至少一个操作数分配专用存储空间,并将至少一个操作指令修改为从专用存储空间读取源操作数并将对源操作数进行操作后得到的结果操作数存入专用存储空间,操作数包括由待保护代码段从外部引用的至少一个第一操作数;
本实施例中也为待保护代码段中的操作数在通用存储空间之外又分配了一个专用的存储空间,并且本实施例中,待保护代码段中的操作数包括由待保护代码段内部指令从待保护代码段外部引用的第一操作数。例如,待保护代码段中包括一条乘法运算操作指令,该指令的两个操作数需要从待保护代码段外部获得,则将该乘法运算操作指令修改为在读取源操作数时从专用存储空间读取源操作数。
S303、在待保护代码段内增加将至少一个操作数从原存储位置写入专用存储空间的指令;
例如,在待保护代码段内增加将该乘法运算操作指令所需的源操作数从通用存储空间写入专用存储空间的指令,从而乘法运算操作指令在执行时能够从专用存储空间读取到其所需的源操作数。
S304、对包括经修改的至少一个操作指令的待保护代码段进行加密处理。
经过上述处理后,可对经过处理的待保护代码段进行各种加密处理。该加密处理例如但不限于将待保护代码段进行混淆处理、指令虚拟化处理、结果数据的数值随机化或数据加密等。
上述实施例中S303也可以在S302之前执行。
本发明实施例的方案通过将待保护代码段中的操作指令需要从待保护代码段外部引用的操作数写入专用存储空间,使得在对中间代码中的待保护代码段进行加密时,不会影响待保护代码段的正常执行。
上述各实施例中,为操作数分配专用存储空间可以包括,在中间代码中待保护代码段内部或外部增加为操作数分配专用存储空间的指令。其中,将分配专用存储空间的指令写入待保护代码内部具有更好的安全性。
上述图2和图3的实施例可以分别独立实施也可以结合实施。
下面以中间代码中的加法函数为例对本发明实施例的具体实施过程进行示意性说明。
首先,该加法函数示例如下:
现将上述函数add中的label3处的代码确定为待保护代码段,并以下列步骤进行本发明实施过程的说明:
步骤1、为待保护代码中的操作数(下文也称参数)分配专用存储空间
涉及操作数有%a,%b,%3,%4,大小分别为4/4/4/8字节,总计20字节。在label3中添加指令%mem=allocate[i8,20],分配包含20个i8类型的数组,这里为了便于说明起见,将%mem称为上下文,上述各操作数依次对应上下文数组的偏移0/4/8/16处。
label3处代码变为:
为方便区别新添加的指令和原指令,添加一个标签code,则代码变为:
步骤2、分析操作数
待保护代码段引用的外部参数:%a%b
内部产生并被外部代码引用的参数:%4
内部产生及相互引用的参数:%3
步骤3、将外部参数写入上下文
则原代码变为:
步骤4、更新待保护代码段,将指令源参数改为从上下文读取的参数,目标参数写入上下文
第一条指令%3=add i32%a,i32%b变为:
第二条指令%4=allocate i32变为:
第三条指令store i32%3,i32*%4变为:
则原代码变为:
步骤5、外部变量引用待保护代码段生成的参数更新为从上下文读取,则label4处的指令%5=load i32,i32*%4更新为:
为方便说明,标签ins1_get_src1、ins1_get_src2、ins1_code及代码简写为
ins1:
标签ins2_code、ins2_dst及代码简写为
ins2:
标签ins2_code、ins2_dst及代码简写为
ins3:
标签ins4_get_src、ins4及代码简写为
ins4:
标签label3、write_a、write_b及代码简写为
label3:
则函数add的完整代码可简写为:
下面示意性地说明选择性地对经处理的待保护代码进行混淆处理(步骤6)或虚拟化处理(步骤7)的加密处理:
步骤6、对待保护代码段进行混淆处理
先打乱被保护代码顺序,然后添加跳转指令:
步骤7、对待保护代码段进行虚拟化处理
本发明实施例的软件保护装置包括处理器,其中,处理器配置为在将软件的源代码编译为目标代码的过程中,对编译期间生成的中间代码进行如下处理:在中间代码中确定待保护代码段,确定待保护代码段内的至少一个操作数和对至少一个操作数进行操作的至少一个操作指令;为至少一个操作数分配专用存储空间,并将至少一个操作指令修改为从专用存储空间读取源操作数并将对源操作数进行操作后得到的结果操作数存入专用存储空间;对包括经修改的至少一个操作指令的待保护代码段进行加密处理。
在本发明的软件保护装置的一个实施例中,操作数包括在待保护代码段内部产生并由外部引用的至少一个第一操作数,并且处理器进一步配置为:将中间代码中引用第一操作数的操作指令修改为从专用存储空间读取第一操作数。
在本发明的软件保护装置的另一个实施例中,操作数包括由待保护代码段从外部引用的至少一个第二操作数,并且处理器进一步配置为:在待保护代码段内增加将至少一个操作数从原存储位置写入专用存储空间的指令。
在本发明的软件保护装置的一个实施例中,处理器可以配置为在为操作数分配专用存储空间时,在中间代码中待保护代码段内部或外部增加为操作数分配专用存储空间的指令。其中,将分配专用存储空间的指令写入待保护代码内部具有更好的安全性。
在本发明的软件保护装置的各个实施例中,处理器配置为在对待保护代码段进行加密处理时,使用选自但不限于将待保护代码段进行混淆处理、指令虚拟化处理、结果数据的数值随机化或数据加密等加密方式进行加密处理
以上对本发明多个实施例进行了说明,但本发明不限于上述特定的实施例,本领域技术人员在不脱离本发明精神的情况下,能够对上述实施例进行多种修改、改变和变型,所得到的实施例均应落入本发明所要求保护的范围之内。
Claims (10)
1.一种软件保护方法,其中,在将软件的源代码编译为目标代码的过程中,对编译期间生成的中间代码进行如下处理:
在所述中间代码中确定待保护代码段,确定所述待保护代码段内的至少一个操作数和对所述至少一个操作数进行操作的至少一个操作指令;
为所述至少一个操作数分配专用存储空间,并将所述至少一个操作指令修改为从所述专用存储空间读取源操作数并将对源操作数进行操作后得到的结果操作数存入所述专用存储空间;
对包括经修改的所述至少一个操作指令的所述待保护代码段进行加密处理。
2.如权利要求1所述的方法,其中,所述操作数包括在所述待保护代码段内部产生并由外部引用的至少一个第一操作数,所述方法还包括:
将所述中间代码中引用所述第一操作数的操作指令修改为从所述专用存储空间读取所述第一操作数。
3.如权利要求1所述的方法,其中,所述操作数包括由所述待保护代码段从外部引用的至少一个第二操作数,所述方法还包括:
在所述待保护代码段内增加将所述至少一个操作数从原存储位置写入所述专用存储空间的指令。
4.如权利要求1所述的方法,其中,为所述至少一个操作数分配专用存储空间包括:在所述待保护代码段内增加为所述至少一个操作数分配所述专用存储空间的指令。
5.如权利要求1至4中任一项所述的方法,其中,所述加密处理包括指令混淆、指令虚拟化、数值随机化、数值加密中的一种或多种。
6.一种软件保护装置,包括处理器,其中,所述处理器配置为在将软件的源代码编译为目标代码的过程中,对编译期间生成的中间代码进行如下处理:
在所述中间代码中确定待保护代码段,确定所述待保护代码段内的至少一个操作数和对所述至少一个操作数进行操作的至少一个操作指令;
为所述至少一个操作数分配专用存储空间,并将所述至少一个操作指令修改为从所述专用存储空间读取源操作数并将对源操作数进行操作后得到的结果操作数存入所述专用存储空间;
对包括经修改的所述至少一个操作指令的所述待保护代码段进行加密处理。
7.如权利要求6所述的装置,其中,所述操作数包括在所述待保护代码段内部产生并由外部引用的至少一个第一操作数,所述处理器进一步配置为:
将所述中间代码中引用所述第一操作数的操作指令修改为从所述专用存储空间读取所述第一操作数。
8.如权利要求6所述的装置,其中,所述操作数包括由所述待保护代码段从外部引用的至少一个第二操作数,所述处理器进一步配置为:
在所述待保护代码段内增加将所述至少一个操作数从原存储位置写入所述专用存储空间的指令。
9.如权利要求6所述的装置,其中,为所述至少一个操作数分配专用存储空间包括:在所述待保护代码段内增加为所述至少一个操作数分配所述专用存储空间的指令。
10.如权利要求6-9中任一项所述的装置,其中,所述加密处理包括指令混淆、指令虚拟化、数值随机化、数值加密中的一种或多种。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710611787.9A CN107341372B (zh) | 2017-07-25 | 2017-07-25 | 一种软件保护方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710611787.9A CN107341372B (zh) | 2017-07-25 | 2017-07-25 | 一种软件保护方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107341372A CN107341372A (zh) | 2017-11-10 |
CN107341372B true CN107341372B (zh) | 2018-12-07 |
Family
ID=60217414
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710611787.9A Active CN107341372B (zh) | 2017-07-25 | 2017-07-25 | 一种软件保护方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107341372B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110457869B (zh) * | 2019-07-23 | 2022-03-22 | Oppo广东移动通信有限公司 | 程序编译加密方法、装置、存储介质及电子设备 |
CN112434265B (zh) * | 2020-11-27 | 2021-09-24 | 北京深思数盾科技股份有限公司 | 一种程序代码的保护方法、装置及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1613054A (zh) * | 2002-01-02 | 2005-05-04 | 英特尔公司 | 控制指令集体系结构之间的二进制编码翻译的兼容水平 |
CN1763709A (zh) * | 2004-10-19 | 2006-04-26 | 深圳安凯微电子技术有限公司 | 在移动微处理器中支持mmx指令的方法及扩展的微处理器 |
CN1920771A (zh) * | 2005-08-23 | 2007-02-28 | 中国科学院计算技术研究所 | 一种支持用规则记录变量访问专用寄存器组的处理方法 |
CN101366035A (zh) * | 2005-12-13 | 2009-02-11 | 格姆普拉斯公司 | 保护便携装置中的中间语言软件代码执行的安全的方法 |
CN104392151A (zh) * | 2014-11-27 | 2015-03-04 | 北京深思数盾科技有限公司 | 一种软件保护方法及系统 |
CN104756068A (zh) * | 2012-12-26 | 2015-07-01 | 英特尔公司 | 合并相邻的聚集/分散操作 |
CN106462677A (zh) * | 2014-03-31 | 2017-02-22 | 爱迪德技术有限公司 | 优化和保护软件 |
CN106682460A (zh) * | 2016-11-25 | 2017-05-17 | 西北大学 | 一种基于两次变换的代码混淆方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080271001A1 (en) * | 2006-09-11 | 2008-10-30 | Yo Nonomura | Method of generating program, information processing device and microcomputer |
CN100468437C (zh) * | 2006-12-28 | 2009-03-11 | 北京飞天诚信科技有限公司 | .Net程序保护的方法和系统 |
US8176473B2 (en) * | 2007-05-14 | 2012-05-08 | Microsoft Corporation | Transformations for software obfuscation and individualization |
CN101261664B (zh) * | 2008-04-10 | 2010-07-07 | 北京深思洛克软件技术股份有限公司 | 一种使用软件保护装置存储程序代码实现软件保护的方法 |
CN101281574B (zh) * | 2008-05-14 | 2011-04-20 | 北京深思洛克软件技术股份有限公司 | 一种防止软件保护装置被非法共享的技术方法 |
US8832672B2 (en) * | 2011-01-28 | 2014-09-09 | International Business Machines Corporation | Ensuring register availability for dynamic binary optimization |
CN102375957B (zh) * | 2011-11-10 | 2014-05-14 | 西安电子科技大学 | 内核级return-oriented rootkits的防御方法 |
-
2017
- 2017-07-25 CN CN201710611787.9A patent/CN107341372B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1613054A (zh) * | 2002-01-02 | 2005-05-04 | 英特尔公司 | 控制指令集体系结构之间的二进制编码翻译的兼容水平 |
CN1763709A (zh) * | 2004-10-19 | 2006-04-26 | 深圳安凯微电子技术有限公司 | 在移动微处理器中支持mmx指令的方法及扩展的微处理器 |
CN1920771A (zh) * | 2005-08-23 | 2007-02-28 | 中国科学院计算技术研究所 | 一种支持用规则记录变量访问专用寄存器组的处理方法 |
CN101366035A (zh) * | 2005-12-13 | 2009-02-11 | 格姆普拉斯公司 | 保护便携装置中的中间语言软件代码执行的安全的方法 |
CN104756068A (zh) * | 2012-12-26 | 2015-07-01 | 英特尔公司 | 合并相邻的聚集/分散操作 |
CN106462677A (zh) * | 2014-03-31 | 2017-02-22 | 爱迪德技术有限公司 | 优化和保护软件 |
CN104392151A (zh) * | 2014-11-27 | 2015-03-04 | 北京深思数盾科技有限公司 | 一种软件保护方法及系统 |
CN106682460A (zh) * | 2016-11-25 | 2017-05-17 | 西北大学 | 一种基于两次变换的代码混淆方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107341372A (zh) | 2017-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102770855B (zh) | 数据处理设备、数据处理系统、包、记录介质、存储装置和数据处理方法 | |
CN103413073B (zh) | 一种保护java可执行程序的方法及设备 | |
US20090164803A1 (en) | Cipher Message Assist Instruction | |
CN104126170B (zh) | 打包数据操作掩码寄存器算术组合处理器、方法、系统及指令 | |
US20100058301A1 (en) | System and method for branch extraction obfuscation | |
CN108351839A (zh) | 用来挂起/恢复安全飞地页面高速缓存中飞地的迁移的指令和逻辑 | |
CN105190535A (zh) | 执行伪随机数产生操作的指令 | |
CN105453031B (zh) | 用于优化指令的方法和系统 | |
CN114270352A (zh) | 用于密码运算的协处理器 | |
CN105210037B (zh) | 存储器访问的加快 | |
CN105190534A (zh) | 执行伪随机数种子操作的指令 | |
CN106599629A (zh) | 一种安卓应用程序加固方法及装置 | |
BR102020019667A2 (pt) | método e aparelho para criptografia de memória total multichave baseada em derivação de chave dinâmica | |
CN105787305A (zh) | 一种抵抗符号执行和污点分析的软件保护方法 | |
CN105074712A (zh) | 代码处理装置和程序 | |
CN110050258A (zh) | 具有自动模块化功能的安全专区保护的应用程序盗版防止 | |
CN109598107A (zh) | 一种基于应用安装包文件的代码转换方法及装置 | |
CN107341372B (zh) | 一种软件保护方法和装置 | |
CN107577925B (zh) | 基于双重ARM指令虚拟的Android应用程序保护方法 | |
US20070277160A1 (en) | System and method for virtual memory and securing memory in programming languages | |
CN105843776A (zh) | 微处理器与其中安全执行指令的方法 | |
US6347318B1 (en) | Method, system, and apparatus to improve performance of tree-based data structures in computer programs | |
CN105814833A (zh) | 安全的数据变换 | |
US9563787B2 (en) | Protection of a non-volatile memory by change of instructions | |
CN102799434B (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 | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100193 5th floor 510, No. 5 Building, East Yard, No. 10 Wangdong Road, Northwest Haidian District, Beijing Patentee after: Beijing Shendun Technology Co.,Ltd. Address before: 100193 5th floor 510, No. 5 Building, East Yard, No. 10 Wangdong Road, Northwest Haidian District, Beijing Patentee before: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd. |