
Specter-FlipperZero v2.8
👻 Specter — Flipper Zero के लिए निष्क्रिय 13.56 MHz NFC रीडर/स्किमर बग-स्वीप। ऑनबोर्ड NFC चिप का उपयोग करने वाला प्रति-निगरानी EMF मीटर। कोई अतिरिक्त हार्डवेयर नहीं।
Specter 👻
उन रीडरों को खोजें जिन्हें आप देख नहीं सकते।
Specter आपके Flipper Zero को सक्रिय 13.56 MHz NFC रीडरों के लिए एक जेबी काउंटर-निगरानी बग-स्वीप में बदल देता है। यह चालू रीडर द्वारा लगातार उत्सर्जित होने वाले RF फ़ील्ड को निष्क्रिय रूप से सुनता है — भुगतान टर्मिनल में छिपाया गया कोई गुप्त कार्ड स्किमर, दरवाज़े के पैनल के पीछे छिपा कोई गुप्त रीडर, मेज़ के नीचे चिपकाया गया कोई रोग लॉगर — और फिर आपको बताता है यह कहाँ है, यह किस प्रकार की चीज़ है, क्या कमरा साफ़ है, और — निगरानी पर छोड़ दिए जाने पर — वह क्षण जब आपकी अनुपस्थिति में कोई प्रकट होता है। यह कभी प्रसारित नहीं करता।
रीडर अदृश्य हैं। Specter उन्हें दृश्य बनाता है।
यहाँ प्रस्तुत
Help Net Security
·
Cyber Security News
📟 Flipper पर
एक स्वीप, शुरू से अंत तक: शांत कमरा → पास पहुँचना → लॉक होना → यह क्या है → कमरे का निर्णय।
Sweep (शांत) · Sweep (रीडर लॉक) · Fingerprint · Survey (चल रहा) · Survey (निर्णय)
Watch (साफ़) · Watch (रीडर!) · Logbook · Calibrate · Settings
✨ पाँच मोड
Specter एक सेंसर के इर्द-गिर्द पाँच उपकरण हैं। प्रत्येक एक अलग प्रश्न का उत्तर देता है, इसलिए सही उपकरण इस पर निर्भर करता है कि आप वास्तव में क्या पता लगाना चाहते हैं:
| मोड | यह किस प्रश्न का उत्तर देता है | इसका उपयोग कब करें |
|---|---|---|
| 🔍 Sweep | यह कहाँ है? | आपको किसी उपकरण पर संदेह है और आप घूम-घूम कर उसका पता लगाना चाहते हैं |
| 🔬 Fingerprint | यह किस प्रकार की चीज़ है? | आपने कोई उत्सर्जक ढूँढ लिया है और जानना चाहते हैं कि यह कैसे व्यवहार करता है |
| 🗺️ Site Survey | क्या यह कमरा साफ़ है? | आप पूरे स्थान के लिए एक निर्णय चाहते हैं, बिना हाथ लगाए |
| 🛰️ Watch Mode | क्या मेरी अनुपस्थिति में कोई प्रकट हुआ? | आप Flipper को कहीं पहरा देने के लिए छोड़ रहे हैं |
| 📖 Logbook | मैंने क्या पाया, और कब? | आप इसे लिख रहे हैं, या आज की तुलना पिछले सप्ताह से कर रहे हैं — खोज के प्रकार से फ़िल्टर करें |
🔍 Sweep — यह कहाँ है?
यह क्या करता है। एक लाइव EMF-शैली का मीटर। Flipper को सपाट पकड़ें और जिस चीज़ की जाँच कर रहे हैं उसके ऊपर धीरे-धीरे घुमाएँ — कोई कार्ड टर्मिनल, दरवाज़े का रीडर, ATM के किनारे का निचला हिस्सा, कोई पार्सल, कोई मेज़। सुई वास्तविक समय में फ़ील्ड की ताक़त के साथ चलती है।
आप क्या देखते हैं।
- डायल — सुई = लाइव रीडिंग, छोटा बिंदु = पीक-होल्ड (सबसे मज़बूत स्थान जिसे आपने छुआ, ताकि आप स्थानों की तुलना कर सकें)।
FIELD %— वही रीडिंग एक संख्या के रूप में, साथ में ▲ / ▼ ट्रेंड तीर जो बताता है कि पिछले आधे सेकंड ने चीज़ों को गर्म या ठंडा किया। जब आप शिकार कर रहे हों, वह तीर संख्या से अधिक मायने रखता है।PEAK %— आपके आर्म करने के बाद की सबसे मज़बूत रीडिंग, पीक-होल्ड बिंदु के पीछे की संख्या।- डायल के आर-पार का निशान — आपकी वर्तमान संवेदनशीलता पर
READERकहाँ से शुरू होता है। उसके आगे का सब कुछ वही है जिसे Specter हिट कहेगा, इसलिए डायल इस प्रश्न का उत्तर देता है कि "क्या गिना जाता है?" बजाय आपको अनुमान लगाने के लिए छोड़ने के। - निचली पट्टी — जब तक आप अपना पहला रीडर नहीं ढूँढ लेते, यह उन दो कुंजियों को दर्शाती है
जिन्हें आप चीज़ें दबाकर खोज नहीं सकते (
LEFT=cal,hold OK=log); उसके बाद, आपकी संवेदनशीलता और एक लाइव वेवफ़ॉर्म। जैसे ही कोई कैरियर पकड़ा जाता है, यह एक काली● ACTIVE READERअलार्म पट्टी में बदल जाती है, साथ में निकटता का शब्द। - निकटता —
FAINT → NEAR → CLOSE → STRONG → MAX।MAXका अर्थ है कि मीटर अधिकतम पर है: आप उतने पास हैं जितना यह मापन हल कर सकता है।
ध्वनि। वैकल्पिक गीगर क्लिक जो आपके पास पहुँचने पर तेज़ हो जाती हैं, ताकि आप Flipper को जेब में रखकर स्वीप कर सकें और केवल कान से शिकार कर सकें।
| कुंजी | क्रिया |
|---|---|
OK | पीक-होल्ड और संपर्क गणना रीसेट करें |
hold OK | इस रीडिंग को लॉगबुक में सहेजें |
LEFT | कमरे के नॉइज़ फ़्लोर पर कैलिब्रेट करें (3 सेकंड) |
UP / DOWN | शिकार छोड़े बिना संवेदनशीलता बदलें |
🔬 Fingerprint — यह किस प्रकार की चीज़ है?
यह क्या करता है। एक बार Sweep को कुछ मिल जाने पर, Flipper को उसके सामने स्थिर पकड़ें। Fingerprint निकटता मापना बंद कर देता है और कैरियर के ऑन/ऑफ़ किनारों का समय मापना शुरू करता है, जो वास्तव में एक प्रकार के उत्सर्जक को दूसरे से अलग करता है।
आप क्या देखते हैं। एक निर्णय, एक विश्वास बार, और दोनों के पीछे का प्रमाण:
| वर्ग | व्यवहार में इसका अर्थ |
|---|---|
| CONTINUOUS | कैरियर स्थायी रूप से ऊपर बना रहता है |
| POLLING | एक निश्चित, क्रिस्टल-समयबद्ध पोल चक्र — अवधि ms में दिखाई जाती है |
| INTERMITTENT | फटनुमा पर अनियमित — अक्सर कोई फ़ोन या उपयोग में कोई रीडर |
नीचे PER (पोल अवधि), BST (बर्स्ट चौड़ाई), JIT (जिटर) और
UP (वास्तविक ड्यूटी-साइकल) हैं, साथ में कच्चे कैरियर की एक लॉजिक-एनालाइज़र पल्स ट्रेन —
ताकि निर्णय कभी ऐसा न हो जिसे आपको आँख बंद करके मानना पड़े। एक वास्तविक
पोलिंग रीडर एक अचूक वर्ग तरंग के रूप में दिखाई देता है।
समय के आगे
~का अर्थ है कि यह 2 ms सैंपलिंग फ़्लोर के करीब है, और विश्वास उसी अनुपात में घटा दिया जाता है।
| कुंजी | क्रिया |
|---|---|
OK | खोज को लॉगबुक में सहेजें |
hold OK | मापन पुनः आरंभ करें |
🗺️ Site Survey — क्या यह कमरा साफ़ है?
यह क्या करता है। पूरे स्थान की एक समयबद्ध स्वीप। इसे शुरू करें, कमरे में सामान्य रूप से चलें, और अंत में एक ही निर्णय पाएँ — कोई सुई देखने की ज़रूरत नहीं।
आप क्या देखते हैं। चलने के दौरान एक काउंटडाउन और प्रगति बार, फिर एक निर्णय कार्ड:
CLEAN— कुछ भी नॉइज़ फ़्लोर को पार नहीं कर पायाTRACE— संक्षिप्त या धुँधली हिट; एक धीमा दूसरा दौर करने लायकACTIVE READER— कुछ वास्तव में ऊपर था और उत्सर्जित कर रहा था
…साथ में PEAK / AVG फ़ील्ड, संपर्क गणना, और UP % — सर्वे का कितना हिस्सा
वास्तव में कैरियर ऊपर था, जो अक्सर चारों में से सबसे बताने वाली संख्या होती है।
30 सेकंड, 60 सेकंड या 2 मिनट तक चलता है, और परिणाम स्वतः लॉग करता है। कार्ड उस अवधि का नाम बताता है
जिस पर इसे श्रेणीबद्ध किया गया, क्योंकि 30-सेकंड का CLEAN और दो-मिनट का CLEAN एक जैसी खोज नहीं हैं।
| कुंजी | क्रिया |
|---|---|
OK (चल रहा) | अभी रोकें और जो मिला उसी को श्रेणीबद्ध करें |
OK (कार्ड पर) | एक और सर्वे चलाएँ |
🛰️ Watch Mode — क्या मेरी अनुपस्थिति में कोई प्रकट हुआ?
यह क्या करता है। अनिश्चित काल तक पहरा देता है। इसे आर्म करें, Flipper रखें, चले जाएँ। जहाँ Sweep आपका शिकार है और Survey एक निश्चित-अवधि का परीक्षण है, वहीं Watch बस प्रतीक्षा करता है — मिनटों या घंटों तक।
आप क्या देखते हैं। जब तक कुछ नहीं होता, एक बड़ी बीती हुई घड़ी और NO READER। जिस क्षण कोई रीडर प्रकट होता है,
पट्टी उलटकर ACTIVE READER हो जाती है, एक ताक़त बार दिखाती है कि यह कितना पास है, स्क्रीन जाग जाती है,
और अलार्म बजता है। पट्टी टिमटिमाने के बजाय स्थिर रहती है — 1-बिट स्क्रीन पर एक ठोस उलटा ब्लॉक
पहले से ही उस पर सबसे तेज़ चीज़ है, और जो रीडआउट वास्तव में बदलते हैं वही जीवंतता लाते हैं। गुज़र जाने के बाद, स्क्रीन प्रमाण रखती है: HITS (कितने
अलग संपर्क), PEAK, LAST (सबसे हाल का कितना समय पहले था) और
UP (कुल समय जब वास्तव में कैरियर ऊपर था)। घड़ी 99:59 के बाद जमने के बजाय hh:mm पर लुढ़क जाती है,
ताकि रात भर की निगरानी भी जुड़ती रहे।
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% | PEGGED |
कच्ची ड्यूटी कभी खोती नहीं: शोर फ़्लोर, ऑटो-कैलिब्रेशन और Fingerprint स्क्रीन का UP सब अभी भी वास्तविक ड्यूटी-साइकल में काम करते हैं, क्योंकि वे सिग्नल का वर्णन करते हैं, आपकी उससे दूरी का नहीं। शाब्दिक नंबर चाहिए? Settings → Meter scale → Duty %।
💾 सब कुछ स्थायी रहता है
संवेदनशीलता, सर्वे लंबाई, ध्वनि, कंपन, 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
🚀 इंस्टॉल
कोई devboard नहीं, फ्लैश करने के लिए कोई फर्मवेयर नहीं — यह एक ही .fap है।
विकल्प A — प्रीबिल्ट .fap (सबसे आसान)
-
Releases पेज से सही
.fapलें:आपका फर्मवेयर फ़ाइल आधिकारिक / स्टॉक specter.fapUnleashed, RogueMaster, Momentum या कोई भी नया specter-fw-dev.fapअगर Flipper कहता है
APP:87 < FW:88 — This app might not work, तो आपके पास गलत वाला है — दूसरी फ़ाइल लें। ऐप का API संस्करण कंपाइल होने पर तय हो जाता है, इसलिए एक ही बिल्ड दोनों फर्मवेयर लाइनों को संतुष्ट नहीं कर सकता। यह आमतौर पर अभी भी चलता है अगर आप Continue दबाते हैं, लेकिन मेल खाता बिल्ड पूछेगा नहीं। -
qFlipper खोलें, फ़ाइल को
SD Card / apps / NFC /पर ड्रैग करें। -
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 सेकंड तक स्थिर रहें।
2. Flipper को सपाट पकड़ें और जिस चीज़ की जाँच कर रहे हैं उसके ऊपर उसे **धीरे-धीरे** घुमाएँ — कार्ड टर्मिनल, दरवाज़े का रीडर, ATM के किनारे का निचला हिस्सा, कोई पार्सल, कोई डेस्क।
- **शांत / सपाट वेवफ़ॉर्म** → रेंज में कोई सक्रिय रीडर नहीं।
- **नीडल ऊपर चढ़ रही है, क्लिक तेज़ हो रहे हैं** → आप किसी एमिटर के पास पहुँच रहे हैं। पीक की ओर बढ़ते रहें।
- **`● ACTIVE READER` + अलार्म बॉर्डर** → एक सक्रिय रीडर ठीक यहीं है।
3. कुछ मिला? बाहर निकलें और **Fingerprint** खोलें। Flipper को उसके सामने स्थिर पकड़ें और कैडेंस को सेटल होने दें — आमतौर पर कुछ सेकंड काफ़ी होते हैं। फ़ाइंडिंग सेव करने के लिए **OK** दबाएँ।
4. पूरा कमरा क्लियर करना है? **Site Survey** खोलें, बार भरने तक जगह में घूमें, और वर्डिक्ट पढ़ें।
5. इलाका छोड़ रहे हैं? Flipper को **Watch Mode** में डाल दें और यह पहरा देगा, आपकी अनुपस्थिति में कोई रीडर आने पर जागकर अलार्म बजाएगा।
6. आपने जो कुछ सेव किया है, टाइमस्टैम्प के साथ, उसके लिए **Logbook** देखें — या कार्ड से `logbook.csv` निकालकर स्प्रेडशीट में डालें।
> 💡 पहले किसी ज्ञात-अच्छे रीडर को स्वीप करें (आपका अपना फ़ोन NFC कर रहा हो, या कोई कॉन्टैक्टलेस टर्मिनल जिस पर आपको भरोसा है) ताकि देख सकें कि मीटर पर एक मज़बूत, वैध फ़ील्ड कैसा दिखता है — और उसका फ़िंगरप्रिंट कैसा पढ़ा जाता है। फिर शिकार पर निकलें।
### नियंत्रण
| स्क्रीन | कुंजी | क्रिया |
|---|---|---|
| **Sweep** | `OK` | पीक / कॉन्टैक्ट रीसेट करें |
| | `hold OK` | वर्तमान रीडिंग लॉग करें |
| | `LEFT` | नॉइज़ फ्लोर कैलिब्रेट करें (3 s) |
| **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 %` और निकटता के शब्द स्वीपिंग के लिए तुलनात्मक "गर्म / ठंडा" मार्गदर्शक हैं, cm में मापी गई दूरी नहीं। यह एक विशिष्ट पोलिंग बैंड के मुक़ाबले कैरियर ड्यूटी-साइकल की *स्केल्ड* रीडिंग है (देखें [Reading the meter](#-reading-the-meter--fixed-in-23)); असामान्य रूप से कम पोल करने वाला रीडर समान दूरी पर कम पढ़ेगा, और continuous-wave मोड वाला दूर से ही पेग कर देगा।
- **मीटर अधिकतम तक पहुँच जाता है।** `PEGGED` का मतलब है कि कैरियर उतना ही ऊपर है जितना यह रीडर कभी रखता है — उसके बाद, और पास जाना वाक़ई बड़ा नंबर नहीं दे सकता। ऐसा होने पर Flipper एक बार बज़ करता है, ताकि आपको पता चले कि स्क्रीन दिख न रही हो तब भी चलना बंद कर दें। इसके बजाय स्थितियों की तुलना करने के लिए `PEAK` होल्ड का उपयोग करें।
- **कैडेंस ~2 ms तक रिज़ॉल्व होता है।** यही सैंपलिंग अवधि है। इसके आस-पास के टाइमिंग **`~`** के साथ दिखाए जाते हैं और कॉन्फ़िडेंस उसी अनुसार घटाया जाता है — Specter अपनी रिज़ॉल्यूशन सीमा को चिह्नित करना पसंद करेगा बजाय ऐसा सटीक दिखने वाला नंबर बताने के जिसके पीछे वह खड़ा न हो सके।
- **`CLEAN` का मतलब है आपकी चुनी हुई संवेदनशीलता पर साफ़।** एक सुप्त स्किमर जो केवल असली टैप पर जागता है, या जो शील्डेड है, *किसी भी* थ्रेशोल्ड पर अदृश्य रहता है। रीडिंग का न होना अनुपस्थिति की गारंटी नहीं है।
- **एक समय में एक रेडियो।** स्वीपिंग के दौरान Specter NFC चिप पर नियंत्रण ले लेता है, इसलिए पहले कोई अन्य NFC ऐप बंद करें (अगर कोई और रेडियो रखे हुए है तो यह *NFC unavailable* कहेगा)।
---
## ⚖️ कानूनी और नैतिक
Specter एक **रक्षात्मक, केवल-सुनने वाला** टूल है — यह **कभी ट्रांसमिट नहीं करता**, कभी फ़ील्ड पावर नहीं करता, रीडर को कभी छूता नहीं। इसका उपयोग **अपने ही** POS क्षेत्र, दरवाज़े, डेस्क या सामान को स्वीप करने के लिए करें, या ऐसे हार्डवेयर पर जिसका मूल्यांकन करने के लिए आपको **स्पष्ट रूप से अधिकृत** किया गया है। इसके उपयोग के लिए आप ज़िम्मेदार हैं। अपने स्थानीय कानून जानें।
---
## 🗺️ रोडमैप
- [x] रीबूट के बीच संवेदनशीलता / ध्वनि / वाइब / LED को बनाए रखें
- [x] SD कार्ड पर टाइमस्टैम्प के साथ डिटेक्शन का "Logbook"
- [x] स्क्रीन बंद रहते हुए बैकग्राउंड स्वीप — *स्टेल्थ मोड*
- [x] बेहतर रेंज नियंत्रण के लिए समायोज्य थ्रेशोल्ड — *ऑटो-कैलिब्रेशन + Custom sensitivity*
- [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.png | 2560×800 | README हेडर (2× ताकि रेटिना पर क्रिस्प रहे) |
images/social-preview.png | 1280×640 | Settings → Social preview — GitHub का अनुशंसित आकार (न्यूनतम 640×320, 1 MB सीमा) |
images/mark.png | 512×512 | स्क्वायर लोगो मार्क: अवतार, फ़ेविकॉन, स्लाइड्स |
images/demo.gif | 768×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 watchdog), **[GhostTag](https://github.com/at0m-b0mb/GhostTag-FlipperZero)** (BLE anti-stalking hunter) और **[Cerberus](https://github.com/at0m-b0mb/flipper-cerberus)** (Sub-GHz RF watchdog)।
- [Flipper Zero firmware](https://github.com/flipperdevices/flipperzero-firmware) NFC HAL (`furi_hal_nfc` field detection) + [ufbt](https://github.com/flipperdevices/flipperzero-ufbt) द्वारा संचालित।
## 📄 लाइसेंस
[MIT](https://github.com/at0m-b0mb/specter-flipperzero/blob/main/LICENSE) © 2026 at0m-b0mb