Open-source scanner for multi-file obfuscation, encoding chains, and invisible unicode tricks — across twelve languages. Runs on your machine. No account.
Install once. Scan a path or public GitHub URL. Open the offline triage HTML.
Techniques that plain string-match scanners often miss until the payload is assembled.
exec('os.system(...)')
# U+200B inside the sink token
eval(base64_decode(...)) # unfold depth ≤ 3, then re-scan
a.js → b.js → lifecycle # cross-file taint to exec sink
Single-file HTML with filters, keyboard navigation, Print/PDF, and ZIP download of JSON + SARIF. No login.
Isolated CLI via pipx (recommended), or pip, or from git.
pipx install shardguard shardguard scan .
pip install shardguard shardguard scan . --open
pipx install git+https://github.com/abdullahhanif-001/shardguard.git
Drop into GitHub Actions; upload SARIF as an artifact.
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with: { python-version: '3.12' }
- run: pip install shardguard
- run: shardguard scan . --depth universal --report-dir out --skip-verify
- uses: actions/upload-artifact@v4
with: { name: shardguard-sarif, path: out/findings.sarif }
Static analysis cannot prove the absence of all bugs. VM-based JavaScript obfuscators without dynamic execution, fully dynamic import(expr), and authorization logic flaws are out of scope or undecidable. See docs/RICE_BOUNDS.md.