{
  "id": "pwntools",
  "name": "pwntools",
  "homepage": "https://docs.pwntools.com/",
  "executables": [
    "pwn"
  ],
  "dotfiles": {
    "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
    },
    "subcommand": [
      {
        "path": [
          "cyclic"
        ],
        "label": "Cyclic pattern",
        "description": "Print a cyclic pattern of a given length, or look up an offset in one.",
        "source": [
          {
            "id": "src",
            "kind": "help",
            "url": "https://github.com/Gallopsled/pwntools/blob/dev/pwnlib/commandline/cyclic.py",
            "revision": "2026-10-27",
            "evidence": "    'cyclic',\n    help = \"Cyclic pattern creator/finder\",\n    '-a', '--alphabet',\n    help = 'The alphabet to use in the cyclic pattern (defaults to all lower case letters)',\n    '-n', '--length',\n    help = 'Size of the unique subsequences (defaults to 4).'\n    '-l', '-o', '--offset', '--lookup',\n    help = 'Do a lookup instead printing the alphabet',\n    'count',\n    help='Number of characters to print'\n"
          }
        ],
        "field": [
          {
            "id": "count",
            "label": "Length",
            "description": "Number of characters to print.",
            "type": "integer",
            "position": 0,
            "sources": [
              "src"
            ]
          },
          {
            "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"
            ]
          },
          {
            "id": "length",
            "label": "Subsequence size",
            "description": "Size of the unique subsequences (default 4).",
            "type": "integer",
            "option": [
              "--length",
              "-n"
            ],
            "sources": [
              "src"
            ]
          },
          {
            "id": "alphabet",
            "label": "Alphabet",
            "description": "Defaults to all lower case letters.",
            "type": "string",
            "option": [
              "--alphabet",
              "-a"
            ],
            "sources": [
              "src"
            ]
          }
        ],
        "task": [
          {
            "id": "generate",
            "label": "Generate a pattern",
            "fields": [
              "count",
              "length",
              "alphabet"
            ],
            "required": [
              "count"
            ]
          },
          {
            "id": "find",
            "label": "Find an offset",
            "fields": [
              "lookup",
              "length",
              "alphabet"
            ],
            "required": [
              "lookup"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "count",
              "lookup"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "length",
              "alphabet"
            ]
          }
        ]
      },
      {
        "path": [
          "checksec"
        ],
        "label": "Check binary security",
        "description": "Print the security settings of one or more ELF binaries.",
        "source": [
          {
            "id": "src",
            "kind": "help",
            "url": "https://github.com/Gallopsled/pwntools/blob/dev/pwnlib/commandline/checksec.py",
            "revision": "2026-10-27",
            "evidence": "    'checksec',\n    help = 'Check binary security settings',\n    'elf',\n    help='Files to check'\n"
          }
        ],
        "field": [
          {
            "id": "elf",
            "label": "Binaries",
            "type": "path",
            "position": 0,
            "multiple": true,
            "path": {
              "kind": "file",
              "role": "input",
              "must_exist": true
            },
            "sources": [
              "src"
            ]
          }
        ],
        "task": [
          {
            "id": "check",
            "label": "Check binaries",
            "fields": [
              "elf"
            ],
            "required": [
              "elf"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "elf"
            ]
          }
        ]
      }
    ]
  }
}
