• 区块链智能合约安全入门
21年品牌 40万+商家 超1.5亿件商品

区块链智能合约安全入门

全新正版 极速发货

48.27 6.1折 79 全新

仅1件

广东广州
认证卖家担保交易快速发货售后保障

作者天融信科技集团等 著

出版社电子工业出版社

ISBN9787121447563

出版时间2024-08

装帧平装

开本其他

定价79元

货号1203372945

上书时间2024-10-21

曲奇书店

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
目录
目    录
第0章  初探区块链与智能合约1
关于区块链1
区块链定义1
区块链技术1
区块链层级结构2
区块链的优点2
关于智能合约2
以太坊3
第1章  环境准备5
1.1  使用npm安装Remix IDE5
1.2  使用docker安装Remix IDE6
1.3  使用docker安装geth7
1.4  本章总结8
第2章  Remix环境介绍和使用方法9
2.1  Remix环境的使用方法19
部署学习11
2.2  Remix环境的使用方法212
2.2.1  部署学习13
2.2.2  构造函数14
2.2.3  初始化合约余额14
2.3  Remix环境的使用方法315
Remix搭配MetaMask15
2.4  本章总结17
第3章  MetaMask的使用方法18
3.1  安装MetaMask18
3.2  获取测试币20
3.3  MetaMask Api的使用方法21
3.4  本章总结22
第4章  geth的使用方法23
4.1  geth基础命令23
子命令的使用方法24
4.2  console的基础命令25
4.2.1  console中web3对象的命令25
4.2.2  console中的挖矿26
4.3  geth启动节点26
4.3.1  启动节点26
4.3.2  测试节点27
4.3.3  启动参数说明27
4.3.4  关于RPC27
4.3.5  连接节点28
4.3.6  新建用户28
4.3.7  开始挖矿28
4.3.8  测试转账29
4.4  部署智能合约130
4.4.1  使用容器提供例子30
4.4.2  重新编译31
4.5  调用智能合约134
4.6  geth从头搭建私链36
4.6.1  创建目录36
4.6.2  启动私链节点38
4.7  部署智能合约239
4.8  调用智能合约240
4.9  geth的新版本40
4.10  本章总结41
第5章  Solidity语言基础42
5.1  创建合约42
5.2  合约接口43
5.3  变量类型44
5.4  变量修饰44
5.5  类型转换45
5.6  数学运算45
5.7  字符串比较46
5.8  结构体46
5.9  普通数组46
5.10  函数定义及修饰47
5.11  构造函数47
5.12  函数返回值48
5.13  自毁函数48
5.14  fallback函数49
5.15  receive函数50
5.16  msg全局变量和tx全局变量50
5.16.1  msg全局变量50
5.16.2  tx全局变量51
5.17  创建事件52
5.18  循环结构53
5.19  以太币单位53
5.20  转账函数54
5.21  本章总结55
第6章  Solidity数据存储56
6.1  存储中的状态变量存储结构56
6.2  紧凑存储57
6.3  动态大小数据存储58
6.3.1  动态String58
6.3.2  关于length*2问题60
6.4  动态数组存储60
6.5  字典mapping存储61
6.6  本章总结62
第7章  web3.js和web3.py63
7.1  web3.js63
7.2  web3.js配合MetaMask使用64
7.2.1  异步请求方式165
7.2.2  异步请求方式265
7.2.3  异步请求方式366
7.3  常用函数67
7.3.1  hash函数67
7.3.2  与地址相关68
7.3.3  单位转换68
7.3.4  字符串转换68
7.3.5  账户和余额69
7.3.6  获取插槽数据69
7.3.7  获取区块信息69
7.3.8  获取交易信息70
7.3.9  交易签名和发送71
7.3.10  ABI签名和编码73
7.4  web3.js连接节点74
7.5  web3.js部署合约75
7.6  web3.js合约交互77
7.6.1  实例化合约对象77
7.6.2  web3.js call调用77
7.6.3  web3.js send调用78
7.7  web3.py78
7.8  web3.py部署合约79
7.9  web3.py合约交互79
7.10  本章总结80
第8章  利用漏洞81
8.1  关于call函数81
8.1.1  函数选择器(函数签名)81
8.1.2  call函数无参数调用83
8.1.3  call函数有参数调用85
8.1.4  call函数调用其他合约87
8.2  漏洞场景88
8.3  代码分析89
8.4  漏洞复现89
8.5  本章总结91
第9章  重入漏洞92
9.1  关于重入漏洞92
9.2  关于fallback函数92
9.3  攻击场景92
9.4  漏洞场景93
9.5  攻击演示95
9.6  本章总结98
第10章  整型溢出漏洞99
10.1  溢出原理99
10.2  溢出场景100
10.2.1  加法溢出100
10.2.2  减法溢出101
10.3  案例分析102
10.3.1  BEC合约代码片段102
10.3.2  代码分析102
10.4  攻击模拟103
10.5  本章总结105
第11章  访问控制漏洞106
11.1  关于访问控制漏洞106
11.1.1  代码层面的可见性106
11.1.2  逻辑层面的权限约束106
11.2  漏洞场景1106
11.2.1  漏洞场景分析107
11.2.2  漏洞场景演示107
11.2.3  规避建议109
11.3  漏洞场景2109
11.3.1  漏洞场景分析110
11.3.2  漏洞场景演示110
11.3.3  规避建议110
11.4  漏洞场景3111
11.4.1  tx.origin全局变量和msg.sender全局变量111
11.4.2  漏洞场景分析111
11.4.3  漏洞场景演示112
11.4.4  规避建议114
11.5  本章总结114
第12章  未检查返回值115
12.1  低级别调用函数115
12.2  低级别调用中产生异常的原因115
12.3  低级别函数与普通函数调用的区别116
12.4  漏洞场景116
12.4.1  关于send函数117
12.4.2  漏洞场景分析117
12.4.3  漏洞场景演示117
12.5  真实案例119
12.6  漏洞预防120
第13章  可预测随机值121
13.1  随机数生成121
13.1.1  区块变量作为熵源的PRNG121
13.1.2  区块变量测试121
13.2  漏洞场景123
13.2.1  漏洞场景分析123
13.2.2  漏洞场景演示124
13.3  漏洞修复125
第14章  时间控制漏洞126
14.1  关于block.timestamp126
14.2  以太坊中时间戳的合理要求126
14.3  漏洞场景1127
14.3.1  漏洞场景分析127
14.3.2  漏洞场景演示128
14.3.3  另外攻击姿势131
14.4  漏洞场景2132
14.5  本章总结132
第15章  抢先交易漏洞134
15.1  关于抢先交易漏洞134
15.2  满足“抢先交易”的条件134
15.3  决定交易顺序的原则134
15.3.1  手续费高低原则134
15.3.2  先进先出原则135
15.3.3  共识节点排序原则135
15.4  交易池135
15.5  攻击流程136
15.6  漏洞场景分析137
15.7  漏洞场景演示138
15.7.1  本地搭建私链138
15.7.2  错误不期而遇139
15.7.3  改用geth140
15.7.4  部署合约141
15.7.5  攻击演示142
15.7.6  小结143
15.8  本章总结145
第16章  短地址攻击漏洞147
16.1  关于短地址攻击漏洞147
16.2  漏洞场景分析148
16.3  攻击者地址的生成149
16.4  漏洞场景演示150
16.5  本章总结152
第17章  拒绝服务漏洞153
17.1  关于拒绝服务漏洞153
17.2  漏洞场景1153
17.2.1  漏洞场景演示154
17.2.2  selfdestruct函数155
17.3  漏洞场景2156
17.3.1  所有者丢失156
17.3.2  漏洞场景演示156
17.4  漏洞场景3158
17.5  漏洞场景4159
17.5.1  非预期异常159
17.5.2  攻击payload159
17.5.3  漏洞场景演示160
17.6  本章总结161
第18章  账户及账户生成162
18.1  以太坊账户162
18.2  以太坊地址163
18.3  外部账户的生成163
18.4  特定外部账户的生成167
18.5  合约账户的生成168
18.6  Create2170
18.6.1  关于Create2170
18.6.2  Create code170
18.6.3  Factory合约171
18.7  本章总结175
第19章  Ethernaut176
19.1  关于Ethernaut176
19.2  环境准备177
19.2.1  Hello Ethernaut177
19.2.2  安装MetaMask插件177
19.2.3  测试网络的选择177
19.2.4  控制台的使用178
19.3  本章总结178
第20章  Ethernaut Level 1179
20.1  Level 1 Fallback179
20.2  源码分析180
20.2.1  fallback函数180
20.2.2  攻击过程181
20.3  闯关尝试181
20.4  本章总结183
第21章  Ethernaut Level 2~5184
21.1  Level 2 Fallout184
21.1.1  关卡源码184
21.1.2  源码分析185
21.1.3  闯关尝试185
21.2  Level 3 CoinFlip186
21.2.1  关卡源码186
21.2.2  源码分析187
21.2.3  闯关尝试187
21.2.4  攻击payload187
21.2.5  问题总结190
21.3  Level 4 Telephone190
21.3.1  关卡源码190
21.3.2  源码分析191
21.3.3  攻击payload191
21.3.4  闯关尝试191
21.4  Level 5 Token192
21.4.1  关卡源码192
21.4.2  源码分析193
21.4.3  闯关尝试193
21.5  本章总结194
第22章  Ethernaut Level 6~9195
22.1  Level 6 Delegation195
22.1.1  关卡源码195
22.1.2  源码分析196
22.1.3  闯关尝试197
22.1.4  另谋出路198
22.2  Level 7 Force199
22.2.1  关卡源码199
22.2.2  源码分析199
22.2.3  攻击payload200
22.2.4  闯关尝试200
22.3  Leval 8 Vault201
22.3.1  关卡源码201
22.3.2  源码分析202
22.3.3  闯关尝试202
22.4  Level 9 King202
22.4.1  关卡源码203
22.4.2  源码分析203
22.4.3  攻击payload204
22.4.4  闯关尝试204
22.5  本章总结205
第23章  Ethernaut Level 10~13206
23.1  Level 10 Reentrance206
23.1.1  关卡源码206
23.1.2  源码分析207
23.1.3  关于重入漏洞207
23.1.4  攻击payload207
23.1.5  闯关尝试208
23.2  Level 11 Elevator209
23.2.1  关卡源码209
23.2.2  源码分析210
23.2.3  攻击payload210
23.2.4  闯关尝试211
23.3  Level 12 Privacy211
23.3.1  关卡源码211
23.3.2  源码分析212
23.3.3  闯关尝试213
23.4  Level 13 GatekeeperOne214
23.4.1  关卡源码214
23.4.2  源码分析215
23.4.3  攻击payload215
23.4.4  闯关尝试215
23.5  本章总结218
第24章  Ethernaut Level 14~17219
24.1  Level 14 GatekeeperTwo219
24.1.1  关卡源码219
24.1.2  源码分析220
24.1.3  攻击payload221
24.1.4  闯关尝试221
24.2  Level 15 NaughtCoin222
24.2.1  关卡源码222
24.2.2  源码分析223
24.2.3  闯关尝试224
24.3  Level 16 Preservation224
24.3.1  关卡源码224
24.3.2  源码分析225
24.3.3  攻击payload226
24.3.4  闯关尝试227
24.4  Level 17 Recovery228
24.4.1  关卡源码228
24.4.2  源码分析229
24.4.3  闯关尝试229
24.5  本章总结230
第25章  Ethernaut Level 18~20231
25.1  Level 18 MagicNumber231
25.1.1  关卡源码231
25.1.2  源码分析232
25.1.3  闯关尝试233
25.2  Level 19 AlienCodex235
25.2.1  关卡源码235
25.2.2  源码分析235
25.2.3  闯关尝试237
25.3  Level 20 Denial238
25.3.1  关卡源码238
25.3.2  源码分析239
25.3.3  payload240
25.3.4  闯关尝试240
25.4  本章总结242
第26章  通用payload243

内容摘要
《智能合约安全入门》从环境介绍,Solidity、web3基础和漏洞原理及利用方面,详细地介绍智能合约相关漏洞知识。其中,第一部分介绍了 Remix IDE、Metamask 以及geth等环境的安装和使用方法;第二部分介绍了solidity语言的基础知识与基本语法,以及web3的使用方法;第三部分重点讲解了智能合约常见漏洞的基本原理及其攻击方式,同时还增加了 Ethernaut 通关游戏的部分内容,以此来加深对漏洞原理的理解。

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP