首页  软件  游戏  图书  电影  电视剧

请输入您要查询的图书:

 

图书 区块链智能合约安全入门
内容
内容推荐
《智能合约安全入门》从环境介绍,Solidity、web3基础和漏洞原理及利用方面,详细地介绍智能合约相关漏洞知识。其中,第一部分介绍了 Remix IDE、Metamask 以及geth等环境的安装和使用方法;第二部分介绍了solidity语言的基础知识与基本语法,以及web3的使用方法;第三部分重点讲解了智能合约常见漏洞的基本原理及其攻击方式,同时还增加了 Ethernaut 通关游戏的部分内容,以此来加深对漏洞原理的理解。
目录
目 录
第0章 初探区块链与智能合约\t1
关于区块链\t1
区块链定义\t1
区块链技术\t1
区块链层级结构\t2
区块链的优点\t2
关于智能合约\t2
以太坊\t3
第1章 环境准备\t5
1.1 使用npm安装Remix IDE\t5
1.2 使用docker安装Remix IDE\t6
1.3 使用docker安装geth\t7
1.4 本章总结\t8
第2章 Remix环境介绍和使用方法\t9
2.1 Remix环境的使用方法1\t9
部署学习\t11
2.2 Remix环境的使用方法2\t12
2.2.1 部署学习\t13
2.2.2 构造函数\t14
2.2.3 初始化合约余额\t14
2.3 Remix环境的使用方法3\t15
Remix搭配MetaMask\t15
2.4 本章总结\t17
第3章 MetaMask的使用方法\t18
3.1 安装MetaMask\t18
3.2 获取测试币\t20
3.3 MetaMask Api的使用方法\t21
3.4 本章总结\t22
第4章 geth的使用方法\t23
4.1 geth基础命令\t23
子命令的使用方法\t24
4.2 console的基础命令\t25
4.2.1 console中web3对象的命令\t25
4.2.2 console中的挖矿\t26
4.3 geth启动节点\t26
4.3.1 启动节点\t26
4.3.2 测试节点\t27
4.3.3 启动参数说明\t27
4.3.4 关于RPC\t27
4.3.5 连接节点\t28
4.3.6 新建用户\t28
4.3.7 开始挖矿\t28
4.3.8 测试转账\t29
4.4 部署智能合约1\t30
4.4.1 使用容器提供例子\t30
4.4.2 重新编译\t31
4.5 调用智能合约1\t34
4.6 geth从头搭建私链\t36
4.6.1 创建目录\t36
4.6.2 启动私链节点\t38
4.7 部署智能合约2\t39
4.8 调用智能合约2\t40
4.9 geth的新版本\t40
4.10 本章总结\t41
第5章 Solidity语言基础\t42
5.1 创建合约\t42
5.2 合约接口\t43
5.3 变量类型\t44
5.4 变量修饰\t44
5.5 类型转换\t45
5.6 数学运算\t45
5.7 字符串比较\t46
5.8 结构体\t46
5.9 普通数组\t46
5.10 函数定义及修饰\t47
5.11 构造函数\t47
5.12 函数返回值\t48
5.13 自毁函数\t48
5.14 fallback函数\t49
5.15 receive函数\t50
5.16 msg全局变量和tx全局变量\t50
5.16.1 msg全局变量\t50
5.16.2 tx全局变量\t51
5.17 创建事件\t52
5.18 循环结构\t53
5.19 以太币单位\t53
5.20 转账函数\t54
5.21 本章总结\t55
第6章 Solidity数据存储\t56
6.1 存储中的状态变量存储结构\t56
6.2 紧凑存储\t57
6.3 动态大小数据存储\t58
6.3.1 动态String\t58
6.3.2 关于length*2问题\t60
6.4 动态数组存储\t60
6.5 字典mapping存储\t61
6.6 本章总结\t62
第7章 web3.js和web3.py\t63
7.1 web3.js\t63
7.2 web3.js配合MetaMask使用\t64
7.2.1 异步请求方式1\t65
7.2.2 异步请求方式2\t65
7.2.3 异步请求方式3\t66
7.3 常用函数\t67
7.3.1 hash函数\t67
7.3.2 与地址相关\t68
7.3.3 单位转换\t68
7.3.4 字符串转换\t68
7.3.5 账户和余额\t69
7.3.6 获取插槽数据\t69
7.3.7 获取区块信息\t69
7.3.8 获取交易信息\t70
7.3.9 交易签名和发送\t71
7.3.10 ABI签名和编码\t73
7.4 web3.js连接节点\t74
7.5 web3.js部署合约\t75
7.6 web3.js合约交互\t77
7.6.1 实例化合约对象\t77
7.6.2 web3.js call调用\t77
7.6.3 web3.js send调用\t78
7.7 web3.py\t78
7.8 web3.py部署合约\t79
7.9 web3.py合约交互\t79
7.10 本章总结\t80
第8章 利用漏洞\t81
8.1 关于call函数\t81
8.1.1 函数选择器(函数签名)\t81
8.1.2 call函数无参数调用\t83
8.1.3 call函数有参数调用\t85
8.1.4 call函数调用其他合约\t87
8.2 漏洞场景\t88
8.3 代码分析\t89
8.4 漏洞复现\t89
8.5 本章总结\t91
第9章 重入漏洞\t92
9.1 关于重入漏洞\t92
9.2 关于fallback函数\t92
9.3 攻击场景\t92
9.4 漏洞场景\t93
9.5 攻击演示\t95
9.6 本章总结\t98
第10章 整型溢出漏洞\t99
10.1 溢出原理\t99
10.2 溢出场景\t100
10.2.1 加法溢出\t100
10.2.2 减法溢出\t101
10.3 案例分析\t102
10.3.1 BEC合约代码片段\t102
10.3.2 代码分析\t102
10.4 攻击模拟\t103
10.5 本章总结\t105
第11章 访问控制漏洞\t106
11.1 关于访问控制漏洞\t106
11.1.1 代码层面的可见性\t106
11.1.2 逻辑层面的权限约束\t106
11.2 漏洞场景1\t106
11.2.1 漏洞场景分析\t107
11.2.2 漏洞场景演示\t107
11.2.3 规避建议\t109
11.3 漏洞场景2\t109
11.3.1 漏洞场景分析\t110
11.3.2 漏洞场景演示\t110
11.3.3 规避建议\t110
11.4 漏洞场景3\t111
11.4.1 tx.origin全局变量和msg.sender全局变量\t111
11.4.2 漏洞场景分析\t111
11.4.3 漏洞场景演示\t112
11.4.4 规避建议\t114
11.5 本章总结\t114
第12章 未检查返回值\t115
12.1 低级别调用函数\t115
12.2 低级别调用中产生异常的原因\t115
12.3 低级别函数与普通函数调用的区别\t116
12.4 漏洞场景\t116
12.4.1 关于send函数\t117
12.4.2 漏洞场景分析\t117
12.4.3 漏洞场景演示\t117
12.5 真实案例\t119
12.6 漏洞预防\t120
第13章 可预测随机值\t121
13.1 随机数生成\t121
13.1.1 区块变量作为熵源的PRNG\t121
13.1.2 区块变量测试\t121
13.2 漏洞场景\t123
13.2.1 漏洞场景分析\t123
13.2.2 漏洞场景演示\t124
13.3 漏洞修复\t125
第14章 时间控制漏洞\t126
14.1 关于block.timestamp\t126
14.2 以太坊中时间戳的合理要求\t126
14.3 漏洞场景1\t127
14.3.1 漏洞场景分析\t127
14.3.2 漏洞场景演示\t128
14.3.3 另外攻击姿势\t131
14.4 漏洞场景2\t132
14.5 本章总结\t132
第15章 抢先交易漏洞\t134
15.1 关于抢先交易漏洞\t134
15.2 满足“抢先交易”的条件\t134
15.3 决定交易顺序的原则\t134
15.3.1 手续费高低原则\t134
15.3.2 先进先出原则\t135
15.3.3 共识节点排序原则\t135
15.4 交易池\t135
15.5 攻击流程\t136
15.6 漏洞场景分析\t137
15.7 漏洞场景演示\t138
15.7.1 本地搭建私链\t138
15.7.2 错误不期而遇\t139
15.7.3 改用geth\t140
15.7.4 部署合约\t141
15.7.5 攻击演示\t142
15.7.6 小结\t143
15.8 本章总结\t145
第16章 短地址攻击漏洞\t147
16.1 关于短地址攻击漏洞\t147
16.2 漏洞场景分析\t148
16.3 攻击者地址的生成\t149
16.4 漏洞场景演示\t150
16.5 本章总结\t152
第17章 拒绝服务漏洞\t153
17.1 关于拒绝服务漏洞\t153
17.2 漏洞场景1\t153
17.2.1 漏洞场景演示\t154
17.2.2 selfdestruct函数\t155
17.3 漏洞场景2\t156
17.3.1 所有者丢失\t156
17.3.2 漏洞场景演示\t156
17.4 漏洞场景3\t158
17.5 漏洞场景4\t159
17.5.1 非预期异常\t159
17.5.2 攻击payload\t159
17.5.3 漏洞场景演示\t160
17.6 本章总结\t161
第18章 账户及账户生成\t162
18.1 以太坊账户\t162
18.2 以太坊地址\t163
18.3 外部账户的生成\t163
18.4 特定外部账户的生成\t167
18.5 合约账户的生成\t168
18.6 Create2\t170
18.6.1 关于Create2\t170
18.6.2 Create code\t170
18.6.3 Factory合约\t171
18.7 本章总结\t175
第19章 Ethernaut\t176
19.1 关于Ethernaut\t176
19.2 环境准备\t177
19.2.1 Hello Ethernaut\t177
19.2.2 安装MetaMask插件\t177
19.2.3 测试网络的选择\t177
19.2.4 控制台的使用\t178
19.3 本章总结\t178
第20章 Ethernaut Level 1\t179
20.1 Level 1 Fallback\t179
20.2 源码分析\t180
20.2.1 fallback函数\t180
20.2.2 攻击过程\t181
20.3 闯关尝试\t181
20.4 本章总结\t183
第21章 Ethernaut Level 2~5\t184
21.1 Level 2 Fallout\t184
21.1.1 关卡源码\t184
21.1.2 源码分析\t185
21.1.3 闯关尝试\t185
21.2 Level 3 CoinFlip\t186
21.2.1 关卡源码\t186
21.2.2 源码分析\t187
21.2.3 闯关尝试\t187
21.2.4 攻击payload\t187
21.2.5 问题总结\t190
21.3 Level 4 Telephone\t190
21.3.1 关卡源码\t190
21.3.2 源码分析\t191
21.3.3 攻击payload\t191
21.3.4 闯关尝试\t191
21.4 Level 5 Token\t192
21.4.1 关卡源码\t192
21.4.2 源码分析\t193
21.4.3 闯关尝试\t193
21.5 本章总结\t194
第22章 Ethernaut Level 6~9\t195
22.1 Level 6 Delegation\t195
22.1.1 关卡源码\t195
22.1.2 源码分析\t196
22.1.3 闯关尝试\t197
22.1.4 另谋出路\t198
22.2 Level 7 Force\t199
22.2.1 关卡源码\t199
22.2.2 源码分析\t199
22.2.3 攻击payload\t200
22.2.4 闯关尝试\t200
22.3 Leval 8 Vault\t201
22.3.1 关卡源码\t201
22.3.2 源码分析\t202
22.3.3 闯关尝试\t202
22.4 Level 9 King\t202
22.4.1 关卡源码\t203
22.4.2 源码分析\t203
22.4.3 攻击payload\t204
22.4.4 闯关尝试\t204
22.5 本章总结\t205
第23章 Ethernaut Level 10~13\t206
23.1 Level 10 Reentrance\t206
23.1.1 关卡源码\t206
23.1.2 源码分析\t207
23.1.3 关于重入漏洞\t207
23.1.4 攻击payload\t207
23.1.5 闯关尝试\t208
23.2 Level 11 Elevator\t209
23.2.1 关卡源码\t209
23.2.2 源码分析\t210
23.2.3 攻击payload\t210
23.2.4 闯关尝试\t211
23.3 Level 12 Privacy\t211
23.3.1 关卡源码\t211
23.3.2 源码分析\t212
23.3.3 闯关尝试\t213
23.4 Level 13 GatekeeperOne\t214
23.4.1 关卡源码\t214
23.4.2 源码分析\t215
23.4.3 攻击payload\t215
23.4.4 闯关尝试\t215
23.5 本章总结\t218
第24章 Ethernaut Level 14~17\t219
24.1 Level 14 GatekeeperTwo\t219
24.1.1 关卡源码\t219
24.1.2 源码分析\t220
24.1.3 攻击payload\t221
24.1.4 闯关尝试\t221
24.2 Level 15 NaughtCoin\t222
24.2.1 关卡源码\t222
24.2.2 源码分析\t223
24.2.3 闯关尝试\t224
24.3 Level 16 Preservation\t224
24.3.1 关卡源码\t224
24.3.2 源码分析\t225
24.3.3 攻击payload\t226
24.3.4 闯关尝试\t227
24.4 Level 17 Recovery\t228
24.4.1 关卡源码\t228
24.4.2 源码分析\t229
24.4.3 闯关尝试\t229
24.5 本章总结\t230
第25章 Ethernaut Level 18~20\t231
25.1 Level 18 MagicNumber\t231
25.1.1 关卡源码\t231
25.1.2 源码分析\t232
25.1.3 闯关尝试\t233
25.2 Level 19 AlienCodex\t235
25.2.1 关卡源码\t235
25.2.2 源码分析\t235
25.2.3 闯关尝试\t237
25.3 Level 20 Denial\t238
25.3.1 关卡源码\t238
25.3.2 源码分析\t239
25.3.3 payload\t240
25.3.4 闯关尝试\t240
25.4 本章总结\t242
第26章 通用payload\t243
标签
缩略图
书名 区块链智能合约安全入门
副书名
原作名
作者 天融信科技集团等
译者
编者
绘者
出版社 电子工业出版社
商品编码(ISBN) 9787121447563
开本 其他
页数 260
版次 1
装订
字数
出版时间 2024-08-01
首版时间
印刷时间 2024-09-01
正文语种
读者对象
适用范围
发行范围
发行模式 实体书
首发网站
连载网址
图书大类 教育考试-考试-计算机类
图书小类
重量
CIP核字
中图分类号 TP311.135.9
丛书名
印张
印次 1
出版地
整理
媒质
用纸
是否注音
影印版本
出版商国别
是否套装
著作权合同登记号
版权提供者
定价
印数
出品方
作品荣誉
主角
配角
其他角色
一句话简介
立意
作品视角
所属系列
文章进度
内容简介
作者简介
目录
文摘
安全警示 适度休息有益身心健康,请勿长期沉迷于阅读小说。
随便看

 

兰台网图书档案馆全面收录古今中外各种图书,详细介绍图书的基本信息及目录、摘要等图书资料。

 

Copyright © 2004-2025 xlantai.com All Rights Reserved
更新时间:2025/5/5 21:48:44