├── .github ├── dependabot.yml └── workflows │ └── pip-audit.yml ├── .gitignore ├── .idea ├── inspectionProfiles │ └── profiles_settings.xml ├── misc.xml ├── modules.xml ├── rattle.iml └── vcs.xml ├── LICENSE ├── README.md ├── example.png ├── inputs ├── 0x1b0db6198bab2e573c62f209d32f99ad4c483dee.evm.bin ├── Lottery │ ├── Lottery.bin │ ├── Lottery.ethervm.io-decompile.txt │ ├── Lottery.ethervm.io-disasm.txt │ ├── Lottery.sol │ └── README.md ├── crashing │ ├── 0x37eb3cb268a0dd1bc2c383296fe34f58c5b5db8b.bin │ └── OpenAddressLottery.sol ├── evm_1_byte_hashes.bin ├── inline_calls │ ├── C.bin │ ├── C.binja.evm │ └── C.sol ├── kingofether │ ├── KingOfTheEtherThrone.bin │ ├── KingOfTheEtherThrone.binja │ ├── KingOfTheEtherThrone.cfg │ └── KingOfTheEtherThrone.sol ├── niceguy │ └── NiceGuyTax.binja.bin ├── remix_default_contract │ ├── ballot.runtime.evm.bin │ └── ballot.runtime.evm.bytecode ├── slither_ssa_examples │ ├── free_looping.bin │ └── free_looping.sol └── sycep │ ├── SYCEarlyPurchase.binaryninja.bin │ └── id ├── logo.png ├── logo_s.png ├── rattle-cli.py ├── rattle ├── __init__.py ├── analyze.py ├── evmasm.py ├── hashes.py ├── main.py ├── recover.py └── ssa.py ├── requirements.txt ├── support └── ethersplay_cfg.py └── tests ├── expected ├── 0x37eb3cb268a0dd1bc2c383296fe34f58c5b5db8b.expected-ssa.lst ├── C.expected-ssa.lst ├── KingOfTheEtherThrone.expected-ssa.lst ├── Lottery.expected-ssa.lst ├── NiceGuyTax.expected-ssa.lst ├── SYCEarlyPurchase.expected-ssa.lst ├── ballot.runtime.expected-ssa.lst └── free_looping.expected-ssa.lst └── test_inputs_regression.py /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/workflows/pip-audit.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/.github/workflows/pip-audit.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/.gitignore -------------------------------------------------------------------------------- /.idea/inspectionProfiles/profiles_settings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/.idea/inspectionProfiles/profiles_settings.xml -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/.idea/misc.xml -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/.idea/modules.xml -------------------------------------------------------------------------------- /.idea/rattle.iml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/.idea/rattle.iml -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/.idea/vcs.xml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/README.md -------------------------------------------------------------------------------- /example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/example.png -------------------------------------------------------------------------------- /inputs/0x1b0db6198bab2e573c62f209d32f99ad4c483dee.evm.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/inputs/0x1b0db6198bab2e573c62f209d32f99ad4c483dee.evm.bin -------------------------------------------------------------------------------- /inputs/Lottery/Lottery.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/inputs/Lottery/Lottery.bin -------------------------------------------------------------------------------- /inputs/Lottery/Lottery.ethervm.io-decompile.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/inputs/Lottery/Lottery.ethervm.io-decompile.txt -------------------------------------------------------------------------------- /inputs/Lottery/Lottery.ethervm.io-disasm.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/inputs/Lottery/Lottery.ethervm.io-disasm.txt -------------------------------------------------------------------------------- /inputs/Lottery/Lottery.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/inputs/Lottery/Lottery.sol -------------------------------------------------------------------------------- /inputs/Lottery/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/inputs/Lottery/README.md -------------------------------------------------------------------------------- /inputs/crashing/0x37eb3cb268a0dd1bc2c383296fe34f58c5b5db8b.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/inputs/crashing/0x37eb3cb268a0dd1bc2c383296fe34f58c5b5db8b.bin -------------------------------------------------------------------------------- /inputs/crashing/OpenAddressLottery.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/inputs/crashing/OpenAddressLottery.sol -------------------------------------------------------------------------------- /inputs/evm_1_byte_hashes.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/inputs/evm_1_byte_hashes.bin -------------------------------------------------------------------------------- /inputs/inline_calls/C.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/inputs/inline_calls/C.bin -------------------------------------------------------------------------------- /inputs/inline_calls/C.binja.evm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/inputs/inline_calls/C.binja.evm -------------------------------------------------------------------------------- /inputs/inline_calls/C.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/inputs/inline_calls/C.sol -------------------------------------------------------------------------------- /inputs/kingofether/KingOfTheEtherThrone.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/inputs/kingofether/KingOfTheEtherThrone.bin -------------------------------------------------------------------------------- /inputs/kingofether/KingOfTheEtherThrone.binja: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/inputs/kingofether/KingOfTheEtherThrone.binja -------------------------------------------------------------------------------- /inputs/kingofether/KingOfTheEtherThrone.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/inputs/kingofether/KingOfTheEtherThrone.cfg -------------------------------------------------------------------------------- /inputs/kingofether/KingOfTheEtherThrone.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/inputs/kingofether/KingOfTheEtherThrone.sol -------------------------------------------------------------------------------- /inputs/niceguy/NiceGuyTax.binja.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/inputs/niceguy/NiceGuyTax.binja.bin -------------------------------------------------------------------------------- /inputs/remix_default_contract/ballot.runtime.evm.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/inputs/remix_default_contract/ballot.runtime.evm.bin -------------------------------------------------------------------------------- /inputs/remix_default_contract/ballot.runtime.evm.bytecode: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/inputs/remix_default_contract/ballot.runtime.evm.bytecode -------------------------------------------------------------------------------- /inputs/slither_ssa_examples/free_looping.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/inputs/slither_ssa_examples/free_looping.bin -------------------------------------------------------------------------------- /inputs/slither_ssa_examples/free_looping.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/inputs/slither_ssa_examples/free_looping.sol -------------------------------------------------------------------------------- /inputs/sycep/SYCEarlyPurchase.binaryninja.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/inputs/sycep/SYCEarlyPurchase.binaryninja.bin -------------------------------------------------------------------------------- /inputs/sycep/id: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/inputs/sycep/id -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/logo.png -------------------------------------------------------------------------------- /logo_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/logo_s.png -------------------------------------------------------------------------------- /rattle-cli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/rattle-cli.py -------------------------------------------------------------------------------- /rattle/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/rattle/__init__.py -------------------------------------------------------------------------------- /rattle/analyze.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/rattle/analyze.py -------------------------------------------------------------------------------- /rattle/evmasm.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/rattle/evmasm.py -------------------------------------------------------------------------------- /rattle/hashes.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/rattle/hashes.py -------------------------------------------------------------------------------- /rattle/main.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/rattle/main.py -------------------------------------------------------------------------------- /rattle/recover.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/rattle/recover.py -------------------------------------------------------------------------------- /rattle/ssa.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/rattle/ssa.py -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/requirements.txt -------------------------------------------------------------------------------- /support/ethersplay_cfg.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/support/ethersplay_cfg.py -------------------------------------------------------------------------------- /tests/expected/0x37eb3cb268a0dd1bc2c383296fe34f58c5b5db8b.expected-ssa.lst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/tests/expected/0x37eb3cb268a0dd1bc2c383296fe34f58c5b5db8b.expected-ssa.lst -------------------------------------------------------------------------------- /tests/expected/C.expected-ssa.lst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/tests/expected/C.expected-ssa.lst -------------------------------------------------------------------------------- /tests/expected/KingOfTheEtherThrone.expected-ssa.lst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/tests/expected/KingOfTheEtherThrone.expected-ssa.lst -------------------------------------------------------------------------------- /tests/expected/Lottery.expected-ssa.lst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/tests/expected/Lottery.expected-ssa.lst -------------------------------------------------------------------------------- /tests/expected/NiceGuyTax.expected-ssa.lst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/tests/expected/NiceGuyTax.expected-ssa.lst -------------------------------------------------------------------------------- /tests/expected/SYCEarlyPurchase.expected-ssa.lst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/tests/expected/SYCEarlyPurchase.expected-ssa.lst -------------------------------------------------------------------------------- /tests/expected/ballot.runtime.expected-ssa.lst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/tests/expected/ballot.runtime.expected-ssa.lst -------------------------------------------------------------------------------- /tests/expected/free_looping.expected-ssa.lst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/tests/expected/free_looping.expected-ssa.lst -------------------------------------------------------------------------------- /tests/test_inputs_regression.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crytic/rattle/HEAD/tests/test_inputs_regression.py --------------------------------------------------------------------------------