Slither基于python开发,它可以无需用户干预的情况下在几秒钟内找到真正的漏洞。它是高度可定制化的,并提供一组API接口来轻松检查和分析Solidity代码。
02.slither基本使用参数解析
slither API中常用对象结构解析
Contract对象常用方法分析及应用示例
介绍Slither中Function对象常用的方法及应用示例
节点、表达式与IR的是什么样的关系?如何根据代码生如何提取出IR指令?在遍历节点时,有哪些对象经常用到。
1.理解irs与irs_ssa的区别。 2.理解实现ssa时的支配边界的定义。 3.理解Node对象常用的方法。
1.理解数据依赖性的概念。 2.在源代码分析时,可以从用户的输入跟踪受影响的合约变量。
09.状态变量覆盖的含义状态变量覆盖是指子类中的状态变量将父类的状态变量进行覆盖,子类和父类使用了相同名称的状态变量。在这种情况下,如果操作子类的状态变量不会修改父类的状态变量,而此时代码的真实意图可能是为了修改父类的状态变量。
1.理解自杀函数检测自杀函数的风险与应用场景。自杀函数可以做为一种隐藏的transfer的手段。 2.shift汇编函数与其它语言的参数不一致,容易混淆。
本文会涉及到slither中几类call的区别,slither遍历node时的常用的递归框架,以及将这两类知识应用到批量函数调用风险的检测中。
遍历所有的节点处理变量读写关系的示例
Slither是一种基于静态分析的漏洞扫描框架,用于检测Solidity智能合约中的安全漏洞。 Slither框架具有以下特点和功能: