Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
screenscrub — स्क्रीनशॉट में क्रेडेंशियल्स खोजें, उन्हें अपने सीक्रेट मैनेजर में सहेजें, और उन्हें छवि से अपरिवर्तनीय रूप से रिडैक्ट करें — स्थानीय, ऑफ़लाइन, OCR-आधारित। | Kitploit
उपकरण/GitHubGitHub/adversis/screenscrub
OSINT (खुला स्रोत खुफिया)पासवर्ड क्रैकिंगडेटा निष्कासनजानकारी एकत्र करनापेनिट्रेशन टेस्टिंगसीक्रेट डिटेक्शन
GitHubadversis/screenscrub

screenscrub

स्क्रीनशॉट में क्रेडेंशियल्स खोजें, उन्हें अपने सीक्रेट मैनेजर में सहेजें, और उन्हें छवि से अपरिवर्तनीय रूप से रिडैक्ट करें — स्थानीय, ऑफ़लाइन, OCR-आधारित।

रिपॉजिटरी देखें
61 महीना पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
screenscrub

screenscrub

स्क्रीनशॉट में क्रेडेंशियल्स खोजें, उन्हें एक सीक्रेट मैनेजर में निकालें, और उन्हें छवियों से अपरिवर्तनीय रूप से संपादित करें — ताकि सीक्रेट आपके नोट्स, स्क्रीनशॉट और ~/Desktop में सड़ न जाएं।

स्थानीय। ऑफ़लाइन। शांत। डिफ़ॉल्ट रूप से कोई नेटवर्क, कोई टेलीमेट्री नहीं।

screenscrub दो मौजूदा टूल श्रेणियों को जोड़ता है: GUI रिडैक्टर (Xnapper, Shhshot, macshot) PII को हाथ से धुंधला करते हैं लेकिन एक पते या पते से एक सीक्रेट को नहीं बता सकते या कैप्चर नहीं कर सकते कि वे क्या छिपाते हैं; सीक्रेट स्कैनर (gitleaks, TruffleHog) वास्तविक क्रेडेंशियल्स ढूंढते हैं लेकिन केवल टेक्स्ट में, कभी PNG में नहीं। screenscrub gitleaks-ग्रेड डिटेक्शन — साथ ही एक रेड-टीम पैक और एंट्रॉपी विश्लेषण — को पिक्सेल पर, हेडलेसली लाता है: यह प्रत्येक सीक्रेट को आपके मैनेजर में कैप्चर करता है, छवि को अपरिवर्तनीय रूप से संपादित करता है, और परिणाम को फिर से OCR करता है यह साबित करने के लिए कि सीक्रेट चला गया है।

एक सुरक्षा जाल, गारंटी नहीं — screenscrub कभी दावा नहीं करता कि कोई छवि "गारंटीशुदा साफ" है; OCR और डिटेक्शन दोनों चीज़ों को मिस कर सकते हैं, इसलिए हमेशा परिणामों पर नज़र रखें। इस पर भरोसा करने से पहले यह पढ़ें।

root@kitploit:~
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 — अपरिवर्तनीय रूप से संपादित
मूल स्क्रीनशॉट: दर्जनों API-कुंजी उदाहरण मान दिखाई दे रहे हैं

वही स्क्रीनशॉट clean से पहले और बाद में: प्रत्येक सीक्रेट मान को पिक्सेल में डिकोड किया जाता है, बॉक्स किया जाता है, और एक नई छवि (अपरिवर्तनीय) में फिर से एनकोड किया जाता है — लेबल और संरचना पढ़ने योग्य रहती है।


इंस्टॉल करें

PATH पर tesseract OCR बाइनरी की आवश्यकता है:

  • macOS: brew install tesseract
  • Windows: winget install UB-Mannheim.TesseractOCR (या UB Mannheim इंस्टॉलर)
  • Debian/Ubuntu: apt-get install tesseract-ocr

फिर बनाएँ:

root@kitploit:~
go build -o screenscrub ./cmd/screenscrub

macOS (arm64/amd64) और Windows (amd64) के लिए क्रॉस-कम्पाइल करता है — यह cgo का उपयोग करने के बजाय tesseract को शेल आउट करता है। केवल macOS पर परीक्षण किया गया।

उपयोग

scan <dir|file> — ड्राई रन

पता लगाएँ और रिपोर्ट करें; कुछ न लिखें।

root@kitploit:~
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> — निकालें, संपादित करें, क्वारंटाइन

root@kitploit:~
SCREENSCRUB_PASSPHRASE=… screenscrub clean ~/Screenshots \
    --out ~/Screenshots/clean \
    --sink file://./secrets.age \
    --yes

प्रत्येक छवि के लिए जिसमें निष्कर्ष हैं, clean:

  1. प्रत्येक सीक्रेट को सिंक में संग्रहीत करता है,
  2. <name>.redacted.png को --out में (या स्रोत के पास) लिखता है,
  3. मूल को <out>/quarantine/ में स्थानांतरित करता है जो age के साथ एन्क्रिप्ट किया जाता है।

सीक्रेट उस सिंक में जाते हैं जो आप --sink को पास करते हैं: age फ़ाइल (डिफ़ॉल्ट), 1Password (op://), KeePassXC (keepassxc://), macOS Keychain (keychain://), या HashiCorp Vault (vault://) — या हार्डवेयर-समर्थित age प्राप्तकर्ता (YubiKey, Touch ID)। सीक्रेट सिंक देखें।

फ़्लैग:

--exclude-kind और --min-confidence एक शोरगुल वाले कॉर्पस के लिए स्थानीय (कोई नेटवर्क नहीं) परिशुद्धता नॉब हैं — --llm के ऑफ़लाइन समकक्ष। वे शांत रिपोर्ट के लिए रिकॉल का व्यापार करते हैं, इसलिए उन्हें जानबूझकर उपयोग करें। ये दोनों scan/verify पर भी काम करते हैं और --config (exclude_kinds, min_confidence) में सेट किए जा सकते हैं।

पासफ़्रेज़ समाधान क्रम: --passphrase, फिर कॉन्फिग फ़ाइल, फिर SCREENSCRUB_PASSPHRASE। कमांड लाइन पर --passphrase से बचें — argv अन्य प्रक्रियाओं को दिखाई देता है।

verify <dir|file> — साबित करें कि एक फ़ोल्डर साफ है

प्रत्येक छवि को फिर से OCR करता है, फिर से डिटेक्शन चलाता है, और यदि कोई सीक्रेट क्षेत्र अभी भी पाया जाता है तो शून्य-गैर बाहर निकलता है — इसे क्लाइंट को स्क्रीनशॉट भेजने से पहले एक डिलिवरेबल/CI गेट के रूप में उपयोग करें। (यह साबित करता है कि OCR सीक्रेट नहीं पढ़ सकता, यह नहीं कि कोई मानव कभी नहीं कर सका।)

root@kitploit:~
screenscrub verify ~/deliverable/screenshots
echo $?   # 0 = साफ, गैर-शून्य = एक सीक्रेट अभी भी पता लगाने योग्य है

clean इसी जांच को प्रत्येक संपादित प्रतिलिपि पर स्वचालित रूप से चलाता है और उस मूल को क्वारंटाइन या श्रेड नहीं करेगा जिसकी संपादित प्रतिलिपि विफल होती है; --no-verify इसे छोड़ देता है (अनुशंसित नहीं)।

open <store> — सीक्रेट या क्वारंटाइन किए गए मूल को पुनर्प्राप्त करें

अपना डेटा वापस पाएँ: open age सिंक (संग्रहीत सीक्रेट रिकॉर्ड) या एक क्वारंटाइन किए गए मूल को --out में डिक्रिप्ट करता है, कभी stdout नहीं। स्टोर डिक्रिप्ट करना देखें।

--llm — LLM के साथ हानिरहित ओवर-फ़्लैग्स को हटाएं

gitleaks-ग्रेड नियम OCR टेक्स्ट पर (OCR शोर के साथ) अनिवार्य रूप से ओवर-फ़्लैग करते हैं: रिकॉल-पक्षपाती डिटेक्टर हानिरहित उच्च-एंट्रॉपी स्ट्रिंग्स को सामने लाता है जिन्हें एक ऑपरेटर रखना चाहता है — होस्टनाम, GUID, git SHA, NTLM हैश जो स्वयं समझौते का प्रमाण हैं। --llm प्रत्येक उम्मीदवार को Claude (Opus 4.8) के पास चलाता है, वास्तविक सीक्रेट रखता है और हानिरहित पहचानकर्ताओं को हटाता है; LLM-पुष्टि क्षेत्र लाल भरे जाते हैं।

root@kitploit:~
ANTHROPIC_API_KEY=… screenscrub clean ~/Screenshots --out ~/clean --llm --yes

यह उद्देश्यपूर्ण रूप से स्थानीय-और-शांत को तोड़ता है: यह उम्मीदवार स्ट्रिंग्स (पता लगाए गए सीक्रेट) को Anthropic API पर भेजता है, इसलिए यह केवल ऑप्ट-इन है, एक चेतावनी प्रिंट करता है, और API कुंजी की आवश्यकता होती है। यह विफल-बंद होता है: कोई भी API/नेटवर्क त्रुटि सभी निष्कर्षों को रखती है (सब कुछ संपादित करती है) बजाय इसके कि एक वास्तविक सीक्रेट को छोड़ने का जोखिम उठाए। यह प्रति चिह्नित छवि एक API कॉल करता है (अधिकतम 4 समवर्ती --jobs की परवाह किए बिना) — बड़ी निर्देशिकाओं पर दर सीमा और लागत का ध्यान रखें।

--watch

root@kitploit:~
screenscrub clean ~/Screenshots --watch --sink file://./secrets.age --yes

पहले से मौजूद सभी चीज़ों को प्रोसेस करता है, फिर नई/संशोधित छवियों पर नज़र रखता है और प्रत्येक को दिखाई देने पर स्क्रब करता है। लूप से बचने के लिए *.redacted.png आउटपुट को अनदेखा किया जाता है।

डिटेक्शन

OCR टोकन पर, screenscrub संयोजित करता है:

  • वेंडर किए गए gitleaks रीजेक्स — AWS AKIA…, GitHub ghp_…, GitLab, Slack, Stripe, OpenAI, GCP API कुंजियाँ, JWT, और PEM हेडर। (कॉपी किया गया, आयात नहीं, छोटे और पूरी तरह से ऑफ़लाइन रहने के लिए।)
  • रेड-टीम पैक — क्रेडेंशियल आकार जो एंगेजमेंट स्क्रीनशॉट में दिखाई देते हैं: DB कनेक्शन स्ट्रिंग्स (postgres://u:p@…), HTTP Basic/Bearer auth हेडर, NetNTLMv2 और NTLM (pwdump) हैश, /etc/shadow क्रिप्ट हैश, PuTTY और OpenSSH निजी कुंजियाँ, SendGrid/npm टोकन।
  • शैनन-एंट्रॉपी थ्रेशोल्डिंग यादृच्छिक दिखने वाली स्ट्रिंग्स के लिए।
  • संदर्भ कीवर्ड (password, token=, secret, api_key, …) जो आसन्न मान को फ़्लैग करते हैं भले ही वह किसी पैटर्न से मेल न खाता हो और कम एंट्रॉपी हो।
  • संरचनात्मक PEM डिटेक्शन — OCR घने base64 को विकृत करता है, इसलिए यह BEGIN/END मार्करों पर ध्यान केंद्रित करता है और प्रति-शब्द मिलान पर भरोसा करने के बजाय पूरे संलग्न क्षेत्र को उदारतापूर्वक संपादित करता है।

प्रत्येक हिट उन टोकन के पिक्सेल बॉक्स पर मैप करता है जो इसे बनाते हैं (दो पंक्ति पुनर्निर्माण — स्पेस्ड और टाइट — OCR द्वारा व्हाइटस्पेस पर विभाजित किए गए सीक्रेट को पुनर्प्राप्त करते हैं), और भरने से पहले बॉक्स को पैड किया जाता है।

सीक्रेट सिंक — "हर किसी का अपना मैनेजर होता है"

एक सिंक एक विधि है: Store(Secret) error। शिप किए गए एडेप्टर:

  • file:// — age-एन्क्रिप्टेड स्थानीय फ़ाइल (डिफ़ॉल्ट)। कोई बाहरी निर्भरता नहीं; एक age scrypt पासफ़्रेज़ (या age प्राप्तकर्ताओं के लिए — नीचे हार्डवेयर-समर्थित एन्क्रिप्शन देखें) के लिए एन्क्रिप्टेड रिकॉर्ड्स की एक JSON सरणी।
  • op:// — 1Password CLI। op item create को मान stdin पर (कभी argv में नहीं) चलाता है।
  • keepassxc://./vault.kdbx — KeePassXC। लोकप्रिय क्रॉस-प्लेटफ़ॉर्म स्थानीय KeePass मैनेजर। keepassxc-cli add चलाता है; डेटाबेस पासवर्ड और सीक्रेट दोनों stdin पर पास किए जाते हैं (कभी argv में नहीं)। डेटाबेस पासवर्ड हल किया गया पासफ़्रेज़ है (--config/SCREENSCRUB_PASSPHRASE)।
  • keychain://screenscrub — macOS Keychain। security add-generic-password चलाता है। चेतावनी: security टूल केवल कमांड-लाइन तर्क के रूप में सीक्रेट स्वीकार करता है, इसलिए यह चलने के दौरान समान-उपयोगकर्ता ps को संक्षिप्त रूप से दिखाई देता है (macOS argv को अन्य उपयोगकर्ताओं से छुपाता है)। सख्त स्वच्छता के लिए 1Password, KeePassXC, या नीचे दिए गए Secure Enclave प्राप्तकर्ता को प्राथमिकता दें।

अपना स्वयं का जोड़ने के लिए, sink.SecretSink (internal/sink) को लागू करें और इसे sink.FromURI में वायर करें। यही पूरा अनुबंध है।

हार्डवेयर-समर्थित एन्क्रिप्शन — YubiKey और Touch ID

डिफ़ॉल्ट age फ़ाइल सिंक और क्वारंटाइन पासफ़्रेज़ के बजाय age प्राप्तकर्ताओं को एन्क्रिप्ट कर सकते हैं, जिसमें age प्लगइन्स के माध्यम से हार्डवेयर-समर्थित शामिल हैं:

root@kitploit:~
# YubiKey (PIV) — age-plugin-yubikey इंस्टॉल करें, फिर:
screenscrub clean ~/Screenshots --out ~/clean \
    --sink file://./secrets.age \
    --recipient age1yubikey1q... --yes

# Apple Secure Enclave / Touch ID — age-plugin-se इंस्टॉल करें, फिर:
screenscrub clean ~/Screenshots --out ~/clean \
    --recipient age1se1q... --yes

# सादा age कीपेयर, या कई प्राप्तकर्ता / एक प्राप्तकर्ता फ़ाइल:
screenscrub clean ~/Screenshots --recipient age1abc... --recipients-file team.age.pub --yes

प्राप्तकर्ता मोड में किसी पासफ़्रेज़ की आवश्यकता नहीं है; सिंक और एन्क्रिप्टेड क्वारंटाइन दोनों प्राप्तकर्ताओं के पास जाते हैं। हार्डवेयर टोकन के साथ पुनर्प्राप्त करें: age -d -i <identity> secrets.age (डिक्रिप्शन YubiKey टच / Touch ID के लिए संकेत देता है)। किसी प्लगइन प्राप्तकर्ता को एन्क्रिप्ट करने के लिए age-plugin-<name> बाइनरी की आवश्यकता है; डिक्रिप्शन को अतिरिक्त रूप से डिवाइस की आवश्यकता है।

पासफ़्रेज़ स्टोर डिक्रिप्ट करना — open

सिंक और क्वारंटाइन आपके एक पासफ़्रेज़ (HKDF) से अलग कुंजियाँ प्राप्त करते हैं, इसलिए एक स्टोर को क्रैक करना दूसरे को नहीं खोल सकता। क्योंकि डिस्क पर कुंजियाँ व्युत्पन्न होती हैं, उन्हें कच्चे age के बजाय screenscrub के साथ डिक्रिप्ट करें:

root@kitploit:~
screenscrub open ./secrets.age --out secrets.json          # सीक्रेट रिकॉर्ड
screenscrub open ~/clean/quarantine/shot.png.ab12cd34.age --out shot.png   # एक मूल

open प्रत्येक व्युत्पन्न कुंजी को स्वचालित रूप से आज़माता है और सादा पाठ --out (कभी stdout नहीं) पर लिखता है। प्राप्तकर्ता-मोड स्टोर के लिए, एक age कुंजी फ़ाइल पास करें: screenscrub open secrets.<id>.age --identity key.txt --out secrets.json (YubiKey/Touch ID के लिए सीधे age -d -i का उपयोग करें, जो हार्डवेयर प्लगइन चलाता है)। प्राप्तकर्ता मोड प्रति सीक्रेट एक फ़ाइल लिखता है (secrets.<hash>-<rand>.age) ताकि बार-बार चलाने से कभी एक-दूसरे को अधिलेखित न करें।

विकास

root@kitploit:~
go test ./...        # यूनिट परीक्षण tesseract के बिना चलते हैं; OCR/पुनः-OCR परीक्षण यदि अनुपस्थित हैं तो छोड़ दिए जाते हैं

शीर्षक गारंटी एक एंड-टू-एंड परीक्षण द्वारा कवर की गई है: एक AWS कुंजी के साथ एक स्क्रीनशॉट रेंडर करें, वास्तविक OCR → डिटेक्ट → रिडैक्ट पाइपलाइन चलाएं, आउटपुट को फिर से OCR करें, और पुष्टि करें कि सीक्रेट चला गया है (internal/redact)।


रक्षा-में-गहराई, गारंटी नहीं

screenscrub सोचना बंद करने का लाइसेंस नहीं है।

  • OCR टेक्स्ट को मिस करता है। कम-कंट्रास्ट, घुमाया हुआ, छोटा, या स्टाइल किया हुआ टेक्स्ट बिल्कुल नहीं पढ़ा जा सकता — और जो नहीं पढ़ा जाता, उसे संपादित नहीं किया जा सकता।
  • डिटेक्शन नए सीक्रेट को मिस करता है। यह सामान्य आकार (AWS कुंजियाँ, PEM ब्लॉक, JWT, उच्च-एंट्रॉपी ब्लॉब, password: पंक्तियाँ) जानता है; एक सीक्रेट जिसे यह नहीं पहचानता, वह गुज़र जाएगा।
  • यह कभी दावा नहीं करेगा कि कोई छवि "गारंटीशुदा साफ" है। यह लगभग 90% स्पष्ट को स्वचालित रूप से पकड़ता है ताकि आप बाकी को आँखों से देख सकें। हमेशा छवियों की स्वयं समीक्षा करें।

यह रिकॉल पर प्रिसिजन से अधिक ट्यून किया गया है — यह जानबूझकर ओवर-फ़्लैग करता है, क्योंकि एक छवि में छोड़ा गया क्रेडेंशियल विनाशकारी मामला है और एक झूठी सकारात्मकता केवल आपको एक लाल रंग के धब्बे की कीमत देती है।

आप testdata/ फ़ोल्डर में एक यथार्थवादी उपयोग मामला देख सकते हैं, जो RExpository के स्क्रीनशॉट से लिया गया है:

https://jaimepolop.github.io/RExpository/

यह सही नहीं है, लेकिन काफी अच्छा है।

यह क्या करता है

  1. अपरिवर्तनीय संपादन। छवि को पूरी तरह से पिक्सेल में डिकोड किया जाता है, सीक्रेट क्षेत्रों पर अपारदर्शी आयतें खींची जाती हैं, और परिणाम को एक नए PNG में फिर से एनकोड किया जाता है — कोई ओवरले परत नहीं जिसे छीला जा सके और कोई क्रॉप-विदाउट-रीएनकोड नहीं, इसलिए यह aCropalypse वर्ग के पुनर्प्राप्त करने योग्य संपादन (CVE-2023-21036 / CVE-2023-28303) से बचता है। सभी स्रोत मेटाडेटा (EXIF, PNG टेक्स्ट चंक) रीएनकोड द्वारा हटा दिए जाते हैं। धुंधला और पिक्सेलेशन प्रतिवर्ती हैं (Depix, Unredacter), इसलिए screenscrub केवल अपारदर्शी भराव का उपयोग करता है — कभी फ़िल्टर नहीं।
  2. सत्यापित संपादन। संपादित प्रतिलिपि लिखने के बाद, clean इसे फिर से OCR करता है और फिर से डिटेक्शन चलाता है; यदि कोई सीक्रेट अभी भी पता लगाने योग्य है तो यह मूल को क्वारंटाइन या नष्ट करने से इनकार करता है और फ़ाइल को फ़्लैग करता है। बड़े/उच्च-DPI टेक्स्ट पर एंटी-अलियास्ड किनारों को कवर करने के लिए संपादन बक्सों को ग्लिफ़ ऊंचाई के अनुपात में पैड किया जाता है।
  3. सुरक्षित मूल हैंडलिंग। clean संपादित प्रतिलिपि लिखता है, इसे सत्यापित करता है, फिर असंपादित मूल को age-एन्क्रिप्टेड क्वारंटाइन में ले जाता है और इसे इसके मूल स्थान से हटा देता है — केवल प्रतिलिपि के साफ सत्यापित होने और निकाले गए सीक्रेट के सुरक्षित रूप से डिस्क पर होने के बाद। विनाशकारी कदमों के लिए --yes आवश्यक है।
  4. सीक्रेट गुप्त रहते हैं। सीक्रेट मान कभी भी क्लियरटेक्स्ट में लॉग, stdout, या अस्थायी फ़ाइलों में नहीं जाते; रिपोर्ट केवल एक मास्क किया हुआ पूर्वावलोकन (AK****…**LE) दिखाती है। केवल क्लियरटेक्स्ट प्रतिलिपि मेमोरी में तब तक रहती है जब तक वह आपके एन्क्रिप्टेड सिंक तक नहीं पहुंच जाती।

--purge और सुरक्षित विलोपन की सीमाएं

डिफ़ॉल्ट रूप से, मूल को क्वारंटाइन (एन्क्रिप्टेड) में रखा जाता है ताकि एक गलत संपादन पुनर्प्राप्त करने योग्य हो। --purge इसके बजाय मूल को श्रेड करता है: यादृच्छिक से अधिलेखित करें, शून्य से अधिलेखित करें, फिर अनलिंक करें।

सुरक्षित विलोपन अविश्वसनीय है। SSDs, कॉपी-ऑन-राइट फ़ाइलसिस्टम (APFS, Btrfs, ZFS), जर्नल किए गए फ़ाइलसिस्टम, और स्नैपशॉट/बैकअप वाले वॉल्यूम पर, ओवरराइट-देन-अनलिंक मूल बाइट्स के चले जाने की गारंटी नहीं देता — वियर लेवलिंग और स्नैपशॉट उन्हें बनाए रख सकते हैं। एकमात्र वास्तविक बचाव यह है कि पहले स्थान पर क्लियरटेक्स्ट को कभी स्थायी न करें। एन्क्रिप्टेड क्वारंटाइन को प्राथमिकता दें, और --purge को सर्वोत्तम-प्रयास मानें।

पूर्व कला और आभार

  • डिटेक्शन नियम वेंडर gitleaks (MIT) — छोटे और ऑफ़लाइन रहने के लिए आयात करने के बजाय कॉपी किया गया।
  • संपादन यांत्रिकी — Tesseract → regex → अपारदर्शी बक्से — pyDactor और Microsoft Presidio द्वारा सिद्ध पथ का अनुसरण करते हैं; कॉपी-एंड-रिडैक्ट CLI आकार redacter-rs को प्रतिध्वनित करता है।
  • OCR क्रॉस-प्लेटफ़ॉर्म पोर्टेबिलिटी के लिए डिफ़ॉल्ट रूप से Tesseract का उपयोग करता है। macOS पर, Apple का Vision फ्रेमवर्क (जैसा कि Xnapper/macshot द्वारा उपयोग किया जाता है) एक ही OCR इंटरफ़ेस के पीछे एक स्वाभाविक उच्च-सटीकता बैकएंड है — एक भविष्य के अतिरिक्त के लिए उम्मीदवार।

लाइसेंस

वेंडर किए गए क्रेडेंशियल पैटर्न gitleaks (MIT) से व्युत्पन्न हैं।

टूल डाउनलोड करें
screenscrub के बाद वही स्क्रीनशॉट: हर सीक्रेट मान काला किया गया, लेबल और रेगेक्स पैटर्न अभी भी पढ़ने योग्य हैं
फ़्लैगअर्थ
--out <dir>जहाँ संपादित प्रतियाँ जाती हैं (डिफ़ॉल्ट: स्रोत के पास)
--sink <uri>file://./secrets.age · op://Vault · keepassxc://./v.kdbx · keychain://service · vault://KV
--recipient <age1…>किसी age प्राप्तकर्ता को एन्क्रिप्ट करें (दोहराने योग्य): X25519, YubiKey, या Touch ID
--recipients-file <f>age प्राप्तकर्ताओं की फ़ाइल, एक प्रति पंक्ति
--passphraseफ़ाइल सिंक / क्वारंटाइन के लिए पासफ़्रेज़ (env var या --config को प्राथमिकता दें)
--watchचालू रहें; नए स्क्रीनशॉट आने पर प्रक्रिया करें (fsnotify)
--purgeक्वारंटाइन करने के बजाय मूल को श्रेड करें (नीचे चेतावनी देखें)
--keep-originalsकेवल संपादित प्रतियाँ लिखें; मूल को उनके स्थान पर छोड़ दें (कोई क्वारंटाइन, कोई पासफ़्रेज़, कोई --yes नहीं) — --purge के साथ परस्पर अनन्य
--yesविनाशकारी मूल हैंडलिंग की पुष्टि करें (आवश्यक)
--config <file>JSON कॉन्फिग; आपको पासफ़्रेज़ को argv से बाहर रखने देता है
--no-verifyसंपादित आउटपुट के पुनः-OCR सत्यापन को छोड़ें (अनुशंसित नहीं)
-i, --interactiveप्रत्येक चिह्नित छवि खोलें और उसे छूने से पहले संपादित/छोड़ें की पुष्टि करें
--llmClaude का उपयोग करके हानिरहित ओवर-फ़्लैग्स को हटाएं; कैंडिडेट स्ट्रिंग्स को Anthropic API पर भेजता है
--llm-api-key--llm के लिए Anthropic API कुंजी (या ANTHROPIC_API_KEY)
--jobs Nसमानांतर में N छवियों को प्रक्रिया करें (डिफ़ॉल्ट: CPU संख्या)
--manifest <file>मूल→संपादित→क्षेत्रों का JSON मानचित्र लिखें
--ocr-raw / --ocr-upscale Nडार्क-टर्मिनल प्रीप्रोसेसिंग अक्षम करें / OCR से पहले अपस्केल करें
--exclude-kind <kind>एक प्रकार के निष्कर्षों को दबाएं (दोहराने योग्य), जैसे high-entropy — ऑफ़लाइन परिशुद्धता नॉब
--min-confidence <0..1>इस आत्मविश्वास से नीचे के निष्कर्षों को छोड़ें — ऑफ़लाइन परिशुद्धता नॉब
--jsonरिपोर्ट को JSON के रूप में उत्सर्जित करें
--ignore <glob>ग्लोब को अनदेखा करें, दोहराने योग्य; ** किसी भी गहराई से मेल खाता है
--langtesseract भाषा (डिफ़ॉल्ट eng)
  • vault:// — HashiCorp Vault KV v2 — मौजूद है लेकिन विलंबित/कम सामान्य; पथ सीक्रेट को हैश करता है ताकि वह URL में कभी न दिखाई दे।