{"id":13531879,"url":"https://github.com/JakeWnuk/ptt","last_synced_at":"2025-04-01T20:30:35.807Z","repository":{"id":234837139,"uuid":"784461686","full_name":"JakeWnuk/ptt","owner":"JakeWnuk","description":"Password Transformation Tool (ptt) is a versatile utility designed for password cracking.","archived":false,"fork":false,"pushed_at":"2025-03-05T16:41:53.000Z","size":159,"stargazers_count":27,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-05T17:40:11.486Z","etag":null,"topics":["cracking-hashes","hashcat","hashcat-rules-generator","hashcracking","maskcat","password","rulecat"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JakeWnuk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-09T22:38:04.000Z","updated_at":"2025-03-05T16:40:11.000Z","dependencies_parsed_at":"2024-04-21T03:00:21.651Z","dependency_job_id":"bb9a1aac-49ea-48cd-b96f-294abd840781","html_url":"https://github.com/JakeWnuk/ptt","commit_stats":null,"previous_names":["jakewnuk/ptt"],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JakeWnuk%2Fptt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JakeWnuk%2Fptt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JakeWnuk%2Fptt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JakeWnuk%2Fptt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JakeWnuk","download_url":"https://codeload.github.com/JakeWnuk/ptt/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246709921,"owners_count":20821296,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cracking-hashes","hashcat","hashcat-rules-generator","hashcracking","maskcat","password","rulecat"],"created_at":"2024-08-01T07:01:06.512Z","updated_at":"2025-04-01T20:30:35.799Z","avatar_url":"https://github.com/JakeWnuk.png","language":"Go","funding_links":[],"categories":["Wordlist tools"],"sub_categories":["Generation/Manipulation"],"readme":" Password Transformation Tool (`ptt`) is a versatile utility designed for password cracking. It facilitates the creation of custom rules and transformations, as well as the generation of wordlists. This tool supports processing data from files, URLs, and standard input, streamlining cracking workflows.\n\n`PTT` is written in `Go`, is compatible with multiple platforms, and can be easily integrated into existing workflows. The tool is designed to be user-friendly and intuitive, with a wide range of features and options.\n\n## Features:\n- **Multiple Input Sources:** Process data from files, URLs, and standard input. Accepts directories, files, and URLs as input. Use multiple flags to combine sources.\n- **Deduplication and Frequency Filtering:** Remove duplicates and filter by\n  frequency automatically.\n- **Output Formatting:** Output data in JSON format or Markdown for easy parsing and\n  analysis. Easily load and chain previous results for further processing.\n- **Debugging Mode:** Enable debug mode to display verbose output and\n  statistics with multiple levels of verbosity.\n- **Transformation Modes:** Choose from various transformation modes to\n  manipulate input data.\n- **Wordlist Generation:** Generate wordlists from input data using custom rules\n  and transformations.\n- **Rule Creation:** Create custom rules for appending, prepending,\n  overwriting, and toggling strings.\n- **Mask Making:** Create `Hashcat` masks to mask, remove, retain, or swap characters\n  in strings.\n- **Multibyte Support:** Support for multibyte characters in transformations.\n- **URL Parsing:** Parse URLs with strict, permissive, or maximum parsing\n  modes to create wordlists from URLs.\n- **Analysis Tools:** Analyze input data with statistics and verbose output.\n- **Template Files:** Use template files to apply multiple transformations and\n  operations to input data.\n- **Rule Application \u0026 Simplification:** Apply rules to input data and simplify\n  rules for optimization by using the [HCRE](https://git.launchpad.net/hcre/tree/README.md) library.\n\n## Getting Started:\n\nUsage documentation can be found in the `/docs/USAGE.md` directory or on the repository here:\n- [GitHub Link](https://github.com/JakeWnuk/ptt/tree/main/docs/USAGE.md)\n\n### Install:\n\nFrom source with `go`:\n```\ngo install github.com/jakewnuk/ptt@latest\n```\nFrom `git` clone then build with `go`:\n```\ngit clone https://github.com/JakeWnuk/ptt \u0026\u0026 cd ptt \u0026\u0026 go build ./main.go \u0026\u0026 mv ./main ~/go/bin/ptt \u0026\u0026 ptt\n```\nFrom `docker` with the program as the entry point:\n```\ndocker run -it -v ${PWD}:/data jwnuk/ptt\n``` \nFrom `git` then build with `docker`:\n```\ngit clone https://github.com/JakeWnuk/ptt \u0026\u0026 cd ptt \u0026\u0026 docker build -t ptt . \u0026\u0026 docker run -it -v ${PWD}:/data ptt\n```\n\n---\n### Usage:\n```\nUsage of Password Transformation Tool (ptt) version (1.0.0):\n\nptt [options] [...]\nAccepts standard input and/or additonal arguments.\n\nThe -f, -k, -r, -tf, -tp, and -u flags can be used multiple times, together, and with files or directories.\n-------------------------------------------------------------------------------------------------------------\nOptions:\nThese modify or filter the transformation mode.\n\n  -b    Bypass map creation and use stdout as primary output. Disables some options.\n  -d int\n        Enable debug mode with verbosity levels [0-2].\n  -f value\n        Read additional files for input.\n  -i value\n        Starting index for transformations if applicable. Accepts ranges separated by '-'.\n  -ic\n        Ignore case when processing output and converts all output to lowercase.\n  -k value\n        Only keep items in a file.\n  -l value\n        Only output items of a certain length (does not adjust for rules). Accepts ranges separated by '-'.\n  -m int\n        Minimum numerical frequency to include in output.\n  -md\n        If Markdown format should be used for output instead.\n  -n int\n        Maximum number of items to return in output.\n  -o string\n        Output to JSON file in addition to stdout. Accepts file names and paths.\n  -p int\n        Change parsing mode for URL input. [0 = Strict, 1 = Permissive, 2 = Maximum].\n  -r value\n        Only keep items not in a file.\n  -rm string\n        Replacement mask for transformations if applicable. (default \"uldsbt\")\n  -t string\n        Transformation to apply to input.\n  -tf value\n        Read additional files for transformations if applicable.\n  -tp value\n        Read a template file for multiple transformations and operations. Cannot be used with -t flag.\n  -u value\n        Read additional URLs for input.\n  -v    Show verbose output when possible. (Can show additional metadata in some modes.)\n  -vv\n        Show statistics output when possible.\n  -vvv\n        Show verbose statistics output when possible.\n  -w value\n        Number of words for transformations if applicable. Accepts ranges separated by '-'.\n-------------------------------------------------------------------------------------------------------------\nTransformation Modes:\nThese create or alter based on the selected mode.\n\n  -t decode\n        Transforms input by HTML and Unicode escape decoding.\n  -t dehex\n        Transforms input by decoding $HEX[...] formatted strings.\n  -t encode\n        Transforms input by HTML and Unicode escape encoding.\n  -t hex\n        Transforms input by encoding strings into $HEX[...] format.\n  -t mask -rm [uldsb] -v\n        Transforms input by masking characters with provided mask.\n  -t mask-match -tf [file]\n        Transforms input by keeping only strings with matching masks from a mask file.\n  -t mask-pop -rm [uldsbt]\n        Transforms input by 'popping' tokens from character boundaries using the provided mask.\n  -t mask-remove -rm [uldsb]\n        Transforms input by removing characters with provided mask.\n  -t mask-retain -rm [uldsb] -tf [file] -v\n        Transforms input by creating masks that still retain strings from file.\n  -t mask-swap -tf [file]\n        Transforms input by swapping tokens from a mask/partial mask input and a transformation file of tokens.\n  -t passphrase -w [words]\n        Transforms input by generating passphrases from sentences with a given number of words.\n  -t regram -w [words]\n        Transforms input by 'regramming' sentences into new n-grams with a given number of words.\n  -t replace-all -tf [file]\n        Transforms input by replacing all strings with all matches from a ':' separated file.\n  -t rule-append\n        Transforms input by creating append rules.\n  -t rule-append-remove\n        Transforms input by creating append-remove rules.\n  -t rule-apply -tf [file]\n        Transforms input by applying rules to strings using the HCRE library.\n  -t rule-insert -i [index]\n        Transforms input by creating insert rules starting at index.\n  -t rule-overwrite -i [index]\n        Transforms input by creating overwrite rules starting at index.\n  -t rule-prepend\n        Transforms input by creating prepend rules.\n  -t rule-prepend-remove\n        Transforms input by creating prepend-remove rules.\n  -t rule-prepend-toggle\n        Transforms input by creating prepend-toggle rules.\n  -t rule-simplify\n        Transforms input by simplifying rules to efficient equivalents using the HCRE library.\n  -t rule-toggle -i [index]\n        Transforms input by creating toggle rules starting at index.\n  -t substring -i [index]\n        Transforms input by extracting substrings starting at index and ending at index.\n  -t swap-single -tf [file]\n        Transforms input by swapping tokens once per string per replacement with exact matches from a ':' separated file.\n-------------------------------------------------------------------------------------------------------------\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJakeWnuk%2Fptt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FJakeWnuk%2Fptt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJakeWnuk%2Fptt/lists"}