Mythril是以太坊官方推荐的智能合约安全检测工具,包含众多漏洞检测模型。
Slither是一款以太坊智能合约静态安全检测工具
02.slither基本使用参数解析
介绍Slither中Function对象常用的方法及应用示例
本文会涉及到slither中几类call的区别,slither遍历node时的常用的递归框架,以及将这两类知识应用到批量函数调用风险的检测中。
slither API中常用对象结构解析
Contract对象常用方法分析及应用示例
节点、表达式与IR的是什么样的关系?如何根据代码生如何提取出IR指令?在遍历节点时,有哪些对象经常用到。
1.理解irs与irs_ssa的区别。 2.理解实现ssa时的支配边界的定义。 3.理解Node对象常用的方法。
1.理解数据依赖性的概念。 2.在源代码分析时,可以从用户的输入跟踪受影响的合约变量。
09.状态变量覆盖的含义状态变量覆盖是指子类中的状态变量将父类的状态变量进行覆盖,子类和父类使用了相同名称的状态变量。在这种情况下,如果操作子类的状态变量不会修改父类的状态变量,而此时代码的真实意图可能是为了修改父类的状态变量。
1.理解自杀函数检测自杀函数的风险与应用场景。自杀函数可以做为一种隐藏的transfer的手段。 2.shift汇编函数与其它语言的参数不一致,容易混淆。
本文深入探讨了Mythril工具在智能合约安全分析中的应用,介绍了其配置、执行流程及分析方法,通过实例详细说明了如何识别合约中的安全漏洞,尤其是参数限制对合约部署的影响。作者利用Mythril的特色功能强调了其在智能合约审核中的重要性,并提出了一些使用建议。整体内容适合对智能合约安全有一定基础的读者,值得深入学习。
遍历所有的节点处理变量读写关系的示例
本文介绍了Slither静态分析工具,包括其安装方法、功能特性及如何使用该工具进行Solidity智能合约的分析。作者演示了如何通过Slither检测合约中的潜在漏洞,并讨论了工具在CI环境中的适用性,强调了静态分析的优缺点。值得注意的是,文章提供了详细的代码示例和操作步骤,适合软件开发者和区块链初学者阅读。