अपडेट पर वापस जाएँ
New releaseSep 3, 2026

Specter-FlipperZero v2.8

👻 Specter — Flipper Zero के लिए निष्क्रिय 13.56 MHz NFC रीडर/स्किमर बग-स्वीप। ऑनबोर्ड NFC चिप का उपयोग करने वाला प्रति-निगरानी EMF मीटर। कोई अतिरिक्त हार्डवेयर नहीं।

साझा करें

Specter — NFC रीडर और स्किमर बग-स्वीप Flipper Zero के लिए

Specter 👻

उन रीडरों की तलाश करें जिन्हें आप देख नहीं सकते।

Latest release Downloads Stars Build

Flipper Zero Onboard NFC No extra hardware Listen-only MIT

Specter आपके Flipper Zero को सक्रिय 13.56 MHz NFC रीडरों के लिए एक जेब में रखने योग्य काउंटर-सर्विलांस बग-स्वीप में बदल देता है। यह उस RF फ़ील्ड को निष्क्रिय रूप से सुनता है जिसे एक चालू रीडर लगातार उत्सर्जित कर रहा होता है — भुगतान टर्मिनल में छिपा हुआ एक कार्ड स्किमर, दरवाज़े के पैनल के पीछे एक गुप्त रीडर, डेस्क के नीचे चिपकाया गया एक दुष्ट लॉगर — फिर आपको बताता है कि वह कहाँ है, वह किस तरह की चीज़ है, क्या कमरा साफ़ है, और — निगरानी पर छोड़े जाने पर — वह क्षण जब आपके दूर रहते हुए एक प्रकट होता है। यह कभी संचारित नहीं करता।

रीडर अदृश्य हैं। Specter उन्हें दृश्यमान बनाता है।

जैसा कि इसमें प्रदर्शित किया गया है
Help Net Security  ·  Cyber Security News


📟 Flipper पर

Specter उपयोग में: एक शांत कमरे की स्वीप करना, एक रीडर पर नज़दीक आना, MAX पर लॉक करना, उसकी पोलिंग कैडेंस का फ़िंगरप्रिंट लेना, फिर एक साइट-सर्वे निर्णय

एक स्वीप, शुरू से अंत तक: शांत कमरा → नज़दीक आना → लॉक ऑन → यह क्या है → कमरे का निर्णय।

Specter स्क्रीन

Sweep (शांत)  ·  Sweep (रीडर लॉक)  ·  Fingerprint  ·  Survey (चल रहा)  ·  Survey (निर्णय)
Watch (साफ़)  ·  Watch (रीडर!)  ·  Logbook  ·  Calibrate  ·  Settings


✨ पाँच मोड

Specter एक सेंसर के चारों ओर पाँच उपकरण हैं। प्रत्येक एक अलग प्रश्न का उत्तर देता है, इसलिए सही मोड इस बात पर निर्भर करता है कि आप वास्तव में क्या पता लगाना चाहते हैं:

मोडप्रश्न जिसका यह उत्तर देता हैइसे कब उपयोग करें
🔍 Sweepयह कहाँ है?आपको किसी डिवाइस का संदेह है और आप घूमकर उसका सटीक स्थान पता करना चाहते हैं
🔬 Fingerprintयह किस तरह की चीज़ है?आपको एक उत्सर्जक मिल गया है और आप जानना चाहते हैं कि यह कैसे व्यवहार करता है
🗺️ Site Surveyक्या यह कमरा साफ़ है?आप पूरे स्थान के लिए एक निर्णय चाहते हैं, हाथों-मुक्त
🛰️ Watch Modeक्या मेरे दूर रहते हुए एक प्रकट हुआ?आप Flipper को कहीं पहरा देने के लिए छोड़ रहे हैं
📖 Logbookमुझे क्या मिला, और कब?आप इसे लिख रहे हैं, या आज की तुलना पिछले सप्ताह से कर रहे हैं — खोज के प्रकार से फ़िल्टर करें

🔍 Sweep — यह कहाँ है?

Sweep — रीडर मिला, मीटर पूरा झुका हुआ

यह क्या करता है। एक लाइव EMF-शैली का मीटर। Flipper को सपाट पकड़ें और इसे धीरे-धीरे उस चीज़ के ऊपर घुमाएँ जिसे आप जाँच रहे हैं — एक कार्ड टर्मिनल, एक दरवाज़ा रीडर, ATM के किनारे का निचला हिस्सा, एक पार्सल, एक डेस्क। सुई वास्तविक समय में फ़ील्ड शक्ति पर चलती है।

आप क्या देखते हैं।

  • डायल — सुई = लाइव रीडिंग, छोटा बिंदु = पीक-होल्ड (सबसे मज़बूत स्थान जिसे आपने छुआ है, ताकि आप स्थितियों की तुलना कर सकें)।
  • FIELD % — वही रीडिंग एक संख्या के रूप में, एक ▲ / ▼ ट्रेंड तीर के साथ जो बताता है कि पिछले आधे सेकंड ने चीज़ों को गर्म या ठंडा बनाया है या नहीं। जब आप खोज कर रहे हों, तो वह तीर संख्या से अधिक मायने रखता है।
  • PK / C — पीक रीडिंग और आपके कितने अलग-अलग संपर्क हुए हैं।
  • नीचे की पट्टी — लाइव वेवफ़ॉर्म और आपकी वर्तमान संवेदनशीलता जब शांत हो; एक कैरियर का पता चलते ही यह एक काले ● ACTIVE READER अलार्म बार में बदल जाती है, जिसमें एक निकटता शब्द होता है।
  • निकटताFAINT → NEAR → CLOSE → STRONG → MAXMAX का मतलब है कि मीटर पूरी तरह झुका हुआ है: आप उतने करीब हैं जितना यह माप हल कर सकता है।

ध्वनि। वैकल्पिक गीगर क्लिक जो जैसे-जैसे आप करीब आते हैं तेज़ होते जाते हैं, ताकि आप Flipper को जेब में रखकर स्वीप कर सकें और केवल कान से खोज कर सकें।

कुंजीक्रिया
OKपीक-होल्ड और संपर्क गिनती रीसेट करें
OK दबाए रखेंइस रीडिंग को लॉगबुक में सहेजें
LEFTकमरे के शोर तल पर कैलिब्रेट करें (3 सेकंड)

🔬 Fingerprint — यह किस तरह की चीज़ है?

Fingerprint — पोलिंग रीडर की पहचान हुई

यह क्या करता है। एक बार Sweep ने कुछ ढूँढ लिया, तो Flipper को उसके खिलाफ स्थिर पकड़ें। Fingerprint निकटता मापना बंद कर देता है और कैरियर के ऑन/ऑफ किनारों का समय मापना शुरू कर देता है, जो वास्तव में एक प्रकार के उत्सर्जक को दूसरे से अलग करता है।

आप क्या देखते हैं। एक निर्णय, एक विश्वास बार, और दोनों के पीछे का साक्ष्य:

वर्गव्यवहार में इसका क्या अर्थ है
CONTINUOUSकैरियर स्थायी रूप से ऊपर रखा जाता है
POLLINGएक निश्चित, क्रिस्टल-समयबद्ध पोल चक्र — अवधि ms में दिखाई जाती है
INTERMITTENTफटाकेदार लेकिन अनियमित — अक्सर एक फ़ोन या उपयोग में रीडर

नीचे PER (पोल अवधि), BST (बर्स्ट चौड़ाई), JIT (जिटर) और DUTY (सही ड्यूटी-चक्र) हैं, साथ ही कच्चे कैरियर की एक लॉजिक-एनालाइज़र पल्स ट्रेन — ताकि निर्णय कभी ऐसी चीज़ न हो जिसे आपको विश्वास पर लेना पड़े। एक वास्तविक पोलिंग रीडर एक अचूक वर्ग तरंग के रूप में दिखाई देता है।

समय से पहले ~ का मतलब है कि यह 2 ms सैंपलिंग तल के करीब है, और विश्वास को उसी के अनुसार घटाया जाता है।

कुंजीक्रिया
OKखोज को लॉगबुक में सहेजें
OK दबाए रखेंमाप पुनः आरंभ करें

🗺️ Site Survey — क्या यह कमरा साफ़ है?

Site Survey — निर्णय

यह क्या करता है। पूरे स्थान की एक समयबद्ध स्वीप। इसे शुरू करें, कमरे में सामान्य रूप से चलें, और अंत में एक ही निर्णय पाएँ — कोई सुई-देखना नहीं।

आप क्या देखते हैं। चलते समय एक उलटी गिनती और प्रगति बार, फिर एक निर्णय कार्ड:

  • CLEAN — कुछ भी शोर तल को पार नहीं किया
  • TRACE — संक्षिप्त या धुंधले हिट; धीमी दूसरी बारी के लायक
  • ACTIVE READER — कुछ वास्तव में ऊपर था और उत्सर्जन कर रहा था

…साथ में MAX / AVG फ़ील्ड, संपर्क गिनती, और FIELD %सर्वे के कितने हिस्से में एक कैरियर वास्तव में ऊपर था, जो अक्सर चारों में से सबसे बताने वाली संख्या होती है। 30 सेकंड, 60 सेकंड या 2 मिनट तक चलता है, और परिणाम स्वचालित रूप से लॉग करता है।

कुंजीक्रिया
OKसर्वे फिर से चलाएँ

🛰️ Watch Mode — क्या मेरे दूर रहते हुए एक प्रकट हुआ?

Watch Mode — रीडर मौजूद

यह क्या करता है। अनिश्चित काल तक पहरा देता है। इसे सशस्त्र करें, Flipper को नीचे रखें, चले जाएँ। जहाँ Sweep आपकी खोज है और Survey एक निश्चित-लंबाई का परीक्षण है, वहीं Watch बस प्रतीक्षा करता है — मिनटों या घंटों के लिए।

आप क्या देखते हैं। जब कुछ नहीं होता तो एक बड़ी बीती हुई घड़ी और ALL CLEAR दिखाई देता है। जिस क्षण एक रीडर प्रकट होता है, बैंड उलटकर READER PRESENT हो जाता है, स्क्रीन जागती है, और अलार्म बजता है। बैंड चमकने के बजाय स्थिर होता है — इसके बजाय एक छोटा मार्कर स्पंदित होता है, ताकि यह आप पर स्ट्रोब किए बिना लाइव पढ़ा जाए। इसके गुज़र जाने के बाद, स्क्रीन साक्ष्य रखती है: HITS (कितने अलग-अलग संपर्क), PEAK, LAST (सबसे हालिया कितने समय पहले था) और SEEN (कुल समय जब एक कैरियर वास्तव में ऊपर था)।

Watch जानबूझकर स्टील्थ मोड को अनदेखा करता है — एक अंधेरा, मौन पहरेदार जो आपको कभी नहीं बताता कि उसने कुछ देखा, बेकार से भी बदतर होगा।

कुंजीक्रिया
OKपुनः सशस्त्र करें — घड़ी और काउंटर साफ़ करता है

📖 Logbook — मुझे क्या मिला, और कब?

खोजें एक क्रिया से, दो बार सहेजी जाती हैं, ताकि वे डिवाइस पर पढ़ने योग्य हों और पहले से ही एक स्प्रेडशीट हों — याद रखने के लिए कोई निर्यात चरण नहीं:

logbook.txt — समूहीकृत, ऑन-डिवाइस व्यूअर के लिएlogbook.csv — प्रति प्रविष्टि एक सपाट पंक्ति
``` 2026-07-18 14:35:11 SURVEY 60s ACTIVE max74… 2026-07-18 14:32:07 READER POLLING 204ms… ``` ``` timestamp,type,detail 2026-07-18 14:35:11,SURVEY,60s ACTIVE … 2026-07-18 14:32:07,READER,POLLING 204ms … ```

प्रविष्टियों को SWEEP, READER, SURVEY या WATCH टैग किया जाता है और Flipper की घड़ी से टाइमस्टैम्प लगाया जाता है। दोनों फ़ाइलें SD कार्ड पर apps_data/specter/ में रहती हैं। कुछ भी डिवाइस से बाहर नहीं जाता। उन्हें Settings → Clear logbook से साफ़ करें (पहले पुष्टि की जाती है — यह एकमात्र अपरिवर्तनीय काम है जो ऐप कर सकता है)।


⚙️ सहायक हिस्से

🎯 ऑटो-कैलिब्रेशन

Sweep स्क्रीन पर LEFT दबाएँ और Specter 3 सेकंड के लिए परिवेशी शोर फ़्लोर सुनता है, फिर जो भी मापा गया है उसके ठीक ऊपर डिटेक्शन थ्रेशोल्ड सेट करता है — इसे आपकी Custom संवेदनशीलता के रूप में सहेजा जाता है। हर कमरे का RF फ़्लोर अलग होता है; यह बिल्ड समय पर बेक किए गए नंबर के बजाय उस कमरे के अनुसार ट्यून होता है जिसमें आप खड़े हैं। इसे चलाते समय किसी शांत जगह पर खड़े रहें।

🕶️ स्टील्थ मोड

पूरे स्वीप के दौरान स्क्रीन और LED को अंधेरा रखता है, ताकि जब आप देख रहे हों तो Flipper चमके नहीं। ध्वनि और कंपन काम करते रहते हैं — मकसद उस फ़ीडबैक को बंद करना नहीं है जिसके आधार पर आप स्वीप कर रहे हैं। स्टील्थ स्क्रीन से बाहर निकलने पर डिस्प्ले फिर से रोशन हो जाता है, इसलिए BACK हमेशा आपको एक रोशन मेनू पर ले जाता है।

📏 मीटर पढ़ना

आप जिस रीडर को छू रहे हैं वह 100% समय उत्सर्जित क्यों नहीं करता। डिटेक्टर एक भौतिक चीज़ मापता है: 13.56 MHz कैरियर कितने समय के अंश के लिए सक्रिय है। लेकिन रीडर पोल करते हैं — एक छोटा बर्स्ट, एक स्लीप, एक और बर्स्ट। एक सामान्य टर्मिनल केवल 20–35% समय विकिरण करता है, इसलिए कच्चा ड्यूटी-साइकिल आप कितने भी करीब जाएँ, लगभग 30% पर संतृप्त हो जाता है।

गेज पर वह कच्चा नंबर दिखाने से एक आदर्श डिटेक्शन एक तिहाई जैसा दिखता था। मीटर को उस वास्तविक पोलिंग बैंड के विरुद्ध स्केल किया गया है:

कच्चा कैरियर ड्यूटीमीटरनिकटता
3% (कमरे का शोर)10%FAINT
12%40%NEAR
20%67%CLOSE
28%93%STRONG
≥30% (रीडर पर टिका हुआ)100%MAX

कच्ची ड्यूटी कभी खोती नहीं है: शोर फ़्लोर, ऑटो-कैलिब्रेशन और Fingerprint स्क्रीन का DUTY सभी सच्चे ड्यूटी-साइकिल में काम करते हैं, क्योंकि वे सिग्नल का वर्णन करते हैं, न कि उससे आपकी दूरी का। शाब्दिक नंबर चाहिए? Settings → Meter → Raw

💾 सब कुछ स्थायी रहता है

संवेदनशीलता, सर्वेक्षण की लंबाई, ध्वनि, कंपन, LED, स्टील्थ, लॉगिंग और मीटर मोड आपके बदलते ही SD कार्ड पर सहेजे जाते हैं। एक स्वीप किट जो अपना सेटअप भूल जाती है, बिल्कुल भी स्थायित्व न होने से बदतर है।


🧠 यह कैसे काम करता है

हर पावर-ऑन NFC रीडर लगातार हवा में 13.56 MHz कैरियर के साथ पिंग करता है, किसी कार्ड के जागने की प्रतीक्षा में। आप इसे देख नहीं सकते, लेकिन Flipper की NFC चिप देख सकती है: ST25R3916 में एक हार्डवेयर एक्सटर्नल-फ़ील्ड डिटेक्टर है (वही सर्किट जो Flipper को कार्ड इम्यूलेट करने और यह जानने देता है कि कोई रीडर उससे बात कर रहा है)। Specter चिप को केवल-डिटेक्ट मोड में रखता है और उस "फ़ील्ड मौजूद?" बिट को ~500 बार प्रति सेकंड सैंपल करता है — बिना कभी अपना कैरियर चालू किए।

वह एक बिट, पर्याप्त तेज़ी से सैंपल किया गया, दो स्वतंत्र सिग्नल ले जाता है:```mermaid flowchart LR R["🔍 Hidden 13.56 MHz reader / skimmer
(constantly polling its field)"] -- "RF carrier" --> A

subgraph FLIP["Flipper Zero — Specter.fap"]
  A["ST25R3916 NFC chip<br/>external-field detector"] --> S["Sampler thread<br/>~500 samples/s"]
  S --> M["<b>How much?</b><br/>carrier duty-cycle<br/>peak · average · contacts"]
  S --> C["<b>What rhythm?</b><br/>burst / gap edge timing<br/>period · jitter"]
  M --> G["EMF gauge · waveform<br/>geiger clicks · LED · vibe"]
  M --> V["Survey verdict<br/>CLEAN / TRACE / ACTIVE"]
  C --> K["Emitter class<br/>CONTINUOUS / POLLING /<br/>INTERMITTENT + pulse train"]
  V --> L["📖 SD logbook"]
  K --> L
end
**कितना → ताकत।** एक छोटी समयावधि में Specter मापता है कि *समय का कितना अंश* एक कैरियर
मौजूद है और इसे **FIELD %** में सुचारू करता है। Flipper के ठीक ऊपर बैठा रीडर मीटर को पूरा घुमा देता है;
कमज़ोर या दूर वाला इसे हल्का हिलाता है। यही सुई, निकटता शब्द और क्लिक दर को चलाता है।

**क्या लय → पहचान।** अलग से, उस बिट के हर संक्रमण का समय निर्धारित होता है। एक रीडर जो हर 200 ms में
20 ms के लिए जागता है, लगभग बिना किसी झिझक के एक बर्स्ट/गैप पैटर्न उत्पन्न करता है, क्योंकि इसका पोलिंग लूप
क्रिस्टल-समयबद्ध स्टेट मशीन द्वारा संचालित होता है। हाथ की हरकत और RF शोर उतने स्थिर नहीं होते। यही
अंतर **POLLING** को **INTERMITTENT** से अलग करता है।

### निर्णय परतें एक वास्तविक कंप्यूटर पर परीक्षण की जाती हैं

जिन स्थानों पर Specter संख्याओं को एक *दावे* में बदलता है — "यह एक पोलिंग रीडर है", "यह कमरा
साफ़ है", "सुई को यही पढ़ना चाहिए" — वे बिना किसी हार्डवेयर निर्भरता के शुद्ध C हैं, और वे
डिवाइस पर खोजे जाने के बजाय होस्ट परीक्षणों द्वारा स्थिर किए जाते हैं:```bash
make -C test     # 300 checks: classifier, verdict, meter scaling, presence

🚀 इंस्टॉल

कोई डेवबोर्ड नहीं, फ्लैश करने के लिए कोई फर्मवेयर नहीं — यह सिर्फ एक .fap फ़ाइल है।

विकल्प A — पहले से बना .fap (सबसे आसान)

  1. Releases पेज से सही .fap फ़ाइल लें:

    आपका फर्मवेयरफ़ाइल
    आधिकारिक / स्टॉकspecter.fap
    Unleashed, RogueMaster, Momentum या कोई भी नयाspecter-fw-dev.fap

    अगर Flipper कहता है APP:87 < FW:88 — This app might not work, तो आपके पास गलत फ़ाइल है — दूसरी फ़ाइल लें। ऐप का API वर्ज़न कंपाइल होने के समय तय हो जाता है, इसलिए एक ही बिल्ड दोनों फर्मवेयर लाइनों के लिए काम नहीं कर सकता। Continue दबाने पर यह आमतौर पर फिर भी चल जाता है, लेकिन मैचिंग बिल्ड पूछेगा ही नहीं।

  2. qFlipper खोलें, फ़ाइल को SD Card / apps / NFC / पर खींचें।

  3. Flipper पर: Apps → NFC → Specter

विकल्प B — इसे खुद ufbt से बनाएं```bash

one-time

python3 -m pip install --upgrade ufbt

from the repo root, with your Flipper plugged in over USB:

ufbt # build specter.fap into ./dist ufbt launch # build, upload to the Flipper and open it make -C test # run the host tests for the pure logic

`.fap` फ़ाइल `dist/specter.fap` में आती है; `ufbt launch` इसे `apps/NFC/` में कॉपी करता है और आपके लिए शुरू कर देता है।

> `icons/` में आइकन, `images/` में स्क्रीनशॉट और बैनर जनरेट किए जाते हैं — इन्हें दोबारा जनरेट करें
> `python3 tools_gen_icons.py`, `python3 tools_gen_mockups.py` और `python3 tools_gen_banner.py` से (`pillow` की ज़रूरत है)।

---

## 🎮 इसे इस्तेमाल करना

**एक पूरा स्कैन, शुरू से अंत तक:**

1. **Specter** लॉन्च करें। **Sweep** स्क्रीन पर, **LEFT** दबाएँ और 3 सेकंड तक स्थिर रहें ताकि
   कमरे के शोर स्तर (noise floor) के अनुसार कैलिब्रेट हो सके।
2. Flipper को सपाट पकड़ें और उसे **धीरे-धीरे** उस चीज़ के ऊपर घुमाएँ जिसे आप जाँच रहे हैं — कार्ड टर्मिनल,
   दरवाज़े का रीडर, ATM के किनारे का निचला हिस्सा, पार्सल, डेस्क।
   - **शांत / सपाट तरंग** → आस-पास कोई सक्रिय रीडर नहीं है।
   - **सुई ऊपर चढ़ती हुई, क्लिक की गति बढ़ती हुई** → आप एक एमिटर के पास पहुँच रहे हैं। चरम (peak) की ओर बढ़ते रहें।
   - **`● ACTIVE READER` + अलार्म बॉर्डर** → एक सक्रिय रीडर ठीक यहीं है।
3. कुछ मिला? पीछे जाएँ और **Fingerprint** खोलें। Flipper को उसके सामने स्थिर रखें और
   लय (cadence) स्थिर होने दें — कुछ सेकंड आमतौर पर पर्याप्त होते हैं। निष्कर्ष सहेजने के लिए **OK** दबाएँ।
4. पूरे कमरे को साफ़ करना है? **Site Survey** खोलें, जगह में तब तक चलें जब तक बार भर न जाए, और
   परिणाम पढ़ें।
5. क्षेत्र छोड़ रहे हैं? Flipper को **Watch Mode** में डालें और यह पहरा देगा, जागकर अलार्म बजाएगा
   अगर आपके जाने के बाद कोई रीडर सक्रिय हो जाए।
6. सब कुछ जो आपने सहेजा है, टाइमस्टैम्प के साथ **Logbook** में देखें — या कार्ड से `logbook.csv` निकालकर
   स्प्रेडशीट में डालें।

> 💡 पहले किसी ज्ञात-अच्छे रीडर को स्कैन करें (आपका अपना फ़ोन NFC करते हुए, या कोई संपर्क रहित टर्मिनल जिस पर आप भरोसा करते हैं) ताकि
> देख सकें कि मीटर पर एक मज़बूत, वैध फ़ील्ड कैसा दिखता है — और उसका फ़िंगरप्रिंट कैसा पढ़ा जाता है। फिर
> शिकार पर निकलें।

### नियंत्रण

| स्क्रीन | कुंजी | क्रिया |
|---|---|---|
| **Sweep** | `OK` | चरम / संपर्क रीसेट करें |
| | `hold OK` | वर्तमान रीडिंग लॉग करें |
| | `LEFT` | शोर स्तर कैलिब्रेट करें (3 सेकंड) |
| **Fingerprint** | `OK` | निष्कर्ष को लॉगबुक में सहेजें |
| | `hold OK` | माप फिर से शुरू करें |
| **Site Survey** | `OK` | सर्वे फिर से चलाएँ |
| **Watch Mode** | `OK` | फिर से सशस्त्र करें (गिनती और घड़ी साफ़ करें) |
| *कहीं भी* | `BACK` | एक स्तर ऊपर जाएँ |

---

## 🔬 ईमानदार सीमाएँ

- **केवल 13.56 MHz (HF)।** Specter **NFC बैंड** को महसूस करता है — वह बैंड जो संपर्क रहित भुगतान स्किमर्स,
  अधिकांश आधुनिक एक्सेस रीडर, ट्रांज़िट और होटल रीडर द्वारा उपयोग किया जाता है। यह **125 kHz (LF)** रीडर
  (पुराने HID Prox / EM4100 दरवाज़े के पैनल) **नहीं** देख सकता; Flipper के LF पथ में कोई समकक्ष फ़ील्ड-डिटेक्ट बिट नहीं है।
- **यह रीडर के *कैरियर* को महसूस करता है, न कि वह जो वह पढ़ता है।** Specter आपको बताता है *यहाँ एक सक्रिय रीडर है,
  लगभग कितना पास है, और वह किस लय पर पोल करता है* — यह डिकोड, पहचान या कैप्चर नहीं करता
  जो रीडर करता है।
- **ताकत सापेक्ष है, कैलिब्रेटेड नहीं।** `FIELD %` और निकटता शब्द स्कैनिंग के लिए एक तुलनात्मक "गर्म /
  ठंडा" मार्गदर्शक हैं, न कि सेमी में मापी गई दूरी। यह एक विशिष्ट पोलिंग बैंड के विरुद्ध कैरियर
  ड्यूटी-साइकिल की एक *स्केल्ड* रीडिंग है (देखें [Reading the meter](#-reading-the-meter--fixed-in-23));
  एक रीडर जो असामान्य रूप से कम पोल करता है वह समान दूरी पर कम पढ़ेगा, और जो निरंतर-तरंग
  मोड में है वह दूर से ही पूरा भर देगा।
- **मीटर की सीमा समाप्त हो जाती है।** `MAX` का मतलब है कि कैरियर उतना ऊपर है जितना यह रीडर कभी रखता है — उस
  बिंदु से आगे, करीब जाने से वास्तव में बड़ी संख्या नहीं बन सकती। स्थितियों की तुलना करने के लिए `PK` पीक-होल्ड का उपयोग करें।
- **लय ~2 ms तक सटीक है।** यह सैंपलिंग अवधि है। इसके आस-पास का समय **`~`** के साथ दिखाया जाता है
   और आत्मविश्वास उसी अनुसार घटाया जाता है — Specter अपनी स्वयं की रिज़ॉल्यूशन सीमा को चिह्नित करना पसंद करेगा
   बजाय एक सटीक-दिखने वाली संख्या उद्धृत करने के जिसका वह समर्थन नहीं कर सकता।
- **`CLEAN` का मतलब आपके चुने गए संवेदनशीलता पर साफ़ है।** एक निष्क्रिय स्किमर जो केवल वास्तविक टैप पर जागता है, या
   जो शील्डेड है, *किसी भी* थ्रेशोल्ड पर अदृश्य रहता है। रीडिंग की अनुपस्थिति अनुपस्थिति की गारंटी नहीं है।
- **एक समय में एक रेडियो।** स्कैनिंग के दौरान Specter NFC चिप पर कब्ज़ा कर लेता है, इसलिए पहले किसी अन्य NFC ऐप को बंद करें
  (यदि कोई और रेडियो पकड़े हुए है तो यह *NFC unavailable* कहेगा)।

---

## ⚖️ कानूनी और नैतिक

Specter एक **रक्षात्मक, केवल-सुनने वाला** उपकरण है — यह **कभी संचारित नहीं करता**, कभी फ़ील्ड को शक्ति नहीं देता, कभी रीडर को
छूता नहीं। इसका उपयोग **अपने** POS क्षेत्र, दरवाज़े, डेस्क या सामान, या उस हार्डवेयर को स्कैन करने के लिए करें जिसका आकलन करने के लिए आप **स्पष्ट रूप से
अधिकृत** हैं। आप इसके उपयोग के लिए ज़िम्मेदार हैं। अपने स्थानीय कानूनों को जानें।

---

## 🗺️ रोडमैप

- [x] रीबूट के बाद संवेदनशीलता / ध्वनि / वाइब / LED बनाए रखें
- [x] SD कार्ड पर टाइमस्टैम्प के साथ डिटेक्शन की "लॉगबुक"
- [x] स्क्रीन बंद के साथ पृष्ठभूमि स्कैन — *स्टील्थ मोड*
- [x] बेहतर रेंज नियंत्रण के लिए समायोज्य थ्रेशोल्ड — *ऑटो-कैलिब्रेशन + कस्टम संवेदनशीलता*
- [x] पोलिंग लय द्वारा एमिटर का फ़िंगरप्रिंट लें
- [x] कमरे के परिणाम के साथ समयबद्ध साइट सर्वे
- [x] रिपोर्टिंग के लिए लॉगबुक को CSV के रूप में निर्यात करें — *.txt के साथ लाइव लिखा जाता है*
- [x] डिटेक्शन-पर-जागने वाले अलार्म के साथ लंबी अवधि का अनअटेंडेड वॉच मोड
- [x] मीटर को वास्तविक पोलिंग रीडर के विरुद्ध अपनी पूरी रेंज उपयोग करने दें
- [x] शिकार के दौरान गर्म/ठंडा प्रवृत्ति तीर
- [ ] एक अलग मोड के रूप में LF (125 kHz) कॉइल-आधारित रीडर संवेदन की जाँच करें
- [ ] डिवाइस पर लॉगबुक फ़िल्टरिंग प्रकार द्वारा

---

## 🗂️ प्रोजेक्ट संरचना```
Specter-FlipperZero/
├── application.fam               # Flipper app manifest (category: NFC)
├── specter.c / specter_i.h       # app entry, wiring, alert feedback, stealth
├── helpers/
│   ├── field_detector.{c,h}      # worker thread: samples the field-present bit,
│   │                             #   duty-cycle + edge timing + calibration
│   ├── emitter_classify.{c,h}    # pure: cadence -> CONTINUOUS/POLLING/INTERMITTENT
│   ├── survey_verdict.{c,h}      # pure: survey stats -> CLEAN/TRACE/ACTIVE
│   ├── field_scale.{c,h}         # pure: raw carrier duty -> full-scale meter
│   ├── present_hold.h            # pure: debounce presence across poll gaps
│   ├── specter_settings.{c,h}    # persisted settings (saved_struct)
│   └── specter_log.{c,h}         # SD logbook, RTC-stamped .txt + live .csv
├── views/
│   ├── sweep_view.{c,h}          # the EMF gauge / waveform / alarm screen
│   ├── fingerprint_view.{c,h}    # classification card + pulse-train trace
│   ├── survey_view.{c,h}         # progress + verdict card
│   └── watch_view.{c,h}          # unattended guard: clock + count + alarm
├── scenes/                       # scene-manager navigation
├── test/                         # host tests for the pure decision layers
├── icons/                        # 1-bit Flipper icons (generated)
├── images/                       # banner + screen mockups (generated)
└── tools_gen_*.py                # regenerate icons / mockups / banner

🎨 ब्रांडिंग

सभी आर्टवर्क जनरेट किया जाता है, इसलिए यह ऐप से कभी अलग नहीं होता:

एसेटआकारकहाँ जाता है
images/banner.png2560×800README हेडर (2× ताकि यह रेटिना पर स्पष्ट रहे)
images/social-preview.png1280×640सेटिंग्स → सोशल प्रीव्यू — GitHub का अनुशंसित आकार (न्यूनतम 640×320, 1 MB सीमा)
images/mark.png512×512वर्गाकार लोगो मार्क: अवतार, फ़ेविकॉन, स्लाइड
images/demo.gif768×384ऊपर दिया गया एनीमेशन, ~9 सेकंड, वास्तविक व्यू कॉन्स्टेंट से निर्मित
python3 tools_gen_banner.py # banner, social preview, logo mark
python3 tools_gen_gif.py # the demo animation
python3 tools_gen_mockups.py # screen stills
python3 tools_gen_icons.py # 1-bit Flipper icons
> सोशल प्रीव्यू एकमात्र ऐसी एसेट है जिसे GitHub रिपॉजिटरी से अपने आप नहीं उठा सकता — इसे
> **Settings → Social preview** में एक बार हाथ से अपलोड करना पड़ता है। जब रिपॉजिटरी को Slack, X, LinkedIn या Discord पर साझा किया जाता है तो यही रेंडर होता है।

---

## 🙏 श्रेय

- **[@at0m-b0mb](https://github.com/at0m-b0mb)** द्वारा निर्मित।
- Flipper सुरक्षा-टूल परिवार का हिस्सा: **[Argus](https://github.com/at0m-b0mb/Argus-FlipperZero)** (Wi-Fi deauth / evil-twin वॉचडॉग), **[GhostTag](https://github.com/at0m-b0mb/GhostTag-FlipperZero)** (BLE एंटी-स्टॉकिंग हंटर) और **[Cerberus](https://github.com/at0m-b0mb/flipper-cerberus)** (Sub-GHz RF वॉचडॉग)।
- [Flipper Zero फर्मवेयर](https://github.com/flipperdevices/flipperzero-firmware) NFC HAL (`furi_hal_nfc` फील्ड डिटेक्शन) + [ufbt](https://github.com/flipperdevices/flipperzero-ufbt) द्वारा संचालित।

## 📄 लाइसेंस

[MIT](https://github.com/at0m-b0mb/specter-flipperzero/blob/main/LICENSE) © 2026 at0m-b0mb

श्रेणियाँ