CN111563237B - 一种智能合约安全增强方法 - Google Patents
一种智能合约安全增强方法 Download PDFInfo
- Publication number
- CN111563237B CN111563237B CN202010211696.8A CN202010211696A CN111563237B CN 111563237 B CN111563237 B CN 111563237B CN 202010211696 A CN202010211696 A CN 202010211696A CN 111563237 B CN111563237 B CN 111563237B
- Authority
- CN
- China
- Prior art keywords
- jump
- address
- intelligent contract
- byte
- byte code
- 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 30
- 238000010586 diagram Methods 0.000 claims abstract description 13
- 238000003780 insertion Methods 0.000 claims abstract description 5
- 230000037431 insertion Effects 0.000 claims abstract description 5
- 230000006870 function Effects 0.000 claims description 7
- 230000002708 enhancing effect Effects 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000004458 analytical method Methods 0.000 abstract description 12
- 238000005516 engineering process Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000009395 breeding Methods 0.000 description 1
- 230000001488 breeding effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000035772 mutation Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000006467 substitution reaction 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/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种智能合约安全增强方法,涉及区块链智能合约安全技术领域。首先恢复智能合约字节码的控制流图,标记所有JUMP/JUMPI指令跳转的目的地址及其入栈指令、JUMP/JUMPI指令的位置以及跳转目的地址和跳转指令之间的前后位置关系;在智能合约原始字节码中寻找可***替换字节码的位置并标记***位置的地址;根据选择的不同地址混淆模式生成基础替换字节码;重构基础替换字节码和原始字节码中所有的跳转地址和跳转指令,恢复字节码的控制流图;在替换字节码中***混淆后的跳转地址,将替换字节码***到原始字节码中,生成新的智能合约字节码。该方法使常见的智能合约逆向分析工具的分析工作失效,增加合约的安全性。
Description
技术领域
本发明涉及区块链智能合约安全技术领域,尤其涉及一种智能合约安全增强方法。
背景技术
随着区块链技术特有的去中心化、不可篡改性和公开性被广泛认可,越来越多的人们开始使用区块链技术作为支撑金融、监管和游戏等领域的底层框架,来实现互联网技术与金融价值的高度融合。为满足用户在更多场景下的需求,区块链支持部署并运行智能合约,为智能合约的执行提供图灵完备的环境,可以通过交易调用智能合约,完成用户所需的一系列操作。由于区块链的公开性和不可篡改性,区块链上部署的所有智能合约都是公开可见的,且交易的执行结果是确定的。这一特性导致智能合约无法实现生成随机数等功能,这对于游戏和金融等应用至关重要。例如CryptoKitties是一款在以太坊中备受欢迎的游戏,玩家可以繁殖并交易数字小猫,小猫的稀有基因组合会使其具有更高的价值。该游戏开发团队为了确保遗传和突变的随机性,使用闭源的智能合约为小猫的繁殖引入随机数。尽管如此,研究者宣称能够使用Erays对CryptoKitties的智能合约进行逆向分析,来大幅度提高繁殖高价值小猫的概率,毫无疑问这种方式破坏了游戏的随机性并降低了拥有稀有基因的小猫的价值。除了产生随机数外,部分智能合约开发人员出于安全原因将合约设置为闭源,以防止攻击者分析已部署的合约字节码,但仍然可以使用诸如Vandal、Gigahorse等智能合约反编译工具,分析合约代码的功能,对智能合约的开发者和使用者造成大量损失。
虽然开发人员对于智能合约字节码的抗逆向分析技术有着迫切的需求,但目前还没有有效的方法可用于保护智能合约。由于智能合约运行环境具有特殊的架构,因此现有的在其他平台上的抗逆向分析技术对智能合约来说是无效的或过于昂贵的。其主要困难有:
(1)智能合约虚拟机(后简称EVM)不是标准的冯诺依曼体系,合约在EVM中执行时,其代码存储在一个只读存储空间中,而不是像传统计算机组成中一样存储在可读写的内存或外部存储空间中。因此合约代码在执行过程中是无法修改的,这就意味着传统的代码加密方式无法应用在区块链中。
(2)智能合约的调用执行会消耗Gas。Gas是区块链中用于衡量交易消耗计算资源的基本单位。合约执行的步骤越多,执行指令越昂贵,消耗的Gas就越多,这会给部署和调用合约的用户带来额外的支出。传统的代码混淆技术会在代码中加入大量额外指令,会导致Gas消耗量显著增加,这对于合约开发者和用户来说是不可接受的。
常用的智能合约逆向分析工具(Erays,Vandal,Gigahorse)在分析智能合约时首先恢复字节码的控制流图(Control Flow Graph,简称CFG),然后基于CFG将智能合约的字节码恢复为人类可读的代码或安全分析工具可用的中间代码表示形式(IntermediateRepresentation,简称IR)。如果CFG恢复失败,逆向分析工具就无法产生正确的分析结果。
发明内容
本发明要解决的技术问题是针对上述现有技术的不足,提供一种智能合约安全增强方法,使逆向工具对智能合约的逆向分析失败,实现对智能合约字节码的保护。
为解决上述技术问题,本发明所采取的技术方案是:一种智能合约安全增强方法,包括以下步骤:
步骤1、获取一份智能合约的原始字节码,并恢复智能合约原始字节码的控制流图,标记所有JUMP/JUMPI指令跳转的目的地址及其入栈指令、JUMP/JUMPI指令的位置以及跳转目的地址和跳转指令之间的前后位置关系;
步骤2、在智能合约原始字节码中寻找可***替换字节码的位置并标记***位置的地址;
在智能合约原始字节码对应的指令序列中,将匹配到的每一组{EQ-PUSH*-JUMPI}指令序列作为待替换的目标代码,用于对智能合约的字节码控制流图进行混淆;
步骤3、用户选择四种地址混淆模式中的任意一种进行字节码替换,根据选择的不同地址混淆模式生成不同的基础替换字节码;
所述四种地址混淆模式分别为:
地址混淆模式1:使用memory存取获得跳转地址;
地址混淆模式2:使用storage存取获得跳转地址;
地址混淆模式3:使用sha3()函数计算获得跳转地址;
地址混淆模式4:使用外部合约调用获得返回值作为跳转地址;
当用户选择地址混淆模式1时,其基础替换字节码为:“[**][**]604052604051”;
当用户选择地址混淆模式2时,其基础替换字节码为:“[**][**]604055604054”;
当用户选择地址混淆模式3时,其基础替换字节码为:
“60ff6050526001606f20600f1660099004[**][**]02”;
当用户选择地址混淆模式4时,其基础替换字节码为:
“[**][**]61007d60048073bde95422681e4c3984635af2f2f35f8c44a4ddc973ffffffffffffffffffffff ffffffffffffffffff1690602001909190505060008173ffffffffffffffffffffffffffffffffffffffff16638dde08406000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156102c65a03f115155050506040518051905090509190505016”;
其中,[**]表示需要进行混淆的跳转地址和入栈操作指令的字节码;
步骤4、重构基础替换字节码和原始字节码中所有的跳转目的地址和跳转指令,恢复智能合约字节码正常的控制流图;
步骤4.1、依次判断步骤1中的每个JUMP/JUMPI指令跳转的目的地址与步骤2中的***位置地址的前后关系,如果跳转的目的地址在***位置之后,则跳转目的地址加上***代码的字节长度,得到新的跳转目的地址;否则JUMP/JUMPI指令跳转的目的地址不变;
步骤4.2、再依次判断步骤4.1得到的每个JUMP/JUMPI指令跳转的目的地址是否发生进位,如果发生进位则根据新的跳转目的地址长度修改对应的入栈操作指令,同时按字节补齐字节码;否则入栈操作指令不变;
步骤4.3、最后依次判断步骤4.1得到的每个JUMP/JUMPI指令跳转目的地址所指向位置之前是否有其他的跳转目的地址发生进位,如果发生进位则根据新的跳转目的地址长度修改对应的入栈操作指令,并按字节补齐跳转目的地址;否则入栈操作指令不变;
步骤5、在基础替换字节码中***混淆后的跳转地址,并将***后的基础替换字节码***到重构后的原始字节码中,生成新的智能合约字节码,增强智能合约的安全性。
采用上述技术方案所产生的有益效果在于:本发明提供的一种智能合约安全增强方法,通过模式识别、控制流图重构和字节码替换这些方法,生成具有混淆功能的智能合约字节码,使常见的智能合约逆向分析工具的分析工作失效,大幅度提高智能合约字节码的不透明性,增加合约的安全性。同时本发明方法只增加了极少的额外指令,使混淆后的智能合约在创建和调用中都不会给开发者和使用者造成Gas消耗增多的负担,大大节省了开发和使用成本。因此,本发明方法作为一种有效的保护智能合约字节码免于逆向分析的方法,可以用于保护合约闭源性、提高合约功能不透明度等需求场景。
附图说明
图1为本发明实施例提供的一种智能合约安全增强方法的过程示意图;
图2为本发明实施例提供的一种智能合约安全增强方法的流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
一种智能合约安全增强方法,如图1和2所示,包括以下步骤:
步骤1、获取一份智能合约的原始字节码,并恢复智能合约原始字节码的控制流图,标记所有JUMP/JUMPI指令跳转的目的地址及其入栈指令、JUMP/JUMPI指令的位置以及跳转目的地址和跳转指令之间的前后位置关系(目的地址指向的位置在跳转指令之前记为forward,反之则记为reverse);
本发明实施例中,获取的智能合约原始字节码为:
606060405260043610603f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806329e99f07146044575b600080fd5b3415604e57600080fd5b606260048080359060200190919050506064565b005b5b6000548110156078576001810190506065565b00a165627a7a72305820aa50e5bcd3618fd692c07f6ec781a31c45d1b012b78656880f2eb90ea188158e0029。
智能合约原始字节码的控制流图中所有JUMP/JUMPI指令跳转的目的地址及其入栈指令、JUMP/JUMPI指令的位置以及跳转目的地址和跳转指令之间的前后位置关系如表1所示(均为十六进制字符串):
表1JUMP/JUMPI指令信息
字节码位置 | 入栈操作指令 | 目的地址 | 方向 |
3e | 60 | 44 | forward |
49 | 60 | 4e | forward |
61 | 60 | 64 | forward |
6e | 60 | 78 | forward |
77 | 60 | 65 | reverse |
步骤2、在智能合约原始字节码中寻找可***替换字节码的位置并标记***位置的地址;
在智能合约原始字节码中每个字节码对应一个操作指令,许多操作码顺序排列构成了一个指令序列;在智能合约原始字节码对应的指令序列中,将匹配到的每一组{EQ-PUSH*-JUMPI}指令序列作为待替换的目标代码,用于对智能合约的字节码控制流图进行混淆;本实施例中只标记第一组该指令序列中PUSH*的地址作为***位置的地址;
在本实施例中***的字节码位置为0x3c,即出现的第一组{EQ-PUSH1-JUMPI}指令序列中PUSH1的字节码位置。表1中字节码位置为3e的跳转目的地址即为有待混淆的跳转地址。
步骤3、用户选择四种地址混淆模式中的任意一种进行字节码替换,根据选择的不同地址混淆模式生成不同的基础替换字节码;
所述四种地址混淆模式分别为:
地址混淆模式1:使用memory存取获得跳转地址;
地址混淆模式2:使用storage存取获得跳转地址;
地址混淆模式3:使用sha3()函数计算获得跳转地址;
地址混淆模式4:使用外部合约调用获得返回值作为跳转地址;
当用户选择地址混淆模式1时,其基础替换字节码为:“[**][**]604052604051”;
当用户选择地址混淆模式2时,其基础替换字节码为:“[**][**]604055604054”;
当用户选择地址混淆模式3时,其基础替换字节码为:
“60ff6050526001606f20600f1660099004[**][**]02”;
当用户选择地址混淆模式4时,其基础替换字节码为:
“[**][**]61007d60048073bde95422681e4c3984635af2f2f35f8c44a4ddc973ffffffffffffffffffffffffffffffffffffffff1690602001909190505060008173ffffffffffffffffffffffffffffffffffffffff16638dde08406000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156102c65a03f115155050506040518051905090509190505016”;
其中,[**]表示需要进行混淆的跳转地址和入栈操作指令的字节码;
由于全部四种地址混淆模式的替换字节码除指令操作不同外,在字节码整体的替换方法和流程上完全一致,因此本实施例只选择地址混淆模式1进行演示,其基础替换字节码为:6044604052604051。
步骤4、重构基础替换字节码和原始字节码中所有的跳转目的地址和跳转指令,恢复智能合约字节码正常的控制流图;
步骤4.1、依次判断步骤1中的每个JUMP/JUMPI指令跳转的目的地址与步骤2中的***位置地址的前后关系,如果跳转的目的地址在***位置之后,则跳转目的地址加上***代码的字节长度,得到新的跳转目的地址;否则JUMP/JUMPI指令跳转的目的地址不变;
本实施例中,执行完步骤4.1后的所有跳转地址及指令情况如表2所示:
表2新跳转地址及指令
字节码位置 | 入栈操作指令 | 目的地址 | 方向 |
44 | 60 | 4a | forward |
4f | 60 | 54 | forward |
67 | 60 | 6a | forward |
74 | 60 | 7e | forward |
7d | 60 | 6b | reverse |
步骤4.2、再依次判断步骤4.1得到的每个JUMP/JUMPI指令跳转的目的地址是否发生进位,如果发生进位则根据新的跳转目的地址长度修改对应的入栈操作指令,同时按字节补齐字节码;否则入栈操作指令不变;
本实施例中,经过步骤4.1后,JUMP/JUMPI指令跳转的目的地址没有发生进位,所以入栈操作指令不变。
步骤4.3、最后依次判断步骤4.1得到的每个JUMP/JUMPI指令跳转目的地址所指向位置之前是否有其他的跳转目的地址发生进位,如果发生进位则根据新的跳转目的地址长度修改对应的入栈操作指令,并按字节补齐跳转目的地址;否则入栈操作指令不变;
本实施例中,经过步骤4.1后,每个JUMP/JUMPI指令跳转目的地址所指向位置之前没有其他的跳转目的地址发生进位,所以入栈操作指令不变。
步骤5、在基础替换字节码中***混淆后的跳转地址,并将***后的基础替换字节码***到重构后的原始字节码中,生成新的智能合约字节码,增强智能合约的安全性。
本实施例中,***混淆后跳转地址和入栈指令后,替换字节码为:604a604052604051,将替换字节码***到重构后的原始字节码中,得到新的智能合约字节码为:
606060405260043610603f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806329e99f0714604a604052604051575b600080fd5b3415605457600080fd5b60626004808035906020019091905050606a565b005b5b600054811015607e57600181019050606b565b00a165627a7a72305820aa50e5bcd3618fd692c07f6ec781a31c45d1b012b78656880f2eb90ea188158e0029。
其中,第二行的字节码604a604052604051为***的替换字节码,第二行的字节码54、第三行的字节码6a、7e,第四行的字节码6b为修改后的跳转地址。至此得到的智能合约字节码在保证合约功能正常的基础上,能够使逆向工具在分析合约字节码时失败,起到了保护合约字节码的作用。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。
Claims (3)
1.一种智能合约安全增强方法,其特征在于:包括以下步骤:
步骤1、获取一份智能合约的原始字节码,并恢复智能合约原始字节码的控制流图,标记所有JUMP/JUMPI指令跳转的目的地址及其入栈指令、JUMP/JUMPI指令的位置以及跳转目的地址和跳转指令之间的前后位置关系;
步骤2、在智能合约原始字节码中寻找可***替换字节码的位置并标记***位置的地址;
步骤3、用户选择四种地址混淆模式中的任意一种进行字节码替换,根据选择的不同地址混淆模式生成不同的基础替换字节码;
所述四种地址混淆模式分别为:
地址混淆模式1:使用memory存取获得跳转地址;
地址混淆模式2:使用storage存取获得跳转地址;
地址混淆模式3:使用sha3()函数计算获得跳转地址;
地址混淆模式4:使用外部合约调用获得返回值作为跳转地址;
当用户选择地址混淆模式1时,其基础替换字节码为:“[**][**]604052604051”;
当用户选择地址混淆模式2时,其基础替换字节码为:“[**][**]604055604054”;
当用户选择地址混淆模式3时,其基础替换字节码为:
“60ff6050526001606f20600f1660099004[**][**]02”;
当用户选择地址混淆模式4时,其基础替换字节码为:
“[**][**]61007d60048073bde95422681e4c3984635af2f2f35f8c44a4ddc973ffffffffffffffffffffff ffffffffffffffffff1690602001909190505060008173ffffffffffffffffffffffffffffffffffffffff16638dde08406000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000 000000000000028152600401602060405180830381600087803b15156102c65a03f115155050506040518051905090509190505016”;
其中,[**]表示需要进行混淆的跳转地址和入栈操作指令的字节码;
步骤4、重构基础替换字节码和原始字节码中所有的跳转目的地址和跳转指令,恢复智能合约字节码正常的控制流图;
步骤5、在基础替换字节码中***混淆后的跳转地址,并将***后的基础替换字节码***到重构后的原始字节码中,生成新的智能合约字节码,增强智能合约的安全性。
2.根据权利要求1所述的一种智能合约安全增强方法,其特征在于:所述步骤2的具体方法为:
在智能合约原始字节码对应的指令序列中,将匹配到的每一组{EQ-PUSH*-JUMPI}指令序列作为待替换的目标代码,用于对智能合约的字节码控制流图进行混淆。
3.根据权利要求1所述的一种智能合约安全增强方法,其特征在于:所述步骤4的具体方法为:
步骤4.1、依次判断步骤1中的每个JUMP/JUMPI指令跳转的目的地址与步骤2中的***位置地址的前后关系,如果跳转的目的地址在***位置之后,则跳转目的地址加上***代码的字节长度,得到新的跳转目的地址;否则JUMP/JUMPI指令跳转的目的地址不变;
步骤4.2、再依次判断步骤4.1得到的每个JUMP/JUMPI指令跳转的目的地址是否发生进位,如果发生进位则根据新的跳转目的地址长度修改对应的入栈操作指令,同时按字节补齐字节码;否则入栈操作指令不变;
步骤4.3、最后依次判断步骤4.1得到的每个JUMP/JUMPI指令跳转目的地址所指向位置之前是否有其他的跳转目的地址发生进位,如果发生进位则根据新的跳转目的地址长度修改对应的入栈操作指令,并按字节补齐跳转目的地址;否则入栈操作指令不变。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010211696.8A CN111563237B (zh) | 2020-03-24 | 2020-03-24 | 一种智能合约安全增强方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010211696.8A CN111563237B (zh) | 2020-03-24 | 2020-03-24 | 一种智能合约安全增强方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111563237A CN111563237A (zh) | 2020-08-21 |
CN111563237B true CN111563237B (zh) | 2023-08-08 |
Family
ID=72071485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010211696.8A Active CN111563237B (zh) | 2020-03-24 | 2020-03-24 | 一种智能合约安全增强方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111563237B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112765676B (zh) * | 2020-12-03 | 2024-07-12 | 杭州趣链科技有限公司 | 一种智能合约执行方法、智能合约执行装置及节点设备 |
CN112631611B (zh) * | 2021-01-06 | 2022-06-03 | 中山大学 | 一种智能庞氏骗局合约识别方法及装置 |
CN113504940B (zh) * | 2021-07-28 | 2023-04-07 | 电子科技大学 | 一种改善智能合约字节码逆向工程效果的方法及装置 |
CN114385185A (zh) * | 2021-12-24 | 2022-04-22 | 深圳前海微众银行股份有限公司 | 一种智能合约的控制流图生成方法及装置 |
CN116743499B (zh) * | 2023-08-09 | 2023-10-27 | 杭州安碣信息安全科技有限公司 | 一种针对智能合约攻击的模仿交易生成方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853357A (zh) * | 2010-04-28 | 2010-10-06 | 北京飞天诚信科技有限公司 | 软件保护方法 |
CN110674533A (zh) * | 2019-09-25 | 2020-01-10 | 浙江大学 | 基于大规模科学核心计算的区块链共识激励***与方法 |
CN110717746A (zh) * | 2019-10-14 | 2020-01-21 | 杭州复杂美科技有限公司 | 一种转账、地址命名方法和***、设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11128603B2 (en) * | 2016-09-30 | 2021-09-21 | Nec Corporation | Method and system for providing a transaction forwarding service in blockchain implementations |
CN111095198B (zh) * | 2019-06-28 | 2023-06-30 | 创新先进技术有限公司 | 用于数据处理的***和方法 |
-
2020
- 2020-03-24 CN CN202010211696.8A patent/CN111563237B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853357A (zh) * | 2010-04-28 | 2010-10-06 | 北京飞天诚信科技有限公司 | 软件保护方法 |
CN110674533A (zh) * | 2019-09-25 | 2020-01-10 | 浙江大学 | 基于大规模科学核心计算的区块链共识激励***与方法 |
CN110717746A (zh) * | 2019-10-14 | 2020-01-21 | 杭州复杂美科技有限公司 | 一种转账、地址命名方法和***、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
"区块链应用***若干脆弱性分析与评测";曾晶晶;《中国优秀硕士学位论文全文数据库——信息科技辑》;20190915;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111563237A (zh) | 2020-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111563237B (zh) | 一种智能合约安全增强方法 | |
CN108932406B (zh) | 虚拟化软件保护方法和装置 | |
TW200841209A (en) | Obfuscating computer program code | |
CN108733988A (zh) | 安卓平台上可执行程序的保护方法 | |
CN108681457B (zh) | 基于代码下沉与残码解释的Android应用程序保护方法 | |
Madou et al. | Software protection through dynamic code mutation | |
US8589897B2 (en) | System and method for branch extraction obfuscation | |
CN112163195B (zh) | 一种基于堆栈隐藏的虚拟机软件保护方法 | |
CN108491235A (zh) | 结合动态加载和函数Native化的DEX保护方法 | |
US20110167407A1 (en) | System and method for software data reference obfuscation | |
CN110245467A (zh) | 基于Dex2C与LLVM的Android应用程序保护方法 | |
CN104462990A (zh) | 字符串加解密方法和装置 | |
CN106960140A (zh) | 虚拟机指令的混淆方法及装置、虚拟机保护*** | |
WO2021244054A1 (zh) | 基于智能合约字节码特征的合约代码混淆平台和混淆方法 | |
US8661535B2 (en) | Method for making secure the execution of an intermediate language software code in a portable device | |
CN107203500A (zh) | 基于递归替换展开回溯的excel公式面向对象语言的自动转换方法 | |
CN108733990B (zh) | 一种基于区块链的文件保护方法及终端设备 | |
CN113626773B (zh) | 一种基于中间语言的代码保护方法 | |
CN111190585B (zh) | 基于字节码增强技术实现java模式匹配特性的方法 | |
US7958490B2 (en) | System for automating the definition of application objects supporting undoing, redoing compressing and logging operations | |
He et al. | Tamperproofing a software watermark by encoding constants | |
US11256786B2 (en) | Method to secure a software code | |
CN114637988A (zh) | 一种面向二进制的函数级软件随机化方法 | |
CN112114809B (zh) | 一种程序代码安全防护方法、装置及存储介质 | |
CN108399068A (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 |