以太坊安全工具套件全解析 - 从静态分析到符号执行
开发工具
1. Not So Smart Contracts
2. Slither
Slither是针对Solidity的静态分析工具,可检测重入漏洞、构造函数错误、方法访问控制等问题。使用方法:
$ slither.py contract.sol
工具会直接输出发现的漏洞信息,建议在每次代码提交时运行。
3. Echidna
Echidna是面向EVM字节码的智能模糊测试工具。使用步骤:
- 为现有代码添加测试用例
- 执行
./echidna-test contract.sol
- 验证不变量是否成立
建议达到80%以上的测试覆盖率。
4. Manticore
Manticore通过符号执行模拟多合约/多交易攻击。基础用法:
manticore contract.sol --contract ContractName --txaccount [attacker|owner]
高级用法可通过API实现:初始化合约参数→定义符号交易→审查异常状态。
逆向工具
1. EVM操作码数据库
提供完整的EVM指令集参考,比查阅黄皮书更高效。
2. Ethersplay
图形化EVM反汇编工具,支持:
- 方法恢复
- 动态跳转计算
- 源码匹配
- 二进制差异分析
支持.evm和.bytecode两种输入格式。
3. IDA-EVM
IDA Pro插件,提供函数恢复、动态跳转计算、库签名应用等功能。
4. Rattle
EVM静态分析器,通过SSA形式优化指令(减少75%指令量)。使用方法:
$ ./rattle -i path/to/input.evm
后续更新
2018年8月新增项目:
- Awesome Ethereum Security:精选安全资源列表
- PyEVMAsm:带CLI和Python API的EVM汇编器/反汇编器
- Etheno:JSON RPC多路复用器
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
公众号二维码