id = "pwntools" name = "pwntools" homepage = "https://docs.pwntools.com/" executables = ["pwn"] [dotfiles] # Official pwnlib.config documentation lists ~/.pwn.conf and # $XDG_CONFIG_HOME/pwn.conf (defaulting to ~/.config/pwn.conf) as the user # configuration files; /etc/pwn.conf is system-wide and is intentionally not # catalogued. # https://docs.pwntools.com/en/stable/config.html paths = [ "~/.pwn.conf", "[configHome]/pwn.conf", ] secret = [] [commands] format = 1 label = "pwn command-line tools" description = "The cyclic pattern tool and checksec. Other pwn subcommands are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.subcommand]] path = ["cyclic"] label = "Cyclic pattern" description = "Print a cyclic pattern of a given length, or look up an offset in one." [[commands.subcommand.source]] id = "src" kind = "help" url = "https://github.com/Gallopsled/pwntools/blob/dev/pwnlib/commandline/cyclic.py" revision = "2026-10-27" evidence = """ 'cyclic', help = "Cyclic pattern creator/finder", '-a', '--alphabet', help = 'The alphabet to use in the cyclic pattern (defaults to all lower case letters)', '-n', '--length', help = 'Size of the unique subsequences (defaults to 4).' '-l', '-o', '--offset', '--lookup', help = 'Do a lookup instead printing the alphabet', 'count', help='Number of characters to print' """ [[commands.subcommand.field]] id = "count" label = "Length" description = "Number of characters to print." type = "integer" position = 0 sources = ["src"] [[commands.subcommand.field]] id = "lookup" label = "Look up value" description = "Find the offset of a value (e.g. 0x61616168 or an ASCII subpattern) instead of printing the pattern." type = "string" option = ["--lookup", "-l"] sources = ["src"] [[commands.subcommand.field]] id = "length" label = "Subsequence size" description = "Size of the unique subsequences (default 4)." type = "integer" option = ["--length", "-n"] sources = ["src"] [[commands.subcommand.field]] id = "alphabet" label = "Alphabet" description = "Defaults to all lower case letters." type = "string" option = ["--alphabet", "-a"] sources = ["src"] [[commands.subcommand.task]] id = "generate" label = "Generate a pattern" fields = ["count", "length", "alphabet"] required = ["count"] [[commands.subcommand.task]] id = "find" label = "Find an offset" fields = ["lookup", "length", "alphabet"] required = ["lookup"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["count", "lookup"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["length", "alphabet"] [[commands.subcommand]] path = ["checksec"] label = "Check binary security" description = "Print the security settings of one or more ELF binaries." [[commands.subcommand.source]] id = "src" kind = "help" url = "https://github.com/Gallopsled/pwntools/blob/dev/pwnlib/commandline/checksec.py" revision = "2026-10-27" evidence = """ 'checksec', help = 'Check binary security settings', 'elf', help='Files to check' """ [[commands.subcommand.field]] id = "elf" label = "Binaries" type = "path" position = 0 multiple = true path = { kind = "file", role = "input", must_exist = true } sources = ["src"] [[commands.subcommand.task]] id = "check" label = "Check binaries" fields = ["elf"] required = ["elf"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["elf"]