Teal分析器。
项目描述
Tealer
Tealer是Teal代码的静态分析器。它解析Teal程序并构建其CFG。分析器附带一套漏洞检测器和打印器,允许快速审查合约。此外,tealer允许通过正则表达式进行自定义路径发现,并可配置为跟踪应用程序的分组信息。
用法
检测漏洞
tealer detect --contracts file.teal
运行打印器
tealer print <printer_name> --contracts file.teal
运行正则表达式引擎
tealer regex <regex_file.txt> --contracts file.teal
有关其他配置,请参阅用法文档。
检测器
编号 | 检测器 | 检测内容 | 适用范围 | 影响 | 置信度 |
---|---|---|---|---|---|
1 | is-deletable |
可删除应用程序 | 有状态 | 高 | 高 |
2 | is-updatable |
可升级应用程序 | 有状态 | 高 | 高 |
3 | unprotected-deletable |
未受保护的可删除应用程序 | 有状态 | 高 | 高 |
4 | unprotected-updatable |
未受保护的可升级应用程序 | 有状态 | 高 | 高 |
5 | group-size-check |
未验证GroupSize的情况下使用绝对索引 | 有状态,无状态 | 高 | 高 |
6 | can-close-account |
缺少CloseRemainderTo字段验证 | 无状态 | 高 | 高 |
7 | can-close-asset |
缺少AssetCloseTo字段验证 | 无状态 | 高 | 高 |
8 | missing-fee-check |
缺少费用字段验证 | 无状态 | 高 | 高 |
9 | rekey-to |
可重新密钥的签名逻辑 | 无状态 | 高 | 高 |
10 | constant-gtxn |
未优化的Gtxn | 无状态 | 优化 | 高 |
11 | self-access |
未优化的self访问 | 无状态 | 优化 | 高 |
12 | sender-access |
未优化的Gtxn | 无状态 | 优化 | 高 |
更多信息,请参阅
打印机
编号 | 打印机 | 打印内容 |
---|---|---|
1 | 调用图 |
将合约的调用图导出为dot文件 |
2 | cfg |
导出整个合约的CFG |
3 | human-summary |
打印合约的人类可读摘要 |
4 | subroutine-cfg |
导出每个子程序的CFG |
5 | transaction-context |
输出GroupIndices、GroupSize的可能值 |
打印机输出dot
文件。使用xdot
打开文件(sudo apt install xdot
)。
正则表达式
Tealer可以使用regex
子命令检测给定标签和指令集之间是否存在路径:tealer regex regex.txt --contracts file.teal
。
正则表达式文件格式如下
label =>
ins1
ins2
如果有匹配,Tealer将生成包含图的DOT文件。
例如,运行tealer regex tests/regex/regex.txt --contract tests/regex/vote_approval.teal
,其中
这将生成regex_result.dot
。
如何安装
pip3 install tealer
使用Git
git clone https://github.com/crytic/tealer.git && cd tealer
make dev
分组配置
为了帮助Tealer推理旨在在事务组中运行的应用程序,用户可以通过配置文件提供组信息
文件格式仍在开发中,未来可能会发生变化
许可协议
Tealer根据AGPLv3许可协议许可和分发。如果您希望获得许可协议的例外情况,请联系我们Contact us。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。
源代码分发
tealer-0.1.2.tar.gz (179.3 kB 查看哈希值)
构建分发
tealer-0.1.2-py3-none-any.whl (242.5 kB 查看哈希值)