{"id":13531477,"url":"https://github.com/wireghoul/graudit","last_synced_at":"2026-10-19T11:51:01.286Z","repository":{"id":592160,"uuid":"226723","full_name":"wireghoul/graudit","owner":"wireghoul","description":"grep rough audit - source code auditing tool","archived":false,"fork":false,"pushed_at":"2025-12-19T02:24:05.000Z","size":531,"stargazers_count":1690,"open_issues_count":0,"forks_count":258,"subscribers_count":34,"default_branch":"master","last_synced_at":"2026-09-28T12:50:53.374Z","etag":null,"topics":["security","security-audit","security-tools","shell","source-code","vulnerability-detection"],"latest_commit_sha":null,"homepage":"http://www.justanotherhacker.com","language":"Shell","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/wireghoul.png","metadata":{"files":{"readme":"README.md","changelog":"Changelog","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"wireghoul"}},"created_at":"2009-06-14T05:59:17.000Z","updated_at":"2026-09-28T08:09:10.000Z","dependencies_parsed_at":"2026-01-11T10:01:05.928Z","dependency_job_id":null,"html_url":"https://github.com/wireghoul/graudit","commit_stats":{"total_commits":582,"total_committers":20,"mean_commits":29.1,"dds":"0.20446735395189009","last_synced_commit":"f7962ebaa62b6c4c21cecc10447e23e07d03c533"},"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/wireghoul/graudit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wireghoul%2Fgraudit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wireghoul%2Fgraudit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wireghoul%2Fgraudit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wireghoul%2Fgraudit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wireghoul","download_url":"https://codeload.github.com/wireghoul/graudit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wireghoul%2Fgraudit/sbom","scorecard":{"id":1241030,"data":{"date":"2026-01-05","repo":{"name":"github.com/wireghoul/graudit","commit":"7d19c1a9326e4dec647552b7f884cddad191c3d0"},"scorecard":{"version":"v5.4.1-0.20251227023010-525a93017816","commit":"525a93017816fa74238c545bdecac6af16ce00f1"},"score":6.5,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/525a93017816fa74238c545bdecac6af16ce00f1/docs/checks.md#maintained"}},{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/525a93017816fa74238c545bdecac6af16ce00f1/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/525a93017816fa74238c545bdecac6af16ce00f1/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/525a93017816fa74238c545bdecac6af16ce00f1/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/525a93017816fa74238c545bdecac6af16ce00f1/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/525a93017816fa74238c545bdecac6af16ce00f1/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/525a93017816fa74238c545bdecac6af16ce00f1/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/525a93017816fa74238c545bdecac6af16ce00f1/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/525a93017816fa74238c545bdecac6af16ce00f1/docs/checks.md#vulnerabilities"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/525a93017816fa74238c545bdecac6af16ce00f1/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/525a93017816fa74238c545bdecac6af16ce00f1/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/525a93017816fa74238c545bdecac6af16ce00f1/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/525a93017816fa74238c545bdecac6af16ce00f1/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/525a93017816fa74238c545bdecac6af16ce00f1/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/525a93017816fa74238c545bdecac6af16ce00f1/docs/checks.md#sast"}}]},"last_synced_at":"2026-01-11T14:17:05.731Z","repository_id":592160,"created_at":"2026-01-11T14:17:05.731Z","updated_at":"2026-01-11T14:17:05.731Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":344872684,"owners_count":38356429,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-10-03T21:59:58.778Z","status":"online","status_checked_at":"2026-10-19T02:00:06.414Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["security","security-audit","security-tools","shell","source-code","vulnerability-detection"],"created_at":"2024-08-01T07:01:03.287Z","updated_at":"2026-10-19T11:51:01.279Z","avatar_url":"https://github.com/wireghoul.png","language":"Shell","funding_links":["https://github.com/sponsors/wireghoul"],"categories":["\u003ca id=\"9eee96404f868f372a6cbc6769ccb7f8\"\u003e\u003c/a\u003e新添加的","\u003ca id=\"9eee96404f868f372a6cbc6769ccb7f8\"\u003e\u003c/a\u003e工具","Shell (16)","Shell","Shell (473)"],"sub_categories":["\u003ca id=\"31185b925d5152c7469b963809ceb22d\"\u003e\u003c/a\u003e新添加的"],"readme":"graudit\n===============================================================================\ngraudit is a simple script and signature sets that allows you to find potential\nsecurity flaws in source code using the GNU utility grep. It's comparable to\nother static analysis applications like RATS, SWAAT and flaw-finder while\nkeeping the technical requirements to a minimum and being very flexible.\n\nInstallation\n===============================================================================\nInstallation can be done as a user or globally as root, simply run make with\nthe userinstall or install argument. It is however recommended to use graudit\ndirectly by cloning the git repository as it includes additional database rules\nnot included on the distribution files. This also enables you to get updates\nbetween releases. To do this run the following command:\n\n```\ngit clone https://github.com/wireghoul/graudit\n```\n\nYou can then add graudit to your path, using the appropriate values for\nyour preferred shell:\n```\necho 'PATH=\"$HOME/graudit:${PATH:+:${PATH}}\"; export PATH;' \u003e\u003e ~/.bashrc\n```\n\nIf graudit is not in your home directory you may wish to set the GRDIR\nenvironment variable to the signatures directory in your `.bashrc` file.\n```\nexport GRDIR=/path/to/graudit/signatures\n```\n\nUsage\n===============================================================================\ngraudit supports several options and tries to follow good shell practices. For\na list of the options you can run graudit -h or see below. The simplest way to\nuse graudit is;\n\n```\ngraudit [opts] /path/to/scan\n\nOPTIONS\n  -d \u003cdbname\u003e database to use or /path/to/file.db (uses default if not specified)\n  -A scan unwanted and difficult (ALL) files\n  -x exclude these files (comma separated list: -x *.js,*.sql)\n  -i case in-sensitive scan\n  -c \u003cnum\u003e number of lines of context to display before and after a match, default is 1\n\n  -B suppress banner\n  -L vim friendly lines\n  -b colour blind friendly template\n  -z suppress colors\n  -Z high contrast colors\n  \n  -l lists databases available\n  -v prints version number\n  -h prints this help screen\n```\n\nYou can set default commandline options via the GRARGS environment variable.\nThis may affect the use of graudit in scripts so it's only recommended to use\nthe B,L,b,z and Z options for this purpose.\n```\necho 'GRARGS=\"-b -L\"; export GRARGS' \u003e\u003e ~/.bashrc\n```\n\n\nDatabases\n===============================================================================\ngraudit uses extended regular expressions (POSIX) as it's signatures and comes\nwith several databases ready for use. You can extend the existing databases or\nmake your own if you require additional signatures.\n\nDatabases can be loaded from multiple locations, the order of precedence is as\nfollows:\n  1. Custom location specified via the GRDIR environment variable\n  2. /usr/share/graudit/\n  3. $HOME/.graudit/\n  4. A relative signatures/ directory from the graudit location\n  5. A relative misc/ directory from the graudit location\n  6. $HOME/graudit/signatures/\n  7. Any file that is specified with a full path, i.e: /home/user/my.db\n  8. Rules can be read from stdin by supplying - or /dev/stdin as the database\n\nA list of the database files in order of precedence is shown with the -l switch:\n`graudit -l`\n\nThe following databases are included:\n  - actionscript\n  - android\n  - asp\n  - c\n  - cobol\n  - default (used if -d argument is omitted)\n  - dotnet\n  - eiffel\n  - exec\n  - fruit\n  - go\n  - ios\n  - java\n  - js\n  - nim\n  - perl\n  - php\n  - python\n  - ruby\n  - scala\n  - secrets\n  - spsqli\n  - sql\n  - strings\n  - typescript\n  - xss\n\n\nTutorial\n===============================================================================\nA tutorial/introduction video can be found at: https://youtu.be/b8Xbzer1n94\n\n\nContributing\n===============================================================================\nIf you would like to contribute to graudit, please fork the repository at\nhttps://github.com/wireghoul/graudit and use that. In particular language rules,\nadditional scripts and documentation contributions are very welcome.\nIf you like graudit then please say thanks and share it around.\n\nIf you wish to get in contact with me, shoot me a line on github @wireghoul.\n\nCredits\n===============================================================================\n  * Wireghoul - http://www.justanotherhacker.com\n  * Various others - see Changelog\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwireghoul%2Fgraudit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwireghoul%2Fgraudit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwireghoul%2Fgraudit/lists"}