العودة إلى التحديثات
New releaseAug 20, 2026

Specter-FlipperZero v2.7

👻 Specter — ماسح سلبي بتردد 13.56 ميجاهرتز لكشف أجهزة التنصت وقارئات/ناسخات NFC لجهاز Flipper Zero. مقياس EMF لمكافحة المراقبة يعتمد على شريحة NFC المدمجة. دون الحاجة إلى أي أجهزة إضافية.

مشاركة

Specter — NFC reader & skimmer bug-sweep for Flipper Zero

Specter 👻

امسح بحثًا عن القارئات التي لا تراها.

Flipper Zero Version 2.7 Onboard NFC No extra hardware ufbt MIT

Specter يحوّل جهاز Flipper Zero إلى أداة جيب لمكافحة التنصّت للبحث عن قارئات NFC نشطة بتردد 13.56 MHz. إنه يستمع بشكل سلبي لحقل الترددات اللاسلكية الذي يبثّه قارئ قيد التشغيل باستمرار — قارئ بطاقات خفي مُدسّس في محطة دفع، قارئ سري خلف لوحة باب، أو مسجّل مارق ملصوق تحت مكتب — ثم يخبرك أين يوجد، وما نوعه، وهل الغرفة نظيفة، و— إن تُرك في وضع مراقبة — بلحظة ظهور أحدها أثناء غيابك. إنه لا يبثّ أبدًا.

القارئات غير مرئية. Specter يجعلها مرئية.


📟 على Flipper

شاشات Specter

Sweep (هادئ)  ·  Sweep (قارئ مُقفَل)  ·  Fingerprint  ·  Survey (قيد التشغيل)  ·  Survey (النتيجة)
Watch (خالٍ)  ·  Watch (قارئ!)  ·  Logbook  ·  Calibrate  ·  Settings


✨ الأوضاع الخمسة

Specter عبارة عن خمس أدوات حول مستشعر واحد. كل أداة تجيب عن سؤال مختلف، لذا تعتمد الأداة المناسبة على ما تحاول اكتشافه فعليًا:

الوضعالسؤال الذي يجيب عنهاستخدمه عندما
🔍 Sweepأين هو؟تشتبه في وجود جهاز وتريد تحديد موقعه بدقّة بالتحرّك حوله
🔬 Fingerprintما نوعه؟عثرت على باعث وتريد معرفة سلوكه
🗺️ Site Surveyهل هذه الغرفة نظيفة؟تريد حكمًا واحدًا لمساحة كاملة دون استخدام يديك
🛰️ Watch Modeهل ظهر أحدها أثناء غيابي؟ستترك الـ Flipper في مكان ما ليقوم بالحراسة
📖 Logbookماذا وجدت، ومتى؟تدوّن النتائج، أو تقارن اليوم بالأسبوع الماضي

🔍 Sweep — أين هو؟

Sweep — تم العثور على قارئ، المؤشر بلغ أقصاه

ماذا يفعل. جهاز قياس بنمط EMF مباشر. أمسك الـ Flipper بشكل مسطّح وحرّكه ببطء فوق الشيء الذي تفحصه — طرفية بطاقة، قارئ باب، الحافة السفلية لجدار صرّاف آلي، طرد، مكتب. تتحرّك الإبرة مع شدّة المجال في الوقت الفعلي.

ماذا ترى.

  • المؤشر — الإبرة = قراءة حيّة، والنقطة الصغيرة = الاحتفاظ بالذروة (أقوى موضع لمسته، لمقارنة المواضع).
  • FIELD % — القراءة نفسها كرقم، مع سهم اتجاه ▲ / ▼ يخبرك ما إذا كانت آخر نصف ثانية جعلت الأمور أسخن أم أبرد. عند البحث، هذا السهم أهم من الرقم.
  • PK / C — قراءة الذروة وعدد الاتصالات المنفصلة التي أجريتها.
  • الشريط السفلي — الشكل الموجي المباشر وحساسيتك الحالية أثناء الهدوء؛ يتحوّل إلى شريط إنذار أسود ● ACTIVE READER مع كلمة قرب بمجرد اكتشاف حامل إشارة.
  • القربFAINT → NEAR → CLOSE → STRONG → MAX. MAX تعني أن المؤشر بلغ أقصاه: أنت أقرب ما يمكن لهذا القياس تحديده.

الصوت. نقرات جيجر اختيارية تتسارع كلما اقتربت، بحيث يمكنك المسح والـ Flipper في جيبك والبحث بالأذن وحدها.

المفتاحالإجراء
OKإعادة تعيين الاحتفاظ بالذروة وعدد الاتصالات
hold OKحفظ هذه القراءة في سجل القياسات
LEFTمعايرة نسبةً لضوضاء الغرفة الأساسية (3 ثوانٍ)

🔬 Fingerprint — ما نوعه؟

Fingerprint — تم تحديد قارئ يستخدم الاستطلاع

ماذا يفعل. بمجرد أن يعثر Sweep على شيء ما، أمسك الـ Flipper ثابتًا عليه. يتوقف Fingerprint عن قياس القرب ويبدأ في ضبط توقيت حواف تشغيل/إيقاف الحامل، وهو ما يميّز فعليًا نوع باعث عن آخر.

ماذا ترى. حكمًا، وشريط ثقة، والأدلة وراءهما:

الفئةمعناها عمليًا
CONTINUOUSالحامل مرفوع بشكل دائم
POLLINGدورة استطلاع ثابتة مضبوطة بكريستالة — تظهر المدة بالملليثانية
INTERMITTENTمتقطّعة لكنها غير منتظمة — غالبًا هاتف أو قارئ قيد الاستخدام

بالأسفل توجد PER (فترة الاستطلاع)، BST (عرض النبضة)، JIT (الارتعاش) وDUTY (دورة التشغيل الفعلية)، بالإضافة إلى قطار نبضات بمحلّل منطقي للحامل الخام — لذا لا يكون الحكم شيئًا تأخذه على أنه صحيح دون تحقق. القارئ الذي يستخدم الاستطلاع الحقيقي يظهر كموجة مربعة لا يمكن الخطأ فيها.

تعني ~ قبل التوقيت أنه قريب من حد العينات البالغ 2 مللي ثانية، ويُخصم مستوى الثقة وفقًا لذلك.

المفتاحالإجراء
OKحفظ النتيجة في سجل القياسات
hold OKإعادة تشغيل القياس

🗺️ Site Survey — هل هذه الغرفة نظيفة؟

Site Survey — النتيجة

ماذا يفعل. مسح مؤقّت لمساحة كاملة. ابدأه وتجوّل في الغرفة بشكل طبيعي واحصل على حكم واحد في النهاية — دون مراقبة إبرة.

ماذا ترى. عدّاد تنازلي وشريط تقدّم أثناء التشغيل، ثم بطاقة الحكم:

  • CLEAN — لا شيء تجاوز مستوى الضوضاء
  • TRACE — ضربات قصيرة أو خافتة؛ تستحق تمريرة ثانية أبطأ
  • ACTIVE READER — كان هناك شيء يعمل فعلًا ويبثّ

…مع حقل MAX / AVG، وعدد الاتصالات، وFIELD %مقدار الوقت الذي كان فيه الحامل نشطًا فعليًا أثناء المسح، وهو غالبًا أكثر الأرقام الأربعة دلالة. يستغرق 30 ثانية أو 60 ثانية أو دقيقتين، ويسجّل النتيجة تلقائيًا.

المفتاحالإجراء
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 وتُختَم بوقت ساعة الفلبر. يعيش كلا الملفين في apps_data/specter/ على بطاقة SD. لا يغادر أي شيء الجهاز أبدًا. امسحها من الإعدادات ← مسح سجل العمليات (مع التأكيد أولاً — إنه الشيء الوحيد الذي لا رجعة فيه الذي يمكن للتطبيق فعله).


⚙️ الأجزاء الداعمة

🎯 المعايرة التلقائية

اضغط LEFT على شاشة المسح وسيستمع Specter إلى مستوى الضوضاء المحيطة لمدة 3 ثوانٍ، ثم يضبط عتبة الكشف فوق ما قاسه تمامًا — محفوظة كحساسية Custom الخاصة بك. لكل غرفة مستوى ترددات راديوية مختلف؛ يعمل هذا على ضبطه وفقًا للغرفة التي تقف فيها بدلًا من رقم مُدمج وقت البناء. قف في مكان هادئ عند تشغيله.

🕶️ وضع التخفي

يُبقي الشاشة وLED مظلمَين طوال المسح، فلا يتوهج الفلبر بينما أنت من يقوم بالنظر. يبقى الصوت والاهتزاز يعملان — الهدف ليس تعطيل التغذية الراجعة التي تعتمد عليها أثناء المسح. الخروج من شاشة التخفي يعيد إضاءة الشاشة، لذلك BACK يوصلك دائمًا إلى قائمة مضيئة.

📏 قراءة العداد

لماذا لا يصدر القارئ الذي تلمسه إشارة بنسبة 100% من الوقت. يقيس الكاشف شيئًا فيزيائيًا واحدًا: ما نسبة الوقت الذي يكون فيه ناقل 13.56 ميجاهرتز نشطًا. لكن القراء تستقصي — دفعة قصيرة، ثم سكون، ثم دفعة أخرى. يشعّ طرف نموذجي 20–35% فقط من الوقت، لذا تتشبّع دورة التشغيل الخام حول 30% مهما اقتربت.

عرض هذا الرقم الخام على المؤشر جعل الاكتشاف المثالي يبدو كثلث قيمة فعلية. لذلك تتم معايرة العداد وفق نطاق الاستقصاء الحقيقي بدلًا من ذلك:

دورة الناقل الخامالعدادالقرب
3% (ضوضاء الغرفة)10%FAINT
12%40%NEAR
20%67%CLOSE
28%93%STRONG
≥30% (مستند على قارئ)100%MAX

لا تُفقد دورة التشغيل الخام أبدًا: مستوى الضوضاء والمعايرة التلقائية وشاشة Fingerprint وDUTY كلها ما تزال تعمل بدورة تشغيل حقيقية، لأنها تصف الإشارة وليس المسافة عنها. تريد الرقم الحرفي؟ الإعدادات ← العداد ← خام.

💾 كل شيء يُحفظ

الحساسية وطول المسح والصوت والاهتزاز وLED والتخفي والتسجيل ووضع العداد تُحفظ إلى بطاقة SD فور تغييرها. عدة مسح تنسى إعداداتها أسوأ من عدم وجود حفظ إطلاقًا.


🧠 كيف يعمل

كل قارئ NFC يعمل باستمرار يرسل نبضات في الهواء عبر ناقل 13.56 ميجاهرتز، منتظرًا بطاقة لتستيقظ. لا يمكنك رؤيته، لكن رقاقة NFC في الفلبر يمكنها: ST25R3916 لديها كاشف مجال خارجي مدمج في العتاد (نفس الدائرة التي تتيح للفلبر محاكاة بطاقة ومعرفة متى يتحدث إليه قارئ). يُبقي 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 يُثبّت المؤشر عند القمة؛ أما الأضعف أو الأبعد فيُزيحه قليلًا. هذا ما يحرّك الإبرة وكلمة القرب ومعدّل النقرات.

**الإيقاع ← الهوية.** بشكل منفصل، يتم توقيت كل انتقال لهذه البتة. القارئ الذي يستيقظ لمدة 20 ms كل 200 ms يُنتج نمط دفعات/فجوات بلا أي ارتجاف تقريبًا، لأن حلقة الاقتراع لديه مدفوعة بآلة حالة مضبوطة ببلورة. حركة اليد وضوضاء الترددات الراديوية ليست بتلك الثبات. هذا الفرق هو ما يفصل **POLLING** عن **INTERMITTENT**.

### طبقات اتخاذ القرار تُختبر على حاسوب حقيقي

الأماكن التي يحوّل فيها Specter الأرقام إلى *ادعاء* — "هذا قارئ اقتراع"، "هذه الغرفة نظيفة"، "هذا ما يجب أن تشير إليه الإبرة" — هي لغة C خالصة دون أي اعتماديات على العتاد، وهي مثبّتة عبر اختبارات المضيف وليس مكتشفة على الجهاز:```bash
make -C test     # 300 checks: classifier, verdict, meter scaling, presence

🚀 التثبيت

لا حاجة إلى لوحة تطوير ولا إلى تفليش برنامج ثابت — إنه ملف .fap واحد.

الخيار أ — ملف .fap جاهز (الأسهل)

  1. احصل على ملف .fap الصحيح من صفحة Releases:

    البرنامج الثابت لديكالملف
    رسمي / أصلي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.

الخيار ب — قم بتجميعه بنفسك باستخدام 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

The `.fap` lands in `dist/specter.fap`; `ufbt launch` copies it to `apps/NFC/` and starts it for you.

> الأيقونات في `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 بشكل مسطّح وحرّكه **ببطء** عبر الشيء الذي تفحصه — محطة بطاقات،
   قارئ أبواب، الجزء السفلي من حافة صراف آلي، طرد، مكتب.
   - **موجة هادئة / مسطّحة** → لا يوجد قارئ نشِط في المدى.
   - **الإبرة ترتفع، والنقرات تتسارع** → أنت تقترب من باثٍّ. واصل التقدم نحو الذروة.
   - **`● ACTIVE READER` + حدود إنذار** → يوجد قارئ نشِط هنا تمامًا.
3. وجدت شيئًا؟ ارجع للخلف وافتح **Fingerprint**. أمسك Flipper ثابتًا عليه ودع
   الإيقاع يستقر — عادةً ما تكفي بضع ثوانٍ. اضغط **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 القديمة)؛ لأن مسار LF في Flipper لا يملك بتًّا مكافئًا لكشف المجال.
- **يستشعر *الموجة الحاملة* للقارئ، لا ما يقرؤه.** يخبرك Specter *أن قارئًا نشطًا هنا،
  وتقريبًا مدى قربه، وما الإيقاع الذي يستعلم به* — لكنه لا يفكّ تشفير أو يتعرّف أو يلتقط أي شيء
  يفعله القارئ.
- **القوة نسبية وليست معايرة.** `FIELD %` وكلمات القرب هي دليل مقارن "أقرب /
  أبعد" للمسح، وليست مسافة مقاسة بالسنتيمتر. إنها قراءة *مقيّسة* لدورة عمل الموجة الحاملة
  مقابل نطاق استعلام نموذجي (انظر [قراءة المقياس](#-reading-the-meter--fixed-in-23))؛
  فالقارئ الذي يستعلم بشكل متباعد بشكل غير معتاد سيقرأ أقل عند نفس المسافة، والذي يعمل في وضع الموجة
  المستمرة سيصل إلى أقصى قراءة من مسافة أبعد.
- **المقياس يبلغ أقصاه.** `MAX` تعني أن الموجة الحاملة مرفوعة بأعلى قدر يرفعها به هذا القارئ — بعد
  هذه النقطة، لا يمكن للاقتراب أكثر أن يُنتج رقمًا أكبر. استخدم `PK` لتثبيت الذروة لمقارنة
  المواضع بدلًا من ذلك.
- **دقة الإيقاع تصل إلى ~2 ms.** هذه هي فترة أخذ العينات. أي توقيتات قريبة منها تُعرض بعلامة
  **`~`** وتُخصم الثقة وفقًا لذلك — يفضّل Specter الإشارة إلى حد الدقة الخاص به
  بدلًا من عرض رقم يبدو دقيقًا لا يمكنه ضمانه.
- **`CLEAN` تعني نظيفًا عند الحساسية التي اخترتها.** القارئ الخبيث الخامل الذي يستيقظ فقط عند لمسة حقيقية،
  أو المحمي، يبقى غير مرئي عند *أي* عتبة. غياب القراءة ليس ضمانًا
  للغياب.
- **راديو واحد في كل مرة.** يستحوذ Specter على شريحة NFC أثناء المسح، لذا أغلق أي تطبيق NFC آخر أولًا
  (سيقول *NFC غير متاح* إذا كان شيء آخر يمسك الراديو).

---

## ⚖️ الجانب القانوني والأخلاقي

Specter أداة **دفاعية، للاستماع فقط** — **لا يبث أبدًا**، ولا يشغّل مجالًا، ولا يلمس القارئ. استخدمه لمسح **منطقة نقطة البيع الخاصة بك**، أو بابك، أو مكتبك، أو متعلقاتك، أو الأجهزة التي **مُخوَّل صراحةً** لفحصها. أنت مسؤول عن طريقة استخدامك له. اطّلع على قوانينك المحلية.

---

## 🗺️ خارطة الطريق

- [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

🙏 الاعتمادات

  • تم بناؤه بواسطة at0m-b0mb.
  • جزء من عائلة أدوات أمان Flipper: Argus (مراقب Wi-Fi deauth / evil-twin)، GhostTag (مطارد مضاد للتتبع عبر BLE) و Cerberus (مراقب الترددات الراديوية Sub-GHz).
  • مدعوم بواسطة Flipper Zero firmware NFC HAL (furi_hal_nfc اكتشاف المجال) + ufbt.

📄 الترخيص

MIT © 2026 at0m-b0mb

الفئات