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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
keyhog — रस्ट में ओपन-सोर्स सीक्रेट स्कैनर | Kitploit
उपकरण/GitHubGitHub/santhreal/keyhog
स्थैतिक विश्लेषणभेद्यता स्कैनरकंटेनर सुरक्षाकोड विश्लेषणकॉन्फ़िगरेशन ऑडिटिंगक्लाउड सुरक्षाDevSecOpsसीक्रेट डिटेक्शनखतरा खुफियाआपूर्ति श्रृंखला सुरक्षाघटना प्रतिक्रिया
88131019घं 16मि पहलेKitploit द्वारा समीक्षित
GitHub
santhreal/keyhog

keyhog

रस्ट में ओपन-सोर्स सीक्रेट स्कैनर

रिपॉजिटरी देखेंवेबसाइट

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

सभी देखें →

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

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

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

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

KeyHog GPU-accelerated open-source secret scanner for code, Git history, cloud, containers, browser assets, and CI

KeyHog on crates.io  KeyHog documentation  CI  MIT OR Apache-2.0  GitHub stars and repository-owned star history

वेबसाइट · दस्तावेज़ीकरण · आर्किटेक्चर · Vyre GPU इंजन

KeyHog: कोड, क्लाउड और CI के लिए GPU-त्वरित गुप्त स्कैनर

KeyHog Rust में लिखा एक ओपन-सोर्स गुप्त स्कैनर है जो स्रोत कोड, Git इतिहास, कंटेनरों, क्लाउड स्टोरेज, ब्राउज़र एसेट्स, सहयोग सामग्री और चालू सिस्टमों में लीक हुई API कुंजियों, टोकनों, पासवर्डों और क्रेडेंशियल्स को खोजता और सत्यापित करता है।

अधिकांश गुप्त स्कैनर रिपॉजिटरी चेकआउट में CPU regex मिलान पर ही रुक जाते हैं। KeyHog 934 सेवा-विशिष्ट डिटेक्टरों, छिपे हुए क्रेडेंशियल्स के लिए डिकोड-थ्रू, संदर्भ-जागरूक साक्ष्य और दमन, लाइव प्रदाता सत्यापन, और Vyre के माध्यम से प्रथम श्रेणी के CUDA, Metal और WGPU निष्पादन को जोड़ता है। कैलिब्रेशन हर पात्र शुद्ध-Rust CPU, Hyperscan/SIMD और GPU बैकएंड को मापता है। स्वचालित रूटिंग फिर सटीक होस्ट और कार्यभार वर्ग के लिए सबसे तेज़ समानता-सिद्ध मार्ग का उपयोग करती है।

GPU एक वास्तविक बैकएंड हैवास्तविक आक्रमण सतह को स्कैन करेंशोर से संकेत को अलग करेंपरिणाम पर कार्रवाई करें
CUDA, नेटिव Metal और WGPU मापे गए सहकर्मी हैं, न कि एक मूक फ़ॉलबैक श्रृंखला।Git इतिहास, Docker परतें, अभिलेखागार, क्लाउड बकेट, स्रोत मानचित्र, WASM, HAR कैप्चर, होस्ट किए गए Git संग्रह और संपूर्ण सिस्टम स्कैन करें।साक्ष्य, उदाहरण दमन और बेसलाइन लागू करने से पहले base64, hex, URL, protobuf, बहु-पंक्ति और संरचित कॉन्फ़िगरेशन को डिकोड करें।पात्र क्रेडेंशियल्स को प्रदाता API से सत्यापित करें, SARIF या संरचित लिफाफे उत्सर्जित करें, और सटीक कवरेज और निकास शब्दार्थ को संरक्षित करें।
cargo install --locked keyhog
keyhog scan .
root@kitploit:~
<p align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/7654/dfb768a9b8e8fa64082992f11d0b284d5ec6a199fc1eac85e0352fb20452186f.gif" alt="KeyHog स्कैन जो गंभीरता, साक्ष्य, फ़ाइल और पंक्ति, सुधार, परिणाम और कवरेज स्थिति दिखाता है" width="900" />
</p>

## GPU के आसपास निर्मित एक सीक्रेट स्कैनर

KeyHog कुछ नियमित एक्सप्रेशन को एक सामान्य कंप्यूट शेडर को नहीं सौंपता।
इसका GPU पथ [Vyre](https://github.com/santhreal/vyre) पर बनाया गया है, जो एक Rust GPU
कंप्यूट सब्सट्रेट है जिसे KeyHog के साथ विकसित किया गया है। डिटेक्टर ट्रिगर
अपरिवर्तनीय GPU-निवासी तालिकाओं में संकलित होते हैं। बाउंडेड सोर्स बैच पूर्ण मैच
स्थितियाँ उत्पन्न करते हैं, जो उसी पुष्टि, दमन, साक्ष्य और रिपोर्टिंग
पाइपलाइन के लिए होती हैं जो CPU और Hyperscan मार्गों द्वारा उपयोग की जाती हैं।

- **तीन भौतिक GPU सहकर्मी।** CUDA, नेटिव Metal और पोर्टेबल WGPU को
  स्वतंत्र रूप से प्राप्त, मापा और रिपोर्ट किया जाता है।
- **सटीक परिणाम समानता।** कैलिब्रेशन उस उम्मीदवार को अस्वीकार करता है जिसकी खोज
  पहचान संदर्भ मार्ग से भिन्न होती है। एक तेज़ गलत उत्तर कभी भी रूटिंग
  तालिका में प्रवेश नहीं करता।
- **स्थायी मार्ग साक्ष्य।** KeyHog बाइनरी, डिटेक्टर कॉर्पस,
  कॉन्फ़िगरेशन, वर्कलोड वर्ग, होस्ट, एक्सेलेरेटर, ड्राइवर और मापा समय
  साक्ष्य रिकॉर्ड करता है। सामान्य स्कैन हॉट पथ में बेंचमार्क नहीं करते।
- **निवासी निष्पादन।** डेमॉन वर्कर संकलित डिटेक्टर और एक्सेलेरेटर
  स्थिति को बार-बार फ़ाइल, आर्काइव, इतिहास, रिमोट और क्लाउड बैचों के लिए गर्म रखते हैं।
- **कोई छिपा हुआ CPU एस्केप हैच नहीं।** एक स्पष्ट रूप से चयनित एक्सेलेरेटर जो
  आरंभ या डिस्पैच नहीं कर सकता, GPU लेबल के तहत CPU परिणाम लौटाने के बजाय दृश्य रूप से विफल होता है।

डिफ़ॉल्ट crates.io इंस्टॉल पोर्टेबल शुद्ध-Rust CPU मार्ग का उपयोग करता है, इसलिए यह
एक साफ Rust होस्ट पर काम करता है। Hyperscan प्राप्त किए बिना तीनों GPU सहकर्मियों को सक्षम करें:```sh
cargo install --locked keyhog --no-default-features --features portable,gpu

Hyperscan या Vectorscan SIMD regex peer सक्षम करें:```sh cargo install --locked keyhog --no-default-features --features portable,simd

root@kitploit:~
प्रोडक्शन बैकएंड डायग्नोस्टिक चलाएँ, फिर मापे गए रूट का निरीक्षण करें:```sh
keyhog backend --self-test
keyhog calibrate-autoroute --policy all
keyhog backend --autoroute --json

बैकेंड गाइड निवासी तालिकाओं, बाउंडेड डिस्पैच मॉडल, पैरिटी अनुबंध, और पुनरुत्पादनीय क्रॉसओवर साक्ष्य का दस्तावेजीकरण करता है।

आरंभ करें

इंस्टॉल करें और अपना पहला स्कैन चलाएं

ऊपर दिए गए दो कमांड नवीनतम crates.io रिलीज़ को इंस्टॉल करते हैं और पोर्टेबल शुद्ध-Rust मार्ग के साथ वर्तमान ट्री को स्कैन करते हैं।

CI वातावरण को एक सटीक रिलीज़ पर पिन करने के लिए cargo install --locked --version '=0.5.86' keyhog का उपयोग करें। KeyHog को Rust 1.89 या नया संस्करण चाहिए। GPU, Hyperscan, CI, पोर्टेबल, और स्रोत-निर्माण प्रोफाइल के लिए इंस्टॉलेशन गाइड देखें।

KeyHog 1 के साथ बाहर निकलता है जब कोई निष्कर्ष सक्रिय साक्ष्य नीति को ब्लॉक करता है। डिफ़ॉल्ट नीति likely और confirmed निष्कर्षों को ब्लॉक करती है जबकि review निष्कर्षों को 0 के साथ दृश्यमान रखती है; --evidence-policy paranoid हर स्तर को ब्लॉक करता है। प्रत्येक निष्कर्ष के सटीक साक्ष्य स्तर, कारण कोड, फ़ाइल, पंक्ति, डिटेक्टर, और उपचार की समीक्षा करें। अन्य गैर-शून्य कोड इनपुट, सिस्टम, सत्यापन, या कवरेज विफलताओं का वर्णन करते हैं; एग्ज़िट-कोड संदर्भ देखें।

पूर्ण प्रक्रिया अनुबंध है:

एग्ज़िटअर्थ
0 सफलताकोई निष्कर्ष सक्रिय साक्ष्य नीति को ब्लॉक नहीं करता, और कोई कवरेज विफलता नहीं हुई। समीक्षा-स्तर के निष्कर्ष डिफ़ॉल्ट नीति के तहत दृश्यमान रह सकते हैं।
1 ब्लॉकिंग निष्कर्षकम से कम एक निष्कर्ष सक्रिय साक्ष्य नीति को ब्लॉक करता है, लेकिन कोई भी लाइव पुष्टि नहीं हुई।
2 ऑपरेटर त्रुटितर्क, कॉन्फ़िगरेशन, डिटेक्टर कॉर्पस, या ऑपरेटर-सुधार योग्य इनपुट को ठीक करें।
3 सिस्टम त्रुटिरनर की मरम्मत करें या पुनः प्रयास करें। इसमें निम्न-स्तरीय I/O, घातक डेमॉन सेवा, इंक्रीमेंटल-कैश, और स्पष्ट रूप से चयनित SIMD विफलताएं शामिल हैं।
4 स्वास्थ्य/स्व-परीक्षण विफलताdoctor या backend --self-test स्वास्थ्य जांच अस्वस्थ थी।
10 लाइव क्रेडेंशियलकम से कम एक क्रेडेंशियल लाइव पुष्टि हुई।
11 स्कैनर पैनिकस्कैन परिणाम को त्याग दें क्योंकि स्कैनर स्थिति भरोसेमंद नहीं है।
12 आवश्यक GPU विफलतास्पष्ट रूप से चयनित या आवश्यक GPU पथ निष्पादित नहीं हो सका।
13 अपूर्ण कवरेजअनुरोधित स्रोत विफल हुआ या इनपुट कवरेज अपूर्ण था, और कोई निष्कर्ष परिणाम प्राथमिकता नहीं ले सका।
130 बाधितSIGINT या Ctrl-C ने प्रक्रिया को बाधित किया।

फ़िल्टर, फ़ॉर्मेट, गेट:

फ़िल्टर के रूप में उपयोग करने से पहले एक बेसलाइन बनाएं:```sh keyhog scan . --create-baseline .keyhog-baseline.json keyhog scan . --baseline .keyhog-baseline.json --format json-envelope --output keyhog.json

root@kitploit:~
पहला कमांड समीक्षित निष्कर्षों का स्नैपशॉट लेता है और उन्हें प्रिंट किए बिना `0` के साथ बाहर निकलता है। उस फ़ाइल को कमिट करें, फिर केवल नई खोजी गई पहचानों की रिपोर्ट करने के लिए दूसरे कमांड का उपयोग करें। एक बेसलाइन प्रविष्टि डिटेक्टर और क्रेडेंशियल मान पर मेल खाती है, कभी भी फ़ाइल पथ पर नहीं, इसलिए किसी रिकॉर्ड किए गए रहस्य को स्थानांतरित करने से गेट विफल नहीं होता, लेकिन उसे घुमाने से होता है। बदले गए क्रेडेंशियल और अधूरा कवरेज दृश्यमान रहते हैं। मोनोरेपो विभाजन सहित पूरा पथ, [Fail only on new secrets](https://santhreal.github.io/keyhog/workflows/ci.html#fail-only-on-new-secrets) पर है।

अगले स्कैन के लिए, [recipes cookbook](https://santhreal.github.io/keyhog/recipes.html) या [Choose the right workflow](#choose-the-right-workflow) में कॉपी करने योग्य कमांड का उपयोग करें। आप टूल बदले बिना Git इतिहास, कंटेनर इमेज, क्लाउड बकेट, रिपॉजिटरी संग्रह, URL और पूरी मशीन को स्कैन कर सकते हैं।

### तेज़ pre-commit स्कैन के लिए रिपॉजिटरी की सुरक्षा करें

तेज़ pre-commit रहस्य पहचान के लिए एक रिपॉजिटरी को स्थायी KeyHog डेमॉन के साथ पंजीकृत करें (Unix की आवश्यकता है; Windows पर इन-प्रोसेस `keyhog scan` का उपयोग करें):```sh
# 1. Start the daemon (accelerated by CUDA, Metal, WGPU, or SIMD)
keyhog guard up

# 2. Guard your repository (indexes baseline and installs pre-commit hook in one step)
keyhog guard add /path/to/repo

# 3. Every staged commit checks only changed blobs against in-memory attestations
keyhog scan --git-staged

# 4. View all active guarded repositories and their states
keyhog guard list

# 5. Turn the daemon on and off cleanly without losing registrations or durable index
keyhog guard down

perpetual guard guide और pre-commit workflow पूर्ण कॉन्फ़िगरेशन, स्टेट मशीन लाइफसाइकिल और हुक ऑटोमेशन के लिए देखें।

इसे GitHub Actions में जोड़ें

.github/workflows/keyhog.yml बनाएं:```yaml name: keyhog on: push: branches: [main] pull_request: permissions: contents: read security-events: write jobs: scan: runs-on: ubuntu-latest steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: santhreal/keyhog@v0 with: path: . severity: high

root@kitploit:~
यह एक्शन चेक-आउट किए गए ट्री को स्कैन करता है, `high` या `critical` पर निष्कर्षों पर विफल होता है, SARIF को Code Scanning पर अपलोड करता है, और रिपोर्ट को वर्कफ़्लो आर्टिफैक्ट के रूप में बनाए रखता है। इंस्टॉलेशन, कवरेज, बैकएंड, और रिपोर्ट-प्रकाशन विफलताएँ भी जॉब को विफल करती हैं।

इनपुट, आउटपुट, बेसलाइन अपनाने, मोनोरेपो विभाजन, सत्यापन, और विफलता व्यवहार के लिए [GitHub Action गाइड](https://santhreal.github.io/keyhog/workflows/github-action.html) का उपयोग करें। GitLab, CircleCI, Jenkins, Buildkite, और सामान्य शेल जॉब के लिए [CI गाइड](https://santhreal.github.io/keyhog/workflows/ci.html) का उपयोग करें। रिपॉजिटरी संगठनों, होस्टेड Git समूहों, क्लाउड बकेट, और विभाजित इन्वेंट्री के लिए [मास-स्कैनिंग गाइड](https://santhreal.github.io/keyhog/guides/mass-scanning.html) का उपयोग करें।

## स्कैन सतहें जिन्हें अन्य टूल अलग उत्पादों के रूप में मानते हैं

KeyHog बाइट्स को उस सीमा पर स्कैन करता है जहाँ वे लीक हो सकते हैं, न कि केवल ट्रैक किए गए स्रोत फ़ाइलों को। प्रति सीमा एक रिपोर्ट का उपयोग करें ताकि CI सटीक कवरेज और विफलता स्थिति बनाए रखे।

| एक्सपोज़र सतह | उदाहरण |
|---|---|
| अंतिम पैकेज आर्टिफैक्ट | `npm pack` चलाएँ, फिर उत्पादित `.tgz` को `keyhog scan package.tgz` के साथ स्कैन करें। आर्काइव विस्तार उत्पन्न फ़ाइलों, स्रोत मैप्स, फिक्स्चर, और मेटाडेटा की जाँच करता है जो अपेक्षित स्रोत ट्री से अनुपस्थित हैं। |
| तैनात ब्राउज़र एप्लिकेशन | `keyhog scan --url https://app.example.com/assets/app.js` बाउंडेड JavaScript, स्रोत-मैप, WASM, और प्रतिक्रिया डिकोडिंग का अनुसरण करता है बिना स्कैनर को अनबाउंडेड क्रॉलर में बदले। |
| GitHub issues, pull requests, discussions, wikis, और gists | `keyhog scan --github-collaboration owner/repo --github-all` चेक-आउट के बाहर हर सहयोग सतह को स्कैन करता है। |
| AI एजेंट और MCP कॉन्फ़िगरेशन | `keyhog scan ~/.config ~/.claude ~/.codex` स्थानीय टूल कॉन्फ़िगरेशन पर समान डिटेक्टर, डिकोड, साक्ष्य, और रिपोर्टिंग पाइपलाइन लागू करता है। |
| कंटेनर इमेज परतें | `keyhog scan --docker-image registry.example.com/team/app:v1` उस इमेज सामग्री को स्कैन करता है जो चलेगी, जिसमें बिल्ड के दौरान पेश की गई फ़ाइलें शामिल हैं। |
| क्लाउड ऑब्जेक्ट इन्वेंट्री | `keyhog scan --s3-bucket BUCKET`, `--gcs-bucket BUCKET`, या `--azure-container-url URL` टर्मिनल रिपोर्ट में प्रोवाइडर पेजिनेशन, ऑब्जेक्ट, और बाइट-लिमिट कवरेज को संरक्षित करता है। |
| संपूर्ण विकास होस्ट | `sudo keyhog scan-system --space 50G` हार्ड स्टोरेज बजट के तहत माउंटेड फाइलसिस्टम और पहुँच योग्य Git इतिहास की खोज करता है। |

ये मार्ग एक साझा डिटेक्शन और रिपोर्टिंग अनुबंध साझा करते हैं। एक स्रोत-विशिष्ट विफलता चुपचाप एक संकीर्ण स्थानीय स्कैन में नहीं बदल सकती।

## सही वर्कफ़्लो चुनें

पहले स्रोत सीमा चुनें। एक प्रीसेट डिटेक्शन कार्य को बदलता है, जबकि एक बैकएंड निष्पादन को बदलता है। न तो वर्किंग-ट्री स्कैन को Git इतिहास, प्रोवाइडर इन्वेंट्री, क्लाउड स्टोरेज, या होस्ट ऑडिट में विस्तारित करता है।

कोई ईमानदार `scan everything` शॉर्टकट नहीं है। एक पूर्ण एस्टेट समीक्षा नीचे दी गई प्रासंगिक सीमाओं को अलग-अलग जॉब के रूप में चलाती है और प्रत्येक `json-envelope` रिपोर्ट को उसके कच्चे निकास कोड के साथ बनाए रखती है।

| आवश्यकता | शुरू करें | थ्रूपुट और पुन: उपयोग | कवरेज सीमा |
|---|---|---|---|
| त्वरित स्थानीय प्रतिक्रिया | `keyhog scan . --fast --incremental` | अपरिवर्तित-फ़ाइल हैश का पुन: उपयोग करता है। फास्ट प्रीसेट डिकोड, एन्ट्रॉपी, और ML कार्य को छोड़ देता है। | मर्ज से पहले डिफ़ॉल्ट नीति चलाएँ क्योंकि फास्ट जानबूझकर संकीर्ण है। |
| पूर्ण रिपॉजिटरी स्कैन | `keyhog scan .` | कैलिब्रेटेड `auto` और CPU-कोर वर्कर डिफ़ॉल्ट। समान विश्वसनीय ट्री के बार-बार स्कैन के लिए `--incremental` जोड़ें। | केवल वर्तमान फ़ाइलें। यह Git इतिहास नहीं जोड़ता। |
| स्टेज्ड कमिट गेट | `keyhog scan --git-staged` या `keyhog hook install` | सटीक इंडेक्स ब्लॉब्स पढ़ता है, इसलिए अनस्टेज्ड संपादन परिणाम नहीं बदल सकते। | केवल स्टेज्ड सामग्री। जब स्थानीय अनस्टेज्ड बाइट्स मायने रखते हैं तो वर्किंग-ट्री स्कैन अलग से चलाएँ। |
| स्थायी रिपॉजिटरी गार्ड | `keyhog guard add . --mode repo` फिर `keyhog guard status .` | डेमॉन-निवासी रूट रजिस्ट्री 7-स्थिति मशीन, स्वच्छ प्रमाणीकरण कैश, और नीति पहचान ट्रैकिंग के साथ। | चल रहे डेमॉन की आवश्यकता है। गार्ड स्टेज्ड और वर्किंग-ट्री स्कैन को पूरक करता है, प्रतिस्थापित नहीं करता। |
| GitHub pull-request गेट | `santhreal/keyhog@v0` | एक्शन इंस्टॉल करता है, स्कैन करता है, SARIF और एक आर्टिफैक्ट प्रकाशित करता है, फिर KeyHog की स्थिति को संरक्षित करता है। | एक चेक-आउट पथ। संगठन के लिए प्रोवाइडर इन्वेंट्री स्कैनिंग का उपयोग करें। |
| GitLab, Jenkins, Buildkite, या शेल CI | `keyhog scan . --format json-envelope --output keyhog.json` | सफलता, निष्कर्षों, और त्रुटियों पर रिपोर्ट और निकास कोड बनाए रखें। स्पष्ट रूप से संकीर्ण परिवर्तित-लाइन गेट के लिए ही `--git-diff <base>` का उपयोग करें। | चेक-आउट में मौजूद बाइट्स, या चयनित डिफ़। |
| ज्ञात निष्कर्षों के साथ रिपॉजिटरी अपनाएँ | `.keyhog-baseline.json` बनाएँ, इसे कमिट करें, फिर `--baseline .keyhog-baseline.json` के साथ स्कैन करें। | मौजूदा पहचान बेसलाइन में दृश्यमान रहती हैं जबकि केवल नए निष्कर्ष गेट को विफल करते हैं। | एक बेसलाइन परिवर्तित क्रेडेंशियल या अपूर्ण कवरेज को दबाती नहीं है। |
| पुनरावर्ती Git पुनर्प्राप्ति | `keyhog scan --deep --git-history . --git-blobs . --daemon=off` | डीप नीति को प्रति वर्कर क्लास एक बार कैलिब्रेट करें। प्रोसेस में चलाएँ। | एक रिपॉजिटरी। `--git-history` केवल वर्तमान चेक-आउट की वंशावली को कवर करता है, इसलिए एक शाखा जिसे आपने कभी चेक-आउट नहीं किया, बिना कवरेज गैप के छूट जाती है; `--git-blobs` डैंगलिंग ब्लॉब्स, संशोधित-दूर कमिट्स, स्टैश, नोट्स, एनोटेटेड टैग संदेश, और पैक्ड रेफ्स तक भी पहुँचता है। |
| कंटेनर या आर्काइव निरीक्षण | `keyhog scan --docker-image registry/app:v1` या `keyhog scan incoming/` | एक एनवेलप रिपोर्ट रखें ताकि छोड़े गए, भ्रष्ट, एन्क्रिप्टेड, असुरक्षित, या अत्यधिक बड़े सदस्य दृश्यमान रहें। | केवल चयनित इमेज या फाइलसिस्टम पथ और समर्थित नेस्टेड प्रारूप। |
| URL, प्रतिक्रिया, या HAR निरीक्षण | `keyhog scan --url https://api.example.com/config` या `keyhog scan capture.har` | बाउंडेड स्रोत सीमाओं का उपयोग करें और टर्मिनल एनवेलप को संरक्षित करें। | केवल प्राप्त प्रतिक्रियाएँ या कैप्चर प्रविष्टियाँ। यह क्रॉलर नहीं है। |
| संगठन या क्लाउड इन्वेंट्री | `keyhog scan --daemon=off --github-org acme --format json-envelope --output acme.json` | प्रोवाइडर, मालिक, या बकेट द्वारा विभाजित करें। स्वतंत्र विभाजन को एक रिपोर्ट और स्थिति के साथ समवर्ती रूप से चलाएँ। | प्रति जॉब एक चयनित प्रोवाइडर इन्वेंट्री। पेजिनेशन या ऑब्जेक्ट सीमाएँ कवरेज सीमाएँ बनी रहती हैं। |
| पुष्टि करें कि पात्र निष्कर्ष लाइव हैं या नहीं | `keyhog scan . --verify` | प्रोवाइडर समवर्तीता और दर नियंत्रण स्कैनर वर्कर्स से अलग हैं। | घोषित प्रोवाइडर एंडपॉइंट्स पर क्रेडेंशियल-व्युत्पन्न अनुरोध भेजता है। हर डिटेक्टर सत्यापन का समर्थन नहीं करता। |
| संपूर्ण-होस्ट स्वास्थ्य स्कैन | `sudo keyhog scan-system --space 50G` | डिफ़ॉल्ट रूप से सभी CPU कोर का उपयोग करता है और फाइलसिस्टम डेटा के बाद खोजे गए Git इतिहास को स्कैन करता है। | स्थानीय माउंटेड फाइलसिस्टम। नेटवर्क माउंट ऑप्ट-इन हैं और स्पेस सीलिंग हार्ड है। |
| Unix पर GPU-समर्थित निर्देशिका, इतिहास, आर्काइव, रिमोट, या क्लाउड इन्वेंट्री | ऑटोरूट कैलिब्रेट करें, `keyhog daemon start --mass` शुरू करें, फिर `keyhog scan --daemon=mass <SOURCE>` चलाएँ। | बाउंडेड बैचों को एक संकलित CPU, Hyperscan, CUDA, Metal, या WGPU वर्कर के माध्यम से स्ट्रीम करता है। गर्म अपरिवर्तित फाइलसिस्टम ट्री के लिए `--incremental` जोड़ें। टर्मिनल रसीद सटीक कुल और GPU बैच, चंक्स, बाइट्स, GPU हिस्सा, और थ्रूपुट की रिपोर्ट करती है। | बेसलाइन, सत्यापन, लॉकडाउन, प्रीसेट, ओवरले, और अन्य स्कैनर-नीति परिवर्तन अधिग्रहण से पहले अस्वीकार कर दिए जाते हैं। इंक्रीमेंटल स्थिति केवल डेमॉन-स्थानीय फाइलसिस्टम रूट्स पर लागू होती है। |

### हर समर्थित स्रोत सीमा को स्कैन करें

प्रति सीमा एक कमांड का उपयोग करें। प्रत्येक इन्वेंट्री विभाजन के लिए एक `json-envelope` रिपोर्ट और कच्ची निकास स्थिति रखें।

| स्रोत या उपयोग मामला | कमांड |
|---|---|
| कई स्थानीय रूट्स | `keyhog scan services/api services/web deploy/` |
| लगातार बदलती फ़ाइलें | `keyhog watch services/api deploy/` |
| स्टेज्ड बाइट्स, परिवर्तित लाइनें, पहुँच योग्य इतिहास, या ब्लॉब्स | `keyhog scan --git-staged`, `--git-diff main`, `--git-history .`, या `--git-blobs .` |
| नेटिव बाइनरी और फर्मवेयर स्ट्रिंग्स | `keyhog scan --binary firmware.bin` (एक सादा निर्देशिका स्कैन बाइनरी छोड़ देता है और फिर भी `0` पर बाहर निकलता है) |
| आर्काइव और संपीड़ित स्रोत | `keyhog scan incoming/` (समर्थित सदस्य स्वचालित रूप से विस्तारित होते हैं) |
| Docker इमेज परतें | `keyhog scan --docker-image registry/app:v1` |
| JavaScript, स्रोत मैप्स, WASM, या एक एंडपॉइंट प्रतिक्रिया | `keyhog scan --url https://api.example.com/config` |
| HTTP अनुरोध और प्रतिक्रिया कैप्चर | `keyhog scan capture.har` |
| GitHub issues, pull requests, discussions, wikis, और gists | `keyhog scan --github-collaboration owner/repo --github-all` |
| GitHub, GitLab, या Bitbucket इन्वेंट्री | `--github-org ORG`, `--gitlab-group GROUP`, या `--bitbucket-workspace WORKSPACE` |
| S3, GCS, या Azure Blob इन्वेंट्री | `--s3-bucket BUCKET`, `--gcs-bucket BUCKET`, या `--azure-container-url URL` |
| किसी अन्य टूल से बाउंडेड स्ट्रीम | `producer \| keyhog scan --stdin` (`set -o pipefail` का उपयोग करें ताकि एक विफल प्रोड्यूसर अपनी स्वयं की त्रुटि सतह करे, न कि शून्य-बाइट स्कैन) |

एक सादा निर्देशिका स्कैन नेटिव बाइनरी नहीं पढ़ता। प्रत्येक एक `binary (extension or content sniff)` कवरेज गैप बन जाता है, स्कैन फिर भी `0` पर बाहर निकलता है, और `--no-default-excludes` इसे नहीं बदलता, इसलिए जब संकलित आर्टिफैक्ट दायरे में हों तो `--binary` पास करें। उस फ्लैग को `binary` फीचर के साथ एक बिल्ड की आवश्यकता होती है, जो डिफ़ॉल्ट crates.io इंस्टॉल में है और लीन `ci` फीचर में नहीं है।

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

एंडपॉइंट फ़ेचिंग बाउंडेड और SSRF-स्क्रीन किया गया है। यह क्रॉलर नहीं है। निजी क्लाउड एंडपॉइंट्स और क्रेडेंशियल फ़ॉरवर्डिंग के लिए उनके स्पष्ट ट्रस्ट फ्लैग्स की आवश्यकता होती है। प्रोवाइडर टोकन दस्तावेज़ित पर्यावरण चरों में होने चाहिए, प्रोसेस तर्कों में नहीं।

स्रोत और नीति विवरण के लिए [वर्कफ़्लो चयनकर्ता](https://santhreal.github.io/keyhog/capabilities.html), बनाए रखे गए रिपॉजिटरी गेट के लिए [GitHub Action गाइड](https://santhreal.github.io/keyhog/workflows/github-action.html), स्थायी रिपोर्ट और निकास हैंडलिंग के लिए [प्रत्यक्ष CI गाइड](https://santhreal.github.io/keyhog/workflows/ci.html), और विभाजन और एकत्रीकरण के लिए [मास-स्कैनिंग गाइड](https://santhreal.github.io/keyhog/guides/mass-scanning.html) का उपयोग करें। [रेसिपी कुकबुक](https://santhreal.github.io/keyhog/recipes.html) कंटेनर, आर्काइव, URL, GitHub सहयोग सामग्री, और क्लाउड स्रोतों को कवर करता है।

### अनुमान के बिना गति और समवर्तीता

डिफ़ॉल्ट से शुरू करें। Cargo `cargo install` के बाद KeyHog को निष्पादित नहीं कर सकता, इसलिए मल्टी-बैकएंड Cargo बिल्ड स्थापित करने के बाद और होस्ट, बाइनरी, डिटेक्टर कॉर्पस, ड्राइवर, या वर्कलोड क्लासेस बदलने के बाद नीचे दिए गए कमांड एक बार चलाएँ:```sh
keyhog calibrate-autoroute --policy all
keyhog backend --autoroute --json
नियंत्रणइसके लिए उपयोग करेंयह अपरिवर्तनीय रखें
कैलिब्रेटेड --backend autoनियमित CPU, Hyperscan, या GPU चयन।एक स्पष्ट बैकएंड एक डायग्नोस्टिक ओवरराइड है, तेज़ डिफ़ॉल्ट नहीं।
--threads <N>साझा रनर पर CPU क्षमता आरक्षित करना। समर्पित होस्ट को सामान्यतः इसे अनसेट छोड़ना चाहिए ताकि KeyHog उपलब्ध कोर का उपयोग कर सके।हर मान धनात्मक होना चाहिए। कई समवर्ती KeyHog प्रक्रियाएँ प्रत्येक एक वर्कर पूल की मालिक होती हैं, इसलिए होस्ट बजट को विभाजनों में बाँटें।
--reader-threads <N>मापी गई स्टोरेज पाइपलाइनें जहाँ रीडर कार्य, स्कैनिंग नहीं, बाधा है।डिफ़ॉल्ट स्कैन वर्कर पूल से प्राप्त होता है। इसे तब तक अनसेट छोड़ें जब तक प्रोफाइलिंग रीडर बाधा न दिखाए।
--incremental और --incremental-cache <PATH>एक ही विश्वसनीय ट्री की बार-बार स्कैन।एक इंडेक्स को असंबंधित रिपॉजिटरी या अविश्वसनीय कार्यों में साझा न करें।
प्रदाता या रिपॉजिटरी विभाजनसमवर्ती एस्टेट स्कैनिंग और स्वतंत्र पुनः प्रयास।प्रति विभाजन एक टर्मिनल एनवेलप और कच्चा निकास कोड बनाए रखें। निष्कर्षों को संयोजित न करें और कवरेज स्थिति को त्यागें नहीं।
--verify-concurrency, --verify-rate, और --verify-batchफ़ाइल स्कैनिंग से स्वतंत्र रूप से लाइव प्रदाता जाँचों को सीमित करना।सत्यापन क्रेडेंशियल-व्युत्पन्न अनुरोध भेजता है। प्रदाता दर सीमाएँ, CPU गिनती नहीं, इस समवर्तीता की मालिक हैं।
मास डेमनएक Unix वर्कर पर TB-स्केल निर्देशिका, इतिहास, संग्रह, रिमोट, या क्लाउड स्ट्रीम।प्रत्येक फ्रेम 8 MiB और 1,024 चंक तक सीमित है। डेमन फ्रैगमेंट स्थिति को क्रमबद्ध करता है और एक सटीक CPU/GPU निष्पादन रसीद लौटाता है।
--fast, डिफ़ॉल्ट, --deep, या --precisionएक स्पष्ट डिटेक्शन-लागत और रिकॉल नीति चुनना।ये प्रीसेट परस्पर अनन्य हैं और कवरेज बदलते हैं। ये विनिमेय गति नॉब नहीं हैं।

keyhog config --effective के साथ समाधान की गई नीति का निरीक्षण करें। रीडर, बैच, या चैनल-डेप्थ नियंत्रण बदलने से पहले --profile का उपयोग करके निश्चित स्कैनर चरणों और पूर्ण ऑपरेटर रन को मापें। कम-ओवरहेड रिपोर्ट स्रोत, बैकएंड, कैश, वर्कलोड, थ्रेड, इनपुट, स्टेट-ट्रांज़िशन, CPU-समय, पीक मेमोरी, सटीक बाइनरी SHA-256, सक्षम-फीचर SHA-256, टारगेट ट्रिपल, बिल्ड प्रोफ़ाइल, कंपाइलर, एलोकेटर, लिंक्ड-बैकएंड SHA-256, डिटेक्टर-कॉर्पस SHA-256, सक्षम-डिटेक्टर BLAKE3, संकलित-प्लान BLAKE3, हैश किया गया डिटेक्टर-प्रोवेनेंस, पूर्ण समाधान-कॉन्फ़िगरेशन BLAKE3, प्रदर्शन-नीति BLAKE3, प्रीसेट, लागू सुरक्षा स्थिति, स्रोत एडेप्टर, हैश किया गया स्रोत-लक्ष्य BLAKE3, हैश किया गया स्रोत-विभाजन BLAKE3, कच्चे स्रोत बाइट्स, स्रोत-यूनिट फैनआउट, डिकोड-व्युत्पन्न बाइट्स, पूर्ण बैकएंड-डिस्पैच बाइट्स, और स्थिर आकार/फैनआउट बकेट रिकॉर्ड करती है। बाइट डोमेन जिन्हें उनका स्रोत एडेप्टर अभी तक अलग नहीं कर सकता, मापे गए शून्य बनने के बजाय स्पष्ट रूप से अनुपलब्ध रहते हैं। रिपोर्ट स्रोत सामग्री, क्रेडेंशियल मान, कच्चे पथ, कच्चे URL, या कच्चे कॉन्फ़िगरेशन मान रिकॉर्ड नहीं करती। --perf-trace का उपयोग केवल महंगे प्रति-पैटर्न और बैकएंड डायग्नोस्टिक काउंटरों के लिए करें। उन्नत पाइपलाइन नियंत्रणों को अनसेट रखें जब तक कि लक्ष्य वर्कर पर एक प्रतिलिपि योग्य माप सुधार न दिखाए।

एक आवर्ती पूर्ण रिपॉजिटरी स्कैन के लिए:```sh keyhog scan . --incremental
--format json-envelope --output keyhog.json

root@kitploit:~
एक साझा रनर के लिए जहां जॉब को चार स्कैनर वर्कर और एक
रीडर वर्कर आवंटित किया गया है:```sh
keyhog scan . --threads 4 --reader-threads 1 \
  --format json-envelope --output keyhog.json

दूसरा कमांड एक संसाधन बजट है, न कि एक सार्वभौमिक इष्टतम। स्पष्ट वर्कर काउंट चुनने से पहले लक्ष्य होस्ट को मापें।

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

सीक्रेट स्कैनर बेंचमार्क

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

डिटेक्शन सटीकता

KeyHog KeyHog v0.5.70 ने मिरर कॉर्पस को स्कैन किया: 15,000 फिक्स्चर, 3,000 लेबल किए गए पॉज़िटिव, और 2,431,242 इनपुट बाइट्स। उत्तर-कुंजी मैनिफेस्ट को स्कैन ट्री से बाहर रखा गया था। पंक्ति AMD Ryzen 9 9950X 16-Core Processor पर स्पष्ट Hyperscan/SIMD मार्ग पर डिफ़ॉल्ट पॉलिसी का उपयोग करती है।

PrecisionRecallF1True positivesFalse positivesFalse negatives
0.96510.90270.93282,70898292

ट्रैक किया गया स्रोत ट्री साफ था।

निष्पादन मार्ग, प्रीसेट, और कैश

AMD Ryzen 9 9950X 16-Core Processor पर NVIDIA GeForce RTX 5090, 32 लॉजिकल कोर, 15,000 फिक्स्चर, 3,000 लेबल किए गए पॉज़िटिव, और 2,431,242 इनपुट बाइट्स के साथ मापा गया। स्कैनर: KeyHog v0.5.70। ट्रैक किया गया स्रोत ट्री साफ था।

निष्पादन मार्ग द्वारा पूर्ण स्कैन

सभी पंक्तियाँ इंक्रीमेंटल कैश और डेमन बंद के साथ डिफ़ॉल्ट डिटेक्शन पॉलिसी का उपयोग करती हैं। स्वचालित पंक्ति अनुरोधित पॉलिसी को रिकॉर्ड करती है, लेकिन बेंचमार्क परिणाम चयनित बनाए रखा मार्ग को बांधता नहीं है, इसलिए यह रूटिंग प्रमाण नहीं है। GPU पंक्तियों में इस छोटे कॉर्पस पर अधिग्रहण और पूर्ण स्कैनर स्टार्टअप शामिल है; वे GPU कर्नेल क्रॉसओवर माप नहीं हैं।

Requested routeWallThroughputPeak RSSF1
Hyperscan/SIMD860 ms2.70 MB/s416 MiB0.9328
Pure-Rust CPU903 ms2.57 MB/s509 MiB0.9328
CUDA2.03 s1.14 MB/s963 MiB0.9328
WGPU1.97 s1.18 MB/s1264 MiB0.9328
Automatic1.46 s1.59 MB/s634 MiB0.9328

Hyperscan/SIMD पर डिटेक्शन पॉलिसी

मार्ग, कैश, डेमन स्थिति, कॉर्पस, और होस्ट स्थिर रहते हैं। प्रीसेट डिटेक्शन कार्य को बदलते हैं, इसलिए समय के साथ-साथ precision और recall की तुलना करें।

PolicyWallPrecisionRecallF1Findings
Fast737 ms0.97000.88370.92482,738
Default860 ms0.96510.90270.93282,816
Deep861 ms0.96450.90670.93472,845
Precision849 ms0.95900.63970.76742,001

इंक्रीमेंटल वार्म रीरन

बेंचमार्क BLAKE3 Merkle इंडेक्स को आबाद करता है, फिर दूसरे समान स्कैन का समय निर्धारित करता है। छोटा सिंथेटिक ट्री थोड़ा बदलता है क्योंकि स्कैनर स्टार्टअप हावी होता है; स्पीडअप का दावा करने से पहले अपने रिपॉजिटरी को मापें।

Hyperscan/SIMD default policyWallThroughputPeak RSS
Cache off860 ms2.70 MB/s416 MiB
Warm incremental cache617 ms3.76 MB/s457 MiB

वार्म डेमन अनुरोध

एक निर्धारक 8 MiB नियमित फ़ाइल (sha256:afafbe7b6487fd62866f510e7c281a9e7bfeaa8dc585d7b0478c92ee6c4f5ef5) को एक बार प्रक्रिया में और एक बार एक स्वामित्व वाले डेमन के माध्यम से एक वार्मअप अनुरोध के बाद स्कैन किया गया। डेमन समय क्लाइंट अनुरोध है; डेमन RSS निवासी सर्वर से संबंधित है।

Explicit routeIn processWarm daemonWarm / one-shotIn-process RSSDaemon RSS
Hyperscan/SIMD323 ms106 ms0.33×63 MiB74 MiB
Pure-Rust CPU278 ms109 ms0.39×62 MiB66 MiB
CUDA1.65 s232 ms0.14×674 MiB666 MiB
WGPU1.33 s237 ms0.18×596 MiB600 MiB

ये पंक्तियाँ वार्म सिंगल-फ़ाइल मार्ग को कवर करती हैं। मास मार्ग सीमित निर्देशिका और दूरस्थ-स्रोत बैचों को भी स्वीकार करता है; इसका इंक्रीमेंटल फाइलसिस्टम पथ अलग से मापा जाता है।

CPU, रीडर, स्टोरेज, आकार, और विभाजन स्केलिंग

benchmarks/reports/readme-scaling.json से make -C benchmarks readme-scaling द्वारा उत्पन्न। हार्नेस ने स्पष्ट simd और डेमन रूटिंग बंद के साथ 1 वार्म-अप के बाद 3 मापे गए परीक्षण चलाए। वर्कर स्केलिंग CPU कार्य को अलग करने के लिए वार्म क्लाइंट पेज कैश का उपयोग करती है। रीडर, कॉर्पस-आकार, स्टोरेज, और विभाजन पंक्तियाँ साफ-पेज निष्कासन को posix_fadvise के साथ अनुरोध करती हैं जहाँ प्लेटफ़ॉर्म इसका समर्थन करता है; स्नैपशॉट हर पंक्ति पर पॉलिसी रिकॉर्ड करता है। हर वर्कलोड बाइट-निर्धारक और फाइंडिंग-मुक्त है।

होस्ट: AMD Ryzen 9 9950X 16-Core Processor, 32 प्रभावी लॉजिकल कोर, 94,140 MiB RAM, Linux 6.17.0-19-generic। साक्ष्य: clean, बाइनरी 274b045489c4।

स्कैन वर्कर स्केलिंग

WorkersReader threadsMedian wallp95 wallThroughputSpeedupEfficiencyMedian peak RSS
1auto8,134.4 ms8,135.4 ms7.9 MiB/s1.00x100.0%47.0 MiB
2auto4,398.2 ms6,906.7 ms14.6 MiB/s1.85x92.5%50.3 MiB
4auto2,392.6 ms6,245.2 ms26.7 MiB/s3.40x85.0%57.2 MiB
8auto1,816.3 ms6,117.6 ms35.2 MiB/s4.48x56.0%63.4 MiB
16auto1,428.5 ms6,867.7 ms44.8 MiB/s5.69x35.6%78.4 MiB
32auto1,862.8 ms5,939.1 ms34.4 MiB/s4.37x13.6%126.7 MiB

फाइलसिस्टम रीडर स्केलिंग

Scan workersReader threadsMedian wallp95 wallThroughputRelative to 1 readerMedian peak RSS
3211,898.7 ms1,922.1 ms33.7 MiB/s1.00x121.3 MiB
3221,881.7 ms1,887.5 ms34.0 MiB/s1.01x122.8 MiB
3241,874.2 ms1,891.2 ms34.1 MiB/s1.01x126.6 MiB
3281,873.2 ms1,885.7 ms34.2 MiB/s1.01x133.4 MiB
32161,856.8 ms1,868.5 ms34.5 MiB/s1.02x153.9 MiB
32321,877.3 ms1,880.4 ms34.1 MiB/s1.01x179.5 MiB

कॉर्पस-आकार स्केलिंग

CorpusFilesExact bytesMedian wallp95 wallThroughputMedian peak RSS
small2568 MiB869.9 ms886.1 ms9.2 MiB/s111.1 MiB
medium1,02464 MiB1,859.9 ms1,874.8 ms34.4 MiB/s126.3 MiB
large2,048256 MiB5,214.9 ms5,321.7 ms49.1 MiB/s137.1 MiB

स्टोरेज स्केलिंग

Storage classFilesystemDevice IDMedian wallp95 wallThroughputRelative to first storageMedian peak RSS
workspaceext4663051,847.4 ms1,863.4 ms34.6 MiB/s1.00x127.0 MiB
local-temptmpfs1161,870.8 ms1,887.3 ms34.2 MiB/s0.99x124.9 MiB

समवर्ती विभाजन स्केलिंग

ProcessesWorkers per processAggregate workersTotal filesTotal bytesMedian wallAggregate throughputSpeedupMedian summed peak RSS
132322568 MiB871.9 ms9.2 MiB/s1.00x111.5 MiB
2163251216 MiB404.6 ms39.5 MiB/s4.31x134.0 MiB
48321,02432 MiB571.1 ms56.0 MiB/s6.11x227.2 MiB

ये पंक्तियाँ माप हैं, सार्वभौमिक ट्यूनिंग स्थिरांक नहीं। जनरेटर को लक्ष्य होस्ट और स्टोरेज पर चलाएं। उस घुटने का उपयोग करें जहाँ थ्रूपुट में सुधार रुक जाता है, फिर CI रनर या ऑर्केस्ट्रेशन परत के लिए CPU और मेमोरी आरक्षित करें।

सभी चार बेंचमार्क समूहों को make -C benchmarks readme-matrix के साथ पुन: उत्पन्न करें। कमांड आवश्यक मैट्रिक्स को मापता है और विफल हो जाता है यदि कोई अनुरोधित CPU, Hyperscan, CUDA, Metal, WGPU, प्रीसेट, कैश, डेमन, थ्रेड, रीडर, स्टोरेज, कॉर्पस आकार, या विभाजन पंक्ति अनुपलब्ध है। यह सत्यापित करने के लिए make -C benchmarks readme-matrix-check का उपयोग करें कि दोनों स्नैपशॉट, रिपोर्ट, और README सहमत हैं।

स्कैन कॉन्फ़िगरेशन चुनें

डिफ़ॉल्ट पॉलिसी और कैलिब्रेटेड स्वचालित रूटिंग से शुरू करें। केवल एक अक्ष बदलें जब वर्कफ़्लो को इसकी आवश्यकता हो:

WorkflowDetection policyExecution and reuseAdditional control
पहला रिपॉजिटरी स्कैनDefaultकैलिब्रेटेड auto; --daemon=autoसप्रेशन जोड़ने से पहले सभी फाइंडिंग की समीक्षा करें।
बार-बार स्थानीय ट्री या CI स्कैनDefaultकैलिब्रेटेड auto; --incrementalइंक्रीमेंटल कैश को केवल उसी विश्वसनीय ट्री के स्कैन के बीच बनाए रखें।
छोटा फीडबैक लूप--fastकैलिब्रेटेड auto; वैकल्पिक --incrementalकम डिकोड, एन्ट्रॉपी, और ML कवरेज स्वीकार करें। मर्ज से पहले डिफ़ॉल्ट पॉलिसी चलाएं।
उच्चतम-रिकॉल पुनर्प्राप्ति--deepप्रक्रिया मेंDeep fast और precision के साथ परस्पर अनन्य है, और डेमन के योग्य नहीं है।
कम-शोर बड़ी इन्वेंट्री--precisionरिपॉजिटरी संग्रह, इतिहास, और क्लाउड स्रोतों के लिए प्रक्रिया मेंप्रीसेट कॉन्फिडेंस फ्लोर बढ़ाता है और एन्ट्रॉपी डिस्कवरी अक्षम करता है। यह कम-कॉन्फिडेंस क्रेडेंशियल्स को मिस कर सकता है।
Unix पर TB-स्केल निर्देशिका, इतिहास, संग्रह, दूरस्थ, या क्लाउड इन्वेंट्रीDefaultkeyhog daemon start --mass, फिर --daemon=massबैच 8 MiB और 1,024 चंक्स पर सीमित रहते हैं। टर्मिनल कवरेज रिपोर्ट और GPU निष्पादन रसीद को संरक्षित करें।
लाइव क्रेडेंशियल सत्यापनDefaultप्रक्रिया मेंस्पष्ट रूप से --verify जोड़ें। सत्यापन प्रदाताओं को क्रेडेंशियल-व्युत्पन्न अनुरोध भेजता है।
Linux नो-स्वैप स्कैनDefault प्लस --lockdownप्रक्रिया में; इंक्रीमेंटल कैश अक्षमLockdown सत्यापन, प्लेनटेक्स्ट सीक्रेट, फास्ट मोड, और पूर्णता-कम करने वाले स्विच को अस्वीकार करता है।

--fast, --deep, और --precision परस्पर अनन्य डिटेक्शन प्रीसेट हैं। --lockdown एक फेल-क्लोज्ड निष्पादन मोड है, चौथा प्रीसेट नहीं। स्पष्ट --backend मान डायग्नोस्टिक्स और बेंचमार्क ओवरराइड हैं। वे स्वचालित रूटिंग द्वारा उपयोग किए गए बनाए रखा सबसे-तेज़-सही साक्ष्य को प्रतिस्थापित नहीं करते हैं। पूर्ण अनुबंधों के लिए Configuration, autoroute calibration, daemon and warm scans, और hardening देखें।

KeyHog कैसे काम करता है

KeyHog अपने 934 डिटेक्टरों को एक साझा ट्रिगर और निष्कर्षण योजना में संकलित करता है, मिलान से पहले नेस्टेड एन्कोडिंग को डिकोड करता है, और प्रति-डिटेक्टर स्कोरिंग, साक्ष्य, और सप्रेशन लागू करता है। Pure-Rust CPU (cpu-fallback) हमेशा उपलब्ध है। Hyperscan मार्ग (simd-regex) उस सुविधा के मौजूद होने पर Hyperscan का उपयोग करता है; पोर्टेबल बिल्ड CPU मार्ग का उपयोग करते हैं। CUDA (gpu-cuda-region-presence), Metal (gpu-metal-region-presence), और WGPU (gpu-wgpu-region-presence) एक प्रूफ-समर्थित ऑटोरूट चयनकर्ता में सहकर्मी हैं, फॉलबैक श्रृंखला नहीं। कैलिब्रेशन हर योग्य सहकर्मी को मापता है और सबसे तेज़ मार्ग को बनाए रखता है जिसके पूर्ण फाइंडिंग सटीक बाइनरी, डिटेक्टर और कॉन्फ़िगरेशन स्थिति, होस्ट, एक्सेलेरेटर, और वर्कलोड वर्ग के लिए संदर्भ मार्ग से मेल खाते हैं। एक अनुपलब्ध, पुराना, अमान्य, या अपूर्ण निर्णय निष्पादन से पहले एक स्वचालित स्कैन को रोकता है और रीकैलिब्रेट करने का तरीका रिपोर्ट करता है। यह कभी भी चुपचाप किसी अन्य बैकएंड को प्रतिस्थापित नहीं करता है।

रिपॉजिटरी मैप, निर्भरता दिशा, बाइट्स-से-फाइंडिंग पाइपलाइन, और प्रोफाइलिंग एंट्रीपॉइंट के लिए Architecture देखें। निष्पादन अनुबंधों के लिए Backends and routing और समता, वर्कलोड पहचान, कैश जीवनचक्र, और मरम्मत प्रक्रियाओं के लिए Autoroute calibration देखें।

पूर्ण दस्तावेज़ीकरण: santhreal.github.io/keyhog - इंस्टॉल, पहला स्कैन, आउटपुट प्रारूप, डिटेक्शन इंटर्नल, सप्रेशन, सत्यापन, pre-commit + CI एकीकरण, CLI संदर्भ, autoroute, एग्जिट कोड, env vars, और योगदान। स्रोत docs/ के अंतर्गत।


KeyHog इंस्टॉल करें

वर्तमान crates.io रिलीज़ इंस्टॉल करें:```sh cargo install keyhog --locked

root@kitploit:~
जब आपको कोई अप्रकाशित परिवर्तन चाहिए तो रिपॉजिटरी चेकआउट बनाएँ:```sh
cargo install --path crates/cli --locked

स्थापित बिल्ड की पुष्टि करें:```sh keyhog --version --full keyhog doctor

root@kitploit:~
[इंस्टॉल गाइड](https://santhreal.github.io/keyhog/install.html) का उपयोग करें
Rust टूलचेन आवश्यकताओं, फीचर प्रोफाइल और प्लेटफ़ॉर्म-विशिष्ट रनटाइम
निर्भरताओं के लिए।


## यह क्या पकड़ता है

934 एम्बेडेड डिटेक्टर, डिटेक्टर-स्वामित्व वाले ऑफ़लाइन सत्यापन और साथियों के साथ:

- **क्लाउड प्रदाता:** AWS (एक्सेस की + सीक्रेट + STS सत्यापन),
  Azure (सब्सक्रिप्शन की, स्टोरेज अकाउंट की, SAS), GCP (सर्विस अकाउंट,
  API की), Cloudflare, Heroku, Vercel, Supabase।
- **भुगतान प्रोसेसर:** Stripe, Braintree, Razorpay, Paddle, Plaid,
  Square और PayPal, डिटेक्टर-स्वामित्व वाली जाँचों और वैकल्पिक या आवश्यक
  साथियों के साथ। एक Razorpay की सीक्रेट के लिए उसके पास की की ID आवश्यक है।
- **सोर्स फोर्ज:** GitHub PAT (CRC32 चेकसम के साथ), GitLab टोकन,
  Bitbucket ऐप पासवर्ड, npm टोकन (चेकसम के साथ), Gitea / Forgejo
  / Codeberg।
- **Auth / SSO:** Okta, Auth0, Clerk, JumpCloud, Kinde।
- **संचार:** Slack, Discord, Twilio, SendGrid, Postmark, Mailgun,
  Resend, Loops।
- **AI / ML:** OpenAI (sk-/sk-proj-), Anthropic, Google AI Studio,
  Cohere, Mistral, HuggingFace, Replicate। HuggingFace संगठन
  क्रेडेंशियल में वर्तमान `hf_` रूप और पुराने `api_org_`
  टोकन दोनों शामिल हैं।
- **पासवर्ड मैनेजर:** 1Password अकाउंट सीक्रेट की (`A3-` के बाद
  पाँच या छह खंडित अपरकेस अल्फ़ान्यूमेरिक घटक)।
- **डेटाबेस:** Postgres कनेक्शन स्ट्रिंग, MongoDB Atlas, Supabase
  सर्विस-रोल, PlanetScale, Neon, Turso, MySQL, Redis URL।
- **जेनेरिक + एन्ट्रॉपी खोज:** `API_KEY=<high-entropy-blob>` उन
  क्रेडेंशियल्स को पकड़ता है जिनका कोई नामित डिटेक्टर नहीं है, जो प्रति-संदर्भ एन्ट्रॉपी
  थ्रेशोल्ड + ML स्कोरिंग द्वारा गेटेड है।
- **क्रिप्टोग्राफ़िक सामग्री:** RSA / EC / SSH निजी की, PGP निजी
  ब्लॉक, JWT साइनिंग सीक्रेट।

प्रत्येक डिटेक्टर एक [TOML फ़ाइल](https://github.com/santhreal/keyhog/blob/main/detectors) (डेटा, कोड नहीं) के रूप में आता है:
सेवा मेटाडेटा, regex पैटर्न, कीवर्ड, ऑफ़लाइन वैलिडेटर, एन्ट्रॉपी और ML
नीति, साथी फ़ील्ड और सत्यापन हैंडलर। नया डिटेक्टर जोड़ना एक
समीक्षा-योग्य TOML परिवर्तन है;
[योगदानकर्ता गाइड](https://github.com/santhreal/keyhog/blob/main/CONTRIBUTING.md) इसे समझाता है।

`keyhog explain <id>` किसी भी डिटेक्टर का पूरा स्पेक डंप करता है: पैटर्न, कीवर्ड,
सत्यापन एंडपॉइंट, साथ ही एक सेवा-कीड रोटेशन और चरण-दर-चरण
सुधार गाइड, ताकि एक खोज कभी ब्लैक बॉक्स न हो:

<p align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/7654/0fc64959950abfa39c0ba81a1f5fbde3fe17a57169d2edca38cb0f248c834470.gif" alt="keyhog explain github-classic-pat: detector spec dump (pattern ghp_[A-Za-z0-9]{36}, keyword, verification URL) followed by the github rotation guide and step-by-step remediation" width="860" />
</p>

डिटेक्टर लेखन और निरीक्षण को [डिटेक्टर संदर्भ](https://github.com/santhreal/keyhog/blob/main/docs/src/detectors.md) में ब्राउज़ करें, या इंस्टॉल किए गए कॉर्पस को
`keyhog detectors --search <term> --verbose` से क्वेरी करें।

## उच्च रिकॉल, कम फ़ॉल्स पॉज़िटिव क्यों

- **डिकोड-थ्रू स्कैनिंग।** Kubernetes `Secret` मैनिफेस्ट, Jupyter
  नोटबुक, JWT पेलोड, base64-लिपटे env, Helm मान और docker-config
  `auth:` ब्लॉब। संरचित प्रीप्रोसेसर संतुलित Helm एक्शन को
  निष्क्रिय रेंडर-टाइम मान मानता है और फ़ाइल के अंत में लापता Jupyter डिलिमिटर बंद करता है,
  ताकि शाब्दिक बाइट्स और पूर्ण कोड सेल कवर रहें। यह संरचित मानों को
  स्थान पर डिकोड करता है और हर डाउनस्ट्रीम डिटेक्टर को प्लेनटेक्स्ट देता है। डिटेक्टरों को
  प्रत्येक को डिकोडिंग को फिर से लागू करने की आवश्यकता नहीं है। डिकोड-सक्षम स्कैन साइड-इफ़ेक्ट-मुक्त JavaScript बाइट-ऐरे XOR और AES-256-CBC एक्सप्रेशन भी पुनर्प्राप्त करते हैं जब
  सभी पुनर्प्राप्ति सामग्री एम्बेडेड होती है, जिसमें सख्त CryptoJS/OpenSSL साल्टेड
  पासफ़्रेज़ रैपर शामिल हैं। KeyHog स्रोत को कभी निष्पादित नहीं करता।
- **मल्टीलाइन पुनर्संयोजन।** JavaScript में `"sk-proj-" + \` निरंतरता,
  YAML मल्टी-लाइन स्ट्रिंग, Makefile बैकस्लैश-निरंतरता, Helm /
  Jinja टेम्पलेटेड आउटपुट, सभी regex मिलान से पहले पुनर्संयोजित।
- **साथी सत्यापन।** आवश्यक साथी उच्च-शोर डिटेक्टरों को गेट करते हैं। एक
  Twilio API की बिना उसके API सीक्रेट के छोड़ दी जाती है। वैकल्पिक साथी
  साक्ष्य स्कोरिंग या सत्यापन को समृद्ध करते हैं। AWS एक्सेस-की डिटेक्शन के लिए
  उसका सीक्रेट आवश्यक नहीं है, लेकिन लाइव सत्यापन के लिए सीक्रेट आवश्यक है।
- **क्रॉस-डिटेक्टर समाधान।** डिटेक्टर TOML किसी अन्य डिटेक्टर से बाउंडेड
  खोजों को आवश्यक, अस्वीकार या समाहित कर सकता है। समाधान इनपुट क्रम में नियतात्मक रहता है,
  और अमान्य लक्ष्य, विरोधाभास या निर्भरता चक्र कॉर्पस संकलन को विफल करते हैं।
- **साक्ष्य निर्णय।** हर खोज एक सटीक `review`, `likely`, या
  `confirmed` स्तर और एक विहित कारण कोड रखती है। आंतरिक चेकसम या व्याकरण
  प्रमाण, आवश्यक साथी और लाइव सत्यापन confirmed साक्ष्य उत्पन्न करते हैं;
  क्रेडेंशियल-धारक भूमिका में मजबूत विक्रेता-विशिष्ट आकार likely साक्ष्य उत्पन्न करता है;
  कमजोर एंकर, जेनेरिक असाइनमेंट, एन्ट्रॉपी-केवल उम्मीदवार और
  परीक्षण, दस्तावेज़ीकरण, नियम या पहचानकर्ता संदर्भ review साक्ष्य बने रहते हैं।
  एक वैकल्पिक `evidence_score` मापे जाने पर निर्णय को पूरक करता है।
  डिफ़ॉल्ट थ्रेशोल्ड `0.40` स्कैनर की आंतरिक आत्मविश्वास मंज़िल को नियंत्रित करता है
  और `--min-confidence` के साथ कॉन्फ़िगर करने योग्य रहता है।
- **बायेसियन प्रति-डिटेक्टर कैलिब्रेशन।** `keyhog calibrate --fp generic-api-key`
  एक Beta(α,β) पोस्टीरियर लिखता है। स्कैन इसे केवल तब उपयोग करते हैं जब `--calibration-cache`
  या `[system].calibration_cache` उस फ़ाइल की ओर इशारा करता है, ताकि आत्मविश्वास ट्यूनिंग
  स्पष्ट और प्रतिलिपि-योग्य हो, न कि आवारा होस्ट कैश स्थिति पर निर्भर।

## प्रदर्शन

KeyHog, Betterleaks, Kingfisher, Nosey Parker, TruffleHog और Titus की तुलना एक स्कोरिंग
अनुबंध के तहत करने के लिए [`benchmarks/`](https://github.com/santhreal/keyhog/blob/main/benchmarks) में प्रतिलिपि-योग्य हार्नेस का उपयोग करें।
हार्नेस हर स्कैन ट्री से ग्राउंड-ट्रुथ मैनिफेस्ट को बाहर करता है।
जब तक वर्तमान-स्कीमा रन मौजूद न हों, उत्पन्न तालिकाएँ खाली रहती हैं। माप के बाद
`make -C benchmarks report` चलाएँ। उत्पन्न तालिकाओं को हाथ से संपादित न करें।

### डिटेक्शन लीडरबोर्ड

<!-- BENCH:leaderboard:start -->
#### सिंथेटिक SecretBench-आकार मिरर कॉर्पस
कॉर्पस: **mirror** - 15000 फिक्स्चर, 3000 लेबल किए गए पॉज़िटिव, 2,431,242 बाइट्स। हर स्कैनर को समान रूप से स्कोर किया गया (SecretBench ओवरलैप नियम); उत्तर-कुंजी मैनिफेस्ट स्कैन ट्री से बाहर है।

| रैंक | स्कैनर | F1 | प्रिसिज़न | रिकॉल | खोजें | वॉल | पीक RSS |
|---|---|---|---|---|---|---|---|
| 1 | **KeyHog** | **0.9328** | 0.9651 | 0.9027 | 2816 | 1.05s | 416 MB |
| 2 | TruffleHog | 0.5294 | 1.0000 | 0.3600 | 1080 | 1.59s | 300 MB |
| 3 | Kingfisher | 0.4683 | 0.3877 | 0.5913 | 5255 | 4.81s | 402 MB |
| 4 | Titus | 0.4207 | 0.3381 | 0.5567 | 5151 | 2.86s | 115 MB |
| 5 | Nosey Parker | 0.4186 | 0.3511 | 0.5183 | 4529 | 0.82s | 285 MB |
| 6 | Betterleaks | 0.3498 | 0.2241 | 0.7970 | 11113 | 0.74s | 198 MB |

#### प्रतियोगी होमफ़ील्ड / होम-टर्फ नियम कॉर्पस
कॉर्पस: **homefield** - प्रतियोगी ग्राउंड-ट्रुथ नियम सूट (Betterleaks और Kingfisher नियम; 1,057 लेबल किए गए पॉज़िटिव, 1,342 नेगेटिव, 772,974 बाइट्स) से काटे गए 2399 फिक्स्चर। प्रतियोगी ग्राउंड ट्रुथ पर क्रॉस-टूल मूल्यांकन।

| रैंक | स्कैनर | F1 | प्रिसिज़न | रिकॉल | खोजें | वॉल | पीक RSS |
|---|---|---|---|---|---|---|---|
| 1 | **KeyHog** | **0.9214** | 0.9582 | 0.8874 | 979 | 0.72s | 384 MB |
| 2 | Betterleaks | 0.9056 | 0.9130 | 0.8984 | 1040 | 0.58s | 192 MB |
| 3 | Kingfisher | 0.8842 | 0.9250 | 0.8468 | 968 | 2.14s | 390 MB |
| 4 | TruffleHog | 0.4812 | 0.9850 | 0.3226 | 345 | 1.22s | 280 MB |
| 5 | Titus | 0.4635 | 0.3810 | 0.5913 | 1640 | 2.15s | 110 MB |
| 6 | Nosey Parker | 0.4520 | 0.3950 | 0.5280 | 1412 | 0.68s | 265 MB |
### परिणाम उत्पत्ति

| स्कैनर | स्कैनर संस्करण / निष्पादन योग्य डाइजेस्ट | कॉर्पस पहचान | होस्ट पहचान | रन तिथि |
|---|---|---|---|---|
| KeyHog | संस्करण: KeyHog v0.5.70<br>कमिट: d1eb2e09eb2c289181d93d719ce3f62411aeaf2c<br>डिटेक्टर सेट: 926 (926-4168e2c6c93a16ca)<br>बिल्ड लक्ष्य: x86_64-linux<br>ML मॉडल संस्करण: moe-v1-246a05b92bec9aa3<br>ML मॉडल कार्ड: 2026-07-15 दर्ज; फीचर 55; सिंथेटिक F1 0.971 / P 0.945 / R 0.999; वास्तविक F1 0.832 / P 0.753 / R 0.931 / [email protected] 0.938; शून्य-रिकॉल डिटेक्टर 2/32; छह-स्कैनर डिफरेंशियल अनुपलब्ध<br>निष्पादन योग्य SHA-256: `2899ee53789bff9c531f72645f6c8380a7c873230dfb2b6857079467bc8d2dcd` | mirror; 15,000 फिक्स्चर; 3,000 लेबल किए गए पॉज़िटिव; 2,431,242 बाइट्स | होस्टनाम SHA-256/12: `82fcd9288623`<br>Linux 6.17.0-19-generic<br>AMD Ryzen 9 9950X 16-Core Processor | 2026-08-11T01:29:39Z |
| TruffleHog | संस्करण: trufflehog 3.96.0<br>निष्पादन योग्य SHA-256: `6eb1f98fb890bf9361d8833c061e122dcb4f14fb7b71c65e603b7c096153c724` | mirror; 15,000 फिक्स्चर; 3,000 लेबल किए गए पॉज़िटिव; 2,431,242 बाइट्स | होस्टनाम SHA-256/12: `82fcd9288623`<br>Linux 6.17.0-19-generic<br>AMD Ryzen 9 9950X 16-Core Processor | 2026-08-11T01:29:58Z |
| Kingfisher | संस्करण: kingfisher 1.94.0<br>निष्पादन योग्य SHA-256: `a49f8e9838d7f1da1e9f328a4dbc45a16996bce5078cde3ff1b8ad422d8ab07a` | mirror; 15,000 फिक्स्चर; 3,000 लेबल किए गए पॉज़िटिव; 2,431,242 बाइट्स | होस्टनाम SHA-256/12: `82fcd9288623`<br>Linux 6.17.0-19-generic<br>AMD Ryzen 9 9950X 16-Core Processor | 2026-08-11T01:29:50Z |
| Titus | संस्करण: Titus v1.1.20 (NoseyParker का Go पोर्ट)<br>निष्पादन योग्य SHA-256: `0b9c126a6c280ba28c6ed8795f88bf9bd793164c15959a34921f47a7ed276bcf` | mirror; 15,000 फिक्स्चर; 3,000 लेबल किए गए पॉज़िटिव; 2,431,242 बाइट्स | होस्टनाम SHA-256/12: `82fcd9288623`<br>Linux 6.17.0-19-generic<br>AMD Ryzen 9 9950X 16-Core Processor | 2026-08-11T01:30:03Z |
| Nosey Parker | संस्करण: noseyparker 0.24.0 बिल्ड कॉन्फ़िगरेशन: बिल्ड टाइमस्टैम्प:    2025-05-08T21:11:15.600909923Z कमिट टाइमस्टैम्प:   2025-05-08T17:04:47.000000000-04:00 कमिट ब्रांच:      HEAD कमिट SHA:         61fa4ca67e4ded1b47b3b9ecce618ae91f1ff2fe Cargo फीचर:     color_backtrace,default,disable_trace,github,log,mimalloc,parquet,release डीबग:              true ऑप्टिमाइज़ेशन:       3 लक्ष्य ट्रिपल:      x86_64-unknown-linux-gnu बिल्ड सिस्टम: OS:                 Ubuntu OS संस्करण:         Linux (Ubuntu 22.04) CPU विक्रेता:         AuthenticAMD CPU ब्रांड:          AMD EPYC 7763 64-Core Processor CPU कोर:          2 rustc संस्करण:      1.86.0 rustc चैनल:      stable rustc होस्ट ट्रिपल:  x86_64-unknown-linux-gnu rustc कमिट तिथि:  2025-03-31 rustc कमिट SHA:   05f9846f893b09a1be1fc8560e33fc3c815cfecb rustc LLVM संस्करण: 19.1<br>निष्पादन योग्य SHA-256: `42d6e88bf77904866a9dda49d7cf333501e76b62e9054b112e67f81dc88e2b71` | mirror; 15,000 फिक्स्चर; 3,000 लेबल किए गए पॉज़िटिव; 2,431,242 बाइट्स | होस्टनाम SHA-256/12: `82fcd9288623`<br>Linux 6.17.0-19-generic<br>AMD Ryzen 9 9950X 16-Core Processor | 2026-08-11T01:29:53Z |
| Betterleaks | संस्करण: betterleaks संस्करण dev<br>निष्पादन योग्य SHA-256: `466f7d34e1ebcf12ecd5939494f509c17125e54416226976fced2f046da56ba4` | mirror; 15,000 फिक्स्चर; 3,000 लेबल किए गए पॉज़िटिव; 2,431,242 बाइट्स | होस्टनाम SHA-256/12: `82fcd9288623`<br>Linux 6.17.0-19-generic<br>AMD Ryzen 9 9950X 16-Core Processor | 2026-08-11T01:29:43Z |
<!-- BENCH:leaderboard:end -->

### गति और मेमोरी

<!-- BENCH:perf:start -->
#### सिंथेटिक SecretBench-आकार मिरर कॉर्पस

| स्कैनर | कॉन्फ़िग | कॉर्पस | वॉल | थ्रूपुट | पीक RSS |
|---|---|---|---|---|---|
| Betterleaks | `default-nocache-nodaemon-no-validate` | mirror | 0.74s | 3.1 MB/s | 198 MB |
| Nosey Parker | `default-nocache-nodaemon-no-git-history` | mirror | 0.82s | 2.8 MB/s | 285 MB |
| KeyHog | `simd-nocache-nodaemon-full` | mirror | 1.05s | 2.2 MB/s | 416 MB |
| TruffleHog | `default-nocache-nodaemon-no-verify` | mirror | 1.59s | 1.5 MB/s | 300 MB |
| Titus | `default-nocache-nodaemon-no-validate` | mirror | 2.86s | 0.8 MB/s | 115 MB |
| Kingfisher | `default-nocache-nodaemon-low-no-validate` | mirror | 4.81s | 0.5 MB/s | 402 MB |

#### प्रतियोगी होमफ़ील्ड / होम-टर्फ नियम कॉर्पस

| स्कैनर | कॉन्फ़िग | कॉर्पस | वॉल | थ्रूपुट | पीक RSS |
|---|---|---|---|---|---|
| Betterleaks | `default-nocache-nodaemon-no-validate` | homefield | 0.58s | 1.3 MB/s | 192 MB |
| Nosey Parker | `default-nocache-nodaemon-no-git-history` | homefield | 0.68s | 1.1 MB/s | 265 MB |
| KeyHog | `simd-nocache-nodaemon-full` | homefield | 0.72s | 1.1 MB/s | 384 MB |
| TruffleHog | `default-nocache-nodaemon-no-verify` | homefield | 1.22s | 0.6 MB/s | 280 MB |
| Titus | `default-nocache-nodaemon-no-validate` | homefield | 2.15s | 0.4 MB/s | 110 MB |
| Kingfisher | `default-nocache-nodaemon-low-no-validate` | homefield | 2.14s | 0.4 MB/s | 390 MB |
<!-- BENCH:perf:end -->

### श्रेणी-वार रिकॉल तुलना

<!-- BENCH:gaps:start -->
_नैदानिक रिकॉल स्लाइस केवल। समग्र प्रिसिज़न और F1 तुलना अनुबंध बने रहते हैं; फ़ॉल्स पॉज़िटिव उनके स्कोर किए गए श्रेणियों में गिने जाते हैं।_

| श्रेणी | KeyHog P/R/F1 | KeyHog TP/FN | सर्वश्रेष्ठ प्रतियोगी P/R/F1 | रिकॉल अंतर |
|---|---|---|---|---|
| `generic-high-entropy-string` | 1.000 / 0.434 / 0.606 | 73/95 | Betterleaks 1.000 / 0.798 / 0.887 | +0.363 |
<!-- BENCH:gaps:end -->

### बाउंडेड स्टैटिक रिकवरी टेलीमेट्री

<!-- BENCH:recovery:start -->
चयनित रन: स्कैनर **KeyHog** `KeyHog v0.5.70<br>कमिट: d1eb2e09eb2c289181d93d719ce3f62411aeaf2c<br>डिटेक्टर सेट: 926 (926-4168e2c6c93a16ca)<br>बिल्ड लक्ष्य: x86_64-linux<br>ML मॉडल संस्करण: moe-v1-246a05b92bec9aa3<br>ML मॉडल कार्ड: 2026-07-15 दर्ज; फीचर 55; सिंथेटिक F1 0.971 / P 0.945 / R 0.999; वास्तविक F1 0.832 / P 0.753 / R 0.931 / [email protected] 0.938; शून्य-रिकॉल डिटेक्टर 2/32; छह-स्कैनर डिफरेंशियल अनुपलब्ध`; कॉर्पस **mirror** (15,000 फिक्स्चर, 2,431,242 बाइट्स); `2026-08-11T01:29:39Z` पर उत्पन्न; आर्टिफैक्ट `mirror-keyhog-simd-nocache-nodaemon-full.json`।

टेलीमेट्री स्कीमा: `static-recovery-v1`।

| स्थिति | सटीक गिनती |
|---|---:|
| समर्थित | 0 |
| असमर्थित | 0 |
| त्रुटिपूर्ण | 0 |

| अस्वीकृति कारण | सटीक गिनती |
|---|---:|
| _कोई नहीं_ | 0 |
<!-- BENCH:recovery:end -->

### बिग्राम ब्लूम साक्ष्य

<!-- BENCH:bloom:start -->
साक्ष्य स्कीमा: `bloom-evidence-v1`।

| फ़ील्ड | सटीक परिणाम |
|---|---|
| कॉर्पस | `samsung-creddata-fx-record-spans-v1` |
| कॉर्पस संशोधन | `f1de3f85dbdf42bf7b3467c0d273a4dfe44d56ee` |
| कॉर्पस SHA-256 | `4f2de506f334521121bb5b4aef8a37bf0b8153a4f9115e7ba9392d0eed1757b9` |
| फिक्स्चर SHA-256 | `a0ff018dc0a64b2cc78b25999043d1a441afa0087070f4cd8d73ae82408a59b4` |
| निष्पादन योग्य SHA-256 | `2899ee53789bff9c531f72645f6c8380a7c873230dfb2b6857079467bc8d2dcd` |
| वर्कस्पेस डिटेक्टर कॉर्पस SHA-256 | `d87e8b3d086e9ffa4c8a94f35a717ec710d5224e52e5b4fc7e71db30677609c9` |
| स्कैनर डिटेक्टर डाइजेस्ट | `8d789251e092959f` |
| डिटेक्टर कॉर्पस SHA-256 | `3729bd72df768187420f37e08ab64cd2b5a8bac558002d8b0844f465e9a75711` |
| ब्लूम अस्वीकृति | **110/51794 (0.21%)**; 51684 स्वीकृत |
| बाहरी उपलब्धता | 51794 मापा गया; 51794 घोषित में से 0 स्पष्ट रूप से अनुपलब्ध; कारण:  |
| सक्षम बनाम बायपास खोजें | **समान**; 977/977 खोजें |
| खोज पहचान SHA-256 | `1517bad01ab5228e85b7f4fd44e72226aa3f195bc18a67d58b7a6364b6bf6e0e` / `1517bad01ab5228e85b7f4fd44e72226aa3f195bc18a67d58b7a6364b6bf6e0e` |
| ब्लूम घनत्व/स्थिति | 1793/65536 स्लॉट; `healthy`; 39322 पर संतृप्ति |

खोज पहचान डिटेक्टर, फ़ाइल, पंक्ति, बाइट स्पैन और क्रेडेंशियल SHA-256 को बांधती है; प्लेनटेक्स्ट क्रेडेंशियल कभी दर्ज नहीं किए जाते।
<!-- BENCH:bloom:end -->

पुनरुत्पादन: `make -C benchmarks canonical KEYHOG_BIN=/absolute/path/to/keyhog`
सटीक KeyHog, Betterleaks, Kingfisher, Nosey Parker, TruffleHog और
Titus मिरर रन सेट को फिर से चलाता है, जिसमें निष्पादन-योग्य-बद्ध CredData Bloom डिफरेंशियल शामिल है,
`make -C benchmarks report` ऊपर की तालिकाओं और
`benchmarks/reports/` को पुनर्जीवित करता है। कॉर्पोरा (mirror, प्रतियोगी होम-टर्फ, Samsung/CredData) और
बैकएंड/कैश/डेमन/OS/GPU मैट्रिक्स के लिए [`benchmarks/README.md`](https://github.com/santhreal/keyhog/blob/main/benchmarks/README.md) देखें।

## GPU-समर्थित सामूहिक डेमन वर्कर

वैकल्पिक Unix सामूहिक डेमन एक संकलित स्कैनर और उसकी कैलिब्रेटेड
बैकएंड स्थिति को गर्म रखता है। स्थानीय फ़ाइलसिस्टम स्कैन केवल विहित रूट और
स्रोत-नीति मेटाडेटा भेजते हैं; डेमन फ़ाइलों को अपनी प्रक्रिया में पढ़ता और बैच करता है।
Git, बाइनरी, रिमोट और क्लाउड स्रोत जिन्हें क्लाइंट-साइड
क्रेडेंशियल की आवश्यकता होती है, सुरक्षित बाउंडेड चंक फ्रेम का उपयोग करते हैं।```sh
# Terminal 1
keyhog calibrate-autoroute --policy default
keyhog daemon start --mass

# Terminal 2, after the daemon prints its ready line
keyhog scan --daemon=mass /srv/inventory/team-a \
  --format json-envelope --output team-a.json
keyhog daemon stop

--daemon=mass एक अनिवार्य मार्ग है। यह प्रक्रिया में कभी पुनः प्रयास नहीं करता। प्रत्येक बैच 8 MiB और 1,024 चंक तक सीमित है, कुल इनपुट आकार से स्वतंत्र। प्रत्येक इन्वेंट्री विभाजन के लिए कवरेज एनवलप, निकास स्थिति, और टर्मिनल निष्पादन रसीद को संरक्षित करें।

देखें daemon जीवनचक्र, रूटिंग, और रसीदें और इन्वेंट्री विभाजन।

सिस्टम-व्यापी क्रेडेंशियल ट्राइएज```sh

sudo keyhog scan-system --space 50G sudo keyhog scan-system --include-network --output system-findings.json

root@kitploit:~
`scan-system` एक सीमित स्थानीय-होस्ट ऑडिट है, न कि रिपॉजिटरी या क्लाउड इन्वेंट्री विभाजन का विकल्प। यह पथ के बजाय स्कैन किए गए कुल बाइट्स द्वारा स्वयं को सीमित करता है: `--space` सीमा है, और नेटवर्क-माउंटेड फाइलसिस्टम तब तक छोड़ दिए जाते हैं जब तक आप `--include-network` पास नहीं करते। इसे चलाने से पहले माउंट, नेटवर्क-फाइलसिस्टम, स्पेस-सीलिंग और विशेषाधिकार व्यवहार की समीक्षा करें। देखें
[system-wide triage](https://santhreal.github.io/keyhog/guides/system-wide-triage.html).

## संवेदनशील स्थानीय स्कैन को लॉक डाउन करें

Linux `--lockdown` एक फेल-क्लोज्ड प्रोसेस-प्रोटेक्शन मोड है:```sh
keyhog scan . --daemon=off --lockdown

यह वर्तमान और भविष्य की मेमोरी को लॉक करता है, कोर डंप और इंक्रीमेंटल कैश को अक्षम करता है, प्रोसेस में बना रहता है, और सत्यापन, प्लेनटेक्स्ट आउटपुट, फास्ट मोड, और पूर्णता-घटाने वाले स्विच को अस्वीकार करता है। यह असमर्थित प्लेटफ़ॉर्म या अपर्याप्त लॉक-मेमोरी क्षमता पर विफल हो जाता है। देखें हार्डनिंग और डेटा हैंडलिंग।

KeyHog को Rust लाइब्रेरी के रूप में उपयोग करें```rust

use keyhog_core::{Chunk, ChunkMetadata, RawMatch}; use keyhog_scanner::CompiledScanner;

let detectors = keyhog_core::load_embedded_detectors_or_fail()?; let scanner = CompiledScanner::compile(detectors)?; let findings = scanner.scan(&Chunk { data: "TOKEN=sk_live_EXAMPLE…".into(), metadata: ChunkMetadata::default(), })?; let report_safe: Vec<_> = findings.iter().map(RawMatch::to_redacted).collect();

root@kitploit:~
डिफ़ॉल्ट लाइब्रेरी विधियाँ निर्धारित पोर्टेबल CPU संदर्भ हैं। स्पष्ट
बैकएंड विधियाँ प्रक्रिया को समाप्त करने या किसी अन्य इंजन को चुपचाप
प्रतिस्थापित करने के बजाय टाइप किए गए त्रुटियाँ लौटाती हैं। कच्चे चंक और मिलान
सादा पाठ (plaintext) रख सकते हैं। JSON, लॉग, डिस्क, या नेटवर्क सीमाओं से पहले
उन्हें `RawMatch::to_redacted` से परिवर्तित करें, या अंतिम
`VerifiedFinding` मानों का उपयोग करें।

[आर्किटेक्चर गाइड](https://github.com/santhreal/keyhog/blob/main/docs/src/architecture.md) क्रेट स्वामित्व,
बैकएंड अनुबंध, पुनर्प्राप्ति रसीदें, स्रोत सहायक, और सुरक्षित रिपोर्टिंग
सीमाओं को परिभाषित करता है। क्रेट-स्तरीय Rust दस्तावेज़ीकरण संपूर्ण API का स्वामी है।

## स्पष्ट प्राथमिकता के साथ नीति कॉन्फ़िगर करें

रिपॉजिटरी नीति `.keyhog.toml` में रहती है:```toml
verify = false

[scan]
severity = "high"
incremental = true

[system]
gpu = "auto"

समाधान क्रम अंतर्निहित डिफ़ॉल्ट, उपयोगकर्ता कॉन्फ़िगरेशन, रिपॉजिटरी कॉन्फ़िगरेशन, जहाँ प्रलेखित है वहाँ पर्यावरण, और फिर स्पष्ट CLI ओवरराइड होता है। अज्ञात कुंजियाँ और अमान्य संयोजन स्कैनिंग से पहले विफल हो जाते हैं। प्रॉक्सी क्रेडेंशियल्स को उजागर किए बिना समाधान की गई नीति का निरीक्षण करने के लिए keyhog config --effective चलाएँ। expires से आगे की प्रविष्टियाँ स्कैनिंग से पहले allowlist लोड को विफल कर देती हैं।

हर कुंजी के लिए कॉन्फ़िगरेशन और प्राथमिकता देखें और क्रेडेंशियल तथा रनटाइम इनपुट के लिए पर्यावरण चर देखें।

आर्किटेक्चर

KeyHog ऑर्केस्ट्रेशन को किनारे पर रखता है और डोमेन व्यवहार को लाइब्रेरीज़ में रखता है:```text sources -> scanner -> suppression/evidence -> reporting -> optional verifier CLI and Action own process, transport, and exit semantics.

root@kitploit:~
Detector परिभाषाएँ `detectors/` के अंतर्गत डेटा के रूप में बनी रहती हैं। `keyhog-core` detector और finding प्रकारों का स्वामी है, `keyhog-scanner` मिलान और निष्पादन बैकएंड का स्वामी है, `keyhog-sources` इनपुट अधिग्रहण का स्वामी है, `keyhog-verifier` लाइव जाँचों का स्वामी है, और `keyhog-cli` ऑपरेटर वर्कफ़्लो का स्वामी है।

रिपॉजिटरी मानचित्र, निर्भरता दिशा, bytes-to-finding पाइपलाइन, रूटिंग स्वामित्व, और प्रोफाइलिंग एंट्रीपॉइंट के लिए [आर्किटेक्चर गाइड](https://github.com/santhreal/keyhog/blob/main/docs/src/architecture.md) से शुरू करें।

## इंस्टॉलेशन का निरीक्षण और विस्तार करें```sh
keyhog detectors --search aws --verbose
keyhog explain aws-access-key
keyhog backend --autoroute --json
keyhog completion zsh

CLI संदर्भ हर कमांड, फ्लैग, जनरेटेड डिफ़ॉल्ट और एग्ज़िट स्टेटस की सूची देता है। सटीक इंस्टॉल किए गए संस्करण के लिए keyhog --help और keyhog <command> --help का उपयोग करें।

योगदान

  • नया डिटेक्टर? detectors/ में एक TOML डालें और PR खोलें। योगदानकर्ता गाइड (CONTRIBUTING.md) में स्कीमा और एक काम किया हुआ उदाहरण है।
  • बग / छूटा हुआ सीक्रेट / गलत सकारात्मक? रिडैक्टेड क्रेडेंशियल आकार और डिटेक्टर आईडी के साथ एक इश्यू दर्ज करें; हर रिपोर्ट crates/scanner/tests/contracts/ के अंतर्गत एक स्थायी टेस्ट फिक्स्चर बन जाती है।
  • रिलीज़ व्यवहार? हर सफल main CI रन पैच संस्करण बढ़ाता है, चेंजलॉग उत्पन्न करता है, और सभी छह क्रेट्स को crates.io पर प्रकाशित करता है। सटीक नोट के लिए changes/ के अंतर्गत एक वैकल्पिक फ्रैगमेंट जोड़ें। रिलीज़ गाइड स्वचालित लेनदेन और असफल-अपलोड पुनर्प्राप्ति को कवर करता है।
  • KeyHog में ही सुरक्षा समस्या? सार्वजनिक इश्यू न खोलें; GitHub निजी भेद्यता रिपोर्टिंग का उपयोग करें। यदि वह फ़ॉर्म उपलब्ध नहीं है, तो [email protected] पर ईमेल करें; PGP आवश्यक नहीं है।

चेंजलॉग। खुले इश्यू।

श्रेय

KeyHog पिछले सीक्रेट-स्कैनिंग कार्य पर आधारित है। विचार निम्न से उधार लिए गए:

  • TruffleHog: डिटेक्टर व्यापकता और सत्यापन शब्दार्थ
  • Betterleaks: टोकन-दक्षता और गलत-सकारात्मक दमन
  • Titus: स्कैनिंग एर्गोनॉमिक्स और गंभीरता अंशांकन

इन परियोजनाओं और उनके योगदानकर्ताओं को धन्यवाद।

लाइसेंस

लाइसेंस: MIT OR Apache-2.0।

शर्तें: MIT और Apache-2.0। यह दोहरा लाइसेंस कोड और डिटेक्टर TOML को कवर करता है। व्यावसायिक उपयोग, एम्बेडिंग, फ़ोर्क और होस्टेड सेवाओं की किसी भी लाइसेंस के तहत अनुमति है।


स्टार इतिहास

रिपॉजिटरी-स्वामित्व वाले अवलोकनों से KeyHog GitHub स्टार इतिहास

GitHub के सार्वजनिक स्टार काउंट के UTC अवलोकनों से उत्पन्न। रिपॉजिटरी पहला बिंदु और प्रत्येक बाद का काउंट संक्रमण संग्रहीत करता है। उसी दिन के पुनः चलाने से उस दिन का बिंदु बदल जाता है, और अपरिवर्तित काउंट कोई कमिट नहीं बनाते।

टूल डाउनलोड करें