
स्क्रीनशॉट में क्रेडेंशियल्स खोजें, उन्हें अपने सीक्रेट मैनेजर में सहेजें, और उन्हें छवि से अपरिवर्तनीय रूप से रिडैक्ट करें — स्थानीय, ऑफ़लाइन, OCR-आधारित।
स्क्रीनशॉट में क्रेडेंशियल्स खोजें, उन्हें एक सीक्रेट मैनेजर में निकालें, और उन्हें छवियों से अपरिवर्तनीय रूप से संपादित करें — ताकि सीक्रेट आपके नोट्स, स्क्रीनशॉट और ~/Desktop में सड़ न जाएं।
स्थानीय। ऑफ़लाइन। शांत। डिफ़ॉल्ट रूप से कोई नेटवर्क, कोई टेलीमेट्री नहीं।
screenscrub दो मौजूदा टूल श्रेणियों को जोड़ता है: GUI रिडैक्टर (Xnapper, Shhshot, macshot) PII को हाथ से धुंधला करते हैं लेकिन एक पते या पते से एक सीक्रेट को नहीं बता सकते या कैप्चर नहीं कर सकते कि वे क्या छिपाते हैं; सीक्रेट स्कैनर (gitleaks, TruffleHog) वास्तविक क्रेडेंशियल्स ढूंढते हैं लेकिन केवल टेक्स्ट में, कभी PNG में नहीं। screenscrub gitleaks-ग्रेड डिटेक्शन — साथ ही एक रेड-टीम पैक और एंट्रॉपी विश्लेषण — को पिक्सेल पर, हेडलेसली लाता है: यह प्रत्येक सीक्रेट को आपके मैनेजर में कैप्चर करता है, छवि को अपरिवर्तनीय रूप से संपादित करता है, और परिणाम को फिर से OCR करता है यह साबित करने के लिए कि सीक्रेट चला गया है।
एक सुरक्षा जाल, गारंटी नहीं — screenscrub कभी दावा नहीं करता कि कोई छवि "गारंटीशुदा साफ" है; OCR और डिटेक्शन दोनों चीज़ों को मिस कर सकते हैं, इसलिए हमेशा परिणामों पर नज़र रखें। इस पर भरोसा करने से पहले यह पढ़ें।
screenscrub scan ~/Screenshots # ड्राई रन: डिटेक्ट + रिपोर्ट, कोई लेखन नहीं
screenscrub clean ~/Screenshots --out ~/clean \ # निकालें, संपादित करें, सत्यापित करें, क्वारंटाइन
--sink file://./secrets.age --yes
screenscrub verify ~/clean # साबित करें कि फ़ोल्डर साफ है (यदि नहीं तो बाहर निकलें ≠0)
screenscrub clean --keep-originals ./tmp
Cleaning 7 image(s) in ./tmp (7 worker(s))…
[1/7] tmp/ssh.jpg — 6 region(s) → tmp/ssh.redacted.jpg ✓ सत्यापित
[2/7] tmp/key.jpg — 13 region(s) → tmp/key.redacted.jpg ✓ सत्यापित
[3/7] tmp/test2.jpg — 12 region(s) → tmp/test2.redacted.jpg ✓ सत्यापित
[4/7] tmp/test5.jpg — 13 region(s) → tmp/test5.redacted.jpg ✓ सत्यापित
[5/7] tmp/test3.jpg — error: verification failed: 4 secret region(s) still detectable in tmp/test3.redacted.jpg; original preserved
[6/7] tmp/test4.jpg — error: verification failed: 9 secret region(s) still detectable in tmp/test4.redacted.jpg; original preserved
[7/7] tmp/test6.jpg — error: verification failed: 7 secret region(s) still detectable in tmp/test6.redacted.jpg; original preserved
7/7 फ़ाइल(एँ) चिह्नित, 382 क्षेत्र कुल, 3 फ़ाइल(एँ) त्रुटियुक्त/असत्यापित।
प्रकार से:
high-entropy 343
keyword-secret 15
db-connection-uri 10
github-pat 6
unix-crypt-hash 6
aws-access-key 1
stripe-key 1
मैन्युअल ध्यान देने की आवश्यकता (3):
tmp/test3.jpg — error: verification failed: 4 secret region(s) still detectable in tmp/test3.redacted.jpg; original preserved
tmp/test4.jpg — error: verification failed: 9 secret region(s) still detectable in tmp/test4.redacted.jpg; original preserved
tmp/test6.jpg — error: verification failed: 7 secret region(s) still detectable in tmp/test6.redacted.jpg; original preserved
| पहले — सीक्रेट मान दिखाई दे रहे हैं | बाद में clean — अपरिवर्तनीय रूप से संपादित |
![]() |
![]() |
वही स्क्रीनशॉट clean से पहले और बाद में: प्रत्येक सीक्रेट मान को पिक्सेल में डिकोड किया जाता है, बॉक्स किया जाता है, और एक नई छवि (अपरिवर्तनीय) में फिर से एनकोड किया जाता है — लेबल और संरचना पढ़ने योग्य रहती है।
PATH पर tesseract OCR बाइनरी की आवश्यकता है:
brew install tesseractwinget install UB-Mannheim.TesseractOCR (या UB Mannheim इंस्टॉलर)apt-get install tesseract-ocrफिर बनाएँ:
go build -o screenscrub ./cmd/screenscrub
macOS (arm64/amd64) और Windows (amd64) के लिए क्रॉस-कम्पाइल करता है — यह cgo का उपयोग करने के बजाय tesseract को शेल आउट करता है। केवल macOS पर परीक्षण किया गया।
scan <dir|file> — ड्राई रनपता लगाएँ और रिपोर्ट करें; कुछ न लिखें।
screenscrub scan ~/Screenshots --ignore 'node_modules/**' --ignore '*.thumb.png'
screenscrub scan shot.png --json # मशीन-पठनीय रिपोर्ट
screenscrub scan ~/Screenshots --preview ~/review # आँखों से देखें कि clean क्या संपादित करेगा
--preview <dir> प्रत्येक चिह्नित छवि की एक गैर-विनाशकारी प्रतिलिपि लिखता है जिसमें हर पता लगाए गए क्षेत्र को रेखांकित किया जाता है (भरा नहीं जाता), ताकि आप प्रतिबद्ध होने से पहले पुष्टि कर सकें कि clean क्या संपादित करेगा। ⚠️ इन प्रतियों में अभी भी सीक्रेट होते हैं — निर्देशिका 0700 अनुमतियों के साथ बनाई जाती है और साझा नहीं की जानी चाहिए।
रिपोर्ट एक सारांश के साथ समाप्त होती है: प्रति-प्रकार का विवरण और एक स्पष्ट "मैन्युअल ध्यान देने की आवश्यकता" सूची — वे फ़ाइलें जो त्रुटियुक्त हैं, सत्यापन में विफल रहीं, या जिन्होंने स्क्रीनशॉट होने पर कोई OCR टेक्स्ट उत्पन्न नहीं किया (एक मौन OCR मिस एक साफ छवि के समान पढ़ता है, इसलिए इसे भरोसे के बजाय सामने लाया जाता है)।
scan --fail-on-findings कुछ भी पता चलने पर शून्य-गैर बाहर निकलता है — एक प्री-कमिट/CI गेट।
clean <dir|file> — निकालें, संपादित करें, क्वारंटाइनSCREENSCRUB_PASSPHRASE=… screenscrub clean ~/Screenshots \
--out ~/Screenshots/clean \
--sink file://./secrets.age \
--yes
प्रत्येक छवि के लिए जिसमें निष्कर्ष हैं, clean:
<name>.redacted.png को --out में (या स्रोत के पास) लिखता है,<out>/quarantine/ में स्थानांतरित करता है जो age के साथ एन्क्रिप्ट किया जाता है।सीक्रेट उस सिंक में जाते हैं जो आप --sink को पास करते हैं: age फ़ाइल (डिफ़ॉल्ट), 1Password (op://), KeePassXC (keepassxc://), macOS Keychain (keychain://), या HashiCorp Vault (vault://) — या हार्डवेयर-समर्थित age प्राप्तकर्ता (YubiKey, Touch ID)। सीक्रेट सिंक देखें।
फ़्लैग: