Skip to main content

A tool for generating worst-case inputs for algorithms

Project description

ACsploit: a tool for generating worst-case inputs for algorithms

By Two Six Technologies

ACsploit is an interactive command-line utility to generate worst-case inputs to commonly used algorithms. These worst-case inputs are designed to result in the target program utilizing a large amount of resources (e.g. time or memory).

ACsploit is designed to be easy to use and contribute to. Future features will include adding arbitrary constraints to inputs, creating an API, and hooking into running programs to feed worst-case input directly to functions of interest.

Join us on the ACsploit Slack here!

Screenshot

Usage

Start ACsploit with python3 acsploit.py. From there, you can use the help command to see what commands are available. You can call help on any of them to learn more about how to use that command, such as help set.

To see the available exploits, use the show command. To stage one for use, use use [exploit_name]. To see a description of the exploit, run info. At any point, you can run options to see the current input, output, and exploit options, and then use set [option_name] [value] to set an option. To see detailed descriptions of the options, use options describe.

Tab completion is enabled for exploit and option names.

Finally, use run to generate output from the exploit.

ACsploit supports abbreviated commands, bash commands using !, CTRL+R history search, and more.

Command-line Options

--load-file SCRIPT runs the commands in SCRIPT as if they had been entered in an interactive ACsploit session and then exits. # can be used for comments as in Python.

--debug enables debug mode, in which ACsploit prints stack-traces when errors occur.

Documentation

Documents are generated using pdoc3 and can be found in the docs directory.

Generating Documents

Run pip3 install pdoc3 to install the documentation dependencies and then run python generate_docs.py

Warning

Caution should be used in generating and accessing ACsploit exploits. Using unreasonable exploit parameters may cause denial of service on generation. Additionally, the canned exploits (e.g. compression bombs) may cause denial of service if accessed by relevant applications.

Tests

Tests for ACsploit can be invoked from inside the acsploit directory by running python -m pytest test. Alternatively, individual tests can be invoked by running python -m pytest test/path/to/test.py.

To run the tests and obtain an HTML coverage report run the following:

python -m pytest --cov=. --cov-report html:cov test/

Finally to run the tests in parellel the -n flag can be used followed by the number of tests to run in parallel. On Linux and Mac the following works:

python -m pytest -n`nproc` --cov=. --cov-report html:cov test/

Contributing to ACsploit

We welcome community contributions to all aspects of ACsploit! For guidelines on contributing, please see CONTRIBUTING.md

License

Acsploit is available under the 3-clause BSD license (see LICENSE)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

acsploit-1.0.0.tar.gz (82.0 kB view details)

Uploaded Source

Built Distribution

acsploit-1.0.0-py3-none-any.whl (135.2 kB view details)

Uploaded Python 3

File details

Details for the file acsploit-1.0.0.tar.gz.

File metadata

  • Download URL: acsploit-1.0.0.tar.gz
  • Upload date:
  • Size: 82.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for acsploit-1.0.0.tar.gz
Algorithm Hash digest
SHA256 a8036fd88c4d5dea7f4ca7d509a037c97d8d001ddca4ed666039f7ac462ac180
MD5 465d08b634f5eb1b40dbb3f4f29f52c7
BLAKE2b-256 b0e37c70712a7e05c2e33613e95ef0208f2ad2118da141b24f711d28062619fe

See more details on using hashes here.

File details

Details for the file acsploit-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: acsploit-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 135.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for acsploit-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cfe7cbca0e48f9ba91ecd763dbbc947b93018ef26cf55fcd9b65012844d25a34
MD5 f8588782d38c0caadb2600c69aa31016
BLAKE2b-256 26fea94070c96cf30957edcfe7354bfe9fcd400568a1e385387e5b45febb42be

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page