MATH is static analyzer for Teal code. It parses the Teal program, and builds its CFG. This project has been built on top of the great work by Crytic on Tealer.
This tool is a part of the unpublished paper MATH - Finding and Fixing Exploits on Algorand, and runs two detectors by default.
Num | Check | What it Detects | Type |
---|---|---|---|
1 | bSubtract | Detect instances of the byte subtraction vulnerability | Stateful |
2 | mathploit | Detect instances of the math exploit | Stateful |
All the detectors are run by default
- Print CFG (
--print-cfg
)
Printers output dot
files.
Use xdot
to open the files (sudo apt install xdot
).
Run
python3 setup.py install
We recommend to install the tool in a virtualenv.
tealer code.teal
The following shows the CFG from algorand/smart-contracts.
git clone https://github.com/algorand/smart-contracts.git
cd smart-contracts
tealer ./devrel/permission-less-voting/vote_opt_out.teal --print-cfg