{"id":20618234,"url":"https://github.com/tddschn/virustotal-tddschn","last_synced_at":"2025-04-15T11:38:52.322Z","repository":{"id":65420170,"uuid":"498810730","full_name":"tddschn/virustotal-tddschn","owner":"tddschn","description":null,"archived":false,"fork":false,"pushed_at":"2023-05-09T01:21:28.000Z","size":123,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-28T19:38:30.054Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tddschn.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":null,"support":null}},"created_at":"2022-06-01T16:18:29.000Z","updated_at":"2023-03-08T22:54:14.000Z","dependencies_parsed_at":"2023-01-30T03:31:18.765Z","dependency_job_id":null,"html_url":"https://github.com/tddschn/virustotal-tddschn","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tddschn%2Fvirustotal-tddschn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tddschn%2Fvirustotal-tddschn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tddschn%2Fvirustotal-tddschn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tddschn%2Fvirustotal-tddschn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tddschn","download_url":"https://codeload.github.com/tddschn/virustotal-tddschn/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249062034,"owners_count":21206615,"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":[],"created_at":"2024-11-16T12:07:38.699Z","updated_at":"2025-04-15T11:38:52.290Z","avatar_url":"https://github.com/tddschn.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VirusTotal Utility Library and Command Line Tools\n\n- [VirusTotal Utility Library and Command Line Tools](#virustotal-utility-library-and-command-line-tools)\n  - [Installation](#installation)\n    - [pipx](#pipx)\n    - [pip](#pip)\n  - [Utilities](#utilities)\n    - [vtpy](#vtpy)\n      - [Features](#features)\n        - [Homebrew integration](#homebrew-integration)\n        - [macOS specific features](#macos-specific-features)\n      - [Usage](#usage)\n  - [Develop](#develop)\n\n## Installation\n\n### pipx\n\nThis is the recommended installation method.\n\n```\n$ pipx install virustotal-tddschn\n```\n\n### [pip](https://pypi.org/project/virustotal-tddschn/)\n\n```\n$ pip install virustotal-tddschn\n```\n\n## Utilities\n\n### vtpy\n\n\n#### Features\n\n##### Homebrew integration\n- `--brew` \u0026 `--cask`: Parsing Homebrew's DSL `formula` and `cask` files, extracting the package checksum with matching CPU arch\n\n    \u003cdetails\u003e\n    \u003csummary\u003eClick to expand example\u003c/summary\u003e\n\n    ```\n    $ vtpy -w inkscape -B\n    \n    File path:       /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask/Casks/inkscape.rb\n    SHA256 checksum: 8117d5d864358c9f626ce574d07d2f121ad96fc96a535cc3fddaba3c74bd3279\n    VirusTotal URL:  https://www.virustotal.com/gui/search/8117d5d864358c9f626ce574d07d2f121ad96fc96a535cc3fddaba3c74bd3279\n    ```\n    \u003c!-- Two important rules:\n    Make sure you have an empty line after the closing \u003c/summary\u003e tag, otherwise the markdown/code blocks won't show correctly.\n    Make sure you have an empty line after the closing \u003c/details\u003e tag if you have multiple collapsible sections. --\u003e\n    \u003c/details\u003e\n\n\n- `--brew-cache`: Locating the `brew`-downloaded package in `brew`'s cache\n\n    \u003cdetails\u003e\n    \u003csummary\u003eClick to expand example\u003c/summary\u003e\n\n    ```\n    $ vtpy -c google-chrome -b firefox -B\n    \n    File path:       /Users/tscp/Library/Caches/Homebrew/downloads/88881e66883c4776fff9b3019b48a26795020439a33ddbedd3bd4620283aecd2--googlechrome.dmg\n    SHA256 checksum: 201739d3cf941d33daf605351160f22bdd5877070267e2b42f37efa661378772\n    VirusTotal URL:  https://www.virustotal.com/gui/search/201739d3cf941d33daf605351160f22bdd5877070267e2b42f37efa661378772\n    ```\n    \u003c!-- Two important rules:\n    Make sure you have an empty line after the closing \u003c/summary\u003e tag, otherwise the markdown/code blocks won't show correctly.\n    Make sure you have an empty line after the closing \u003c/details\u003e tag if you have multiple collapsible sections. --\u003e\n    \u003c/details\u003e\n\n\n##### macOS specific features\n- `--mac`: Locating binaries inside macOS app bundles (the `.app` directories).\n\n    \u003cdetails\u003e\n    \u003csummary\u003eClick to expand example\u003c/summary\u003e\n\n    ```\n    $ vtpy -m /Applications/kitty.app -B\n    \n    File path:       /Applications/kitty.app/Contents/MacOS/kitty\n    SHA256 checksum: ca6aabac5bd9cd9dde7e3c713eae2031aabec08129218817aecbccb5408b3b0b\n    VirusTotal URL:  https://www.virustotal.com/gui/search/ca6aabac5bd9cd9dde7e3c713eae2031aabec08129218817aecbccb5408b3b0b\n    ```\n    \u003c!-- Two important rules:\n    Make sure you have an empty line after the closing \u003c/summary\u003e tag, otherwise the markdown/code blocks won't show correctly.\n    Make sure you have an empty line after the closing \u003c/details\u003e tag if you have multiple collapsible sections. --\u003e\n    \u003c/details\u003e\n\n\n#### Usage\n\n```\n$ vtpy --help\n\nusage: vtpy [-h] [--hash HASH] [-f FILE] [-b browser] [-B] [-ldl] [-w BREW] [-C] [-c BREW] [-m APP] [-F PATH] [-V]\n\nSearch file or Homebrew package checksum on VirusTotal\n\noptions:\n  -h, --help            show this help message and exit\n  --hash HASH           The hash to search (default: None)\n  -f FILE, --file FILE  The file to hash and check (default: None)\n  -b browser, --browser browser\n                        Browser to open URLs (default: chrome)\n  -B, --no-browser      Do not open URLs in a browser (default: False)\n  -ldl, --latest-download\n                        Use the latest downloaded file (default: False)\n  -w BREW, --brew BREW  Use the checksum in Homebrew formula or cask file (default: None)\n  -C, --cask            Use cask (default: None)\n  -c BREW, --brew-cache BREW\n                        Use brew downloaded cache (default: None)\n  -m APP, --mac APP     Path to app bundle (default: None)\n  -F PATH, --brew-file PATH\n                        Use the checksum in the brew formula or cask file (default: None)\n  -V, --version         show program's version number and exit\n```\n\n\n\n\n## Develop\n\n```\n$ git clone https://github.com/tddschn/virustotal-tddschn.git\n$ cd virustotal-tddschn\n$ poetry install\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftddschn%2Fvirustotal-tddschn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftddschn%2Fvirustotal-tddschn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftddschn%2Fvirustotal-tddschn/lists"}