Skip to content

AChecker (Access Control Checker) is an automated static analysis tool for detecting access control vulnerabilities in smart contracts.

License

Notifications You must be signed in to change notification settings

DependableSystemsLab/AChecker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AChecker

AChecker (Access Control Checker) is an automated static analysis tool for detecting access control vulnerabilities in Ethereum smart contracts.

For more details about AChecker, please reference our paper published in ICSE 2023 AChecker: Statically Detecting Smart Contract Access Control Vulnerabilities

If you use AChecker, please cite this paper.

@inproceedings{ghaleb2023achecker,
 title={AChecker: Statically Detecting Smart Contract Access Control Vulnerabilities},
 author={Ghaleb, Asem and Rubin, Julia and Pattabiraman, Karthik},
 booktitle={Proceedings of the 45th IEEE/ACM International Conference on Software Engineering},
 year={2023}
}

Getting Started

Note: We tested all scripts provided in this package on an Ubuntu 20.04 LTS machine.

Requirements

  • Python 3.8+

Building AChecker

To build the tool manually, we provide a requirements.txt file and the script setup.py to simply install the dependencies AChecker requires and build everything as follows.

Run the following command. Please make sure you are using Python 3.8 or higher.

cd AChecker
python -m pip install -r requirements.txt

Analyzing a smart contract

Use the following command to run AChecker on a contract bytecode.

python bin/achecker.py -f [path_of_the_contract_bytecode_file] -b

As an example, the following command will run AChecker to analyze the contract with CVE ID 'CVE-2021-34273' in the file named 'CVE-2021-34273.code'

python bin/achecker.py -f CVE-2021-34273.code -b -m 8

The option -m enables setting the allocated memory for the analysis (in gigabytes). In this example, the allocated memory limit is set to 8 GB. The default value is 6 GB when the option -m is not used.

Contact

For questions about our paper or this code, please get in touch with Asem Ghaleb (aghaleb@alumni.ubc.ca)

About

AChecker (Access Control Checker) is an automated static analysis tool for detecting access control vulnerabilities in smart contracts.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages