
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
âš 5ã€ã®ã¢ãŒã
Specterã¯ã1ã€ã®ã»ã³ãµãŒãäžå¿ã«ãã5ã€ã®ããŒã«ã§ãããããããç°ãªãåãã«çãããããå®éã«äœã調ã¹ãããã«ãã£ãŠé©åãªã¢ãŒããå€ãããŸã:
| ã¢ãŒã | çããåã | 䜿çšããå Žé¢ |
|---|---|---|
| ð Sweep | ã©ãã«ãããïŒ | ããã€ã¹ã®ååšãçããåãåã£ãŠäœçœ®ãç¹å®ããããšã |
| ð¬ Fingerprint | ã©ããªçš®é¡ã®ãã®ãïŒ | çºä¿¡æºãèŠã€ãããã®æåãç¥ããããšã |
| ðºïž Site Survey | ãã®éšå±ã¯ã¯ãªãŒã³ãïŒ | 空éå šäœã«ã€ããŠããã³ãºããªãŒã§1ã€ã®å€å®ã欲ãããšã |
| ð°ïž Watch Mode | é¢ããŠããéã«çŸãããïŒ | Flipperã眮ããŠèŠåŒµãããããããšã |
| ð Logbook | äœãããã€èŠã€ãããïŒ | èšé²ããŸãšãããšãããŸãã¯ä»æ¥ãšå é±ãæ¯èŒãããšã â çºèŠã¿ã€ãã§ãã£ã«ã¿å¯èœ |
ð Sweep â ã©ãã«ãããïŒ
æ©èœã ã©ã€ãEMFã¡ãŒã¿ãŒãFlipperãå¹³ãã«æã¡ã調ã¹ãããã® â ã«ãŒã端æ«ããã¢ãªãŒããŒãATMã®çžã®äžåŽãå°å ãæº â ã®äžããã£ããåãããŸããéããªã¢ã«ã¿ã€ã ã§ãã£ãŒã«ã匷床ã远ããŸãã
衚瀺ããããã®ã
- ãã€ã€ã« â é = ã©ã€ãã®èªã¿å€ãå°ããªããã = ããŒã¯ããŒã«ãïŒè§Šããäžã§æã匷ãäœçœ®ãäœçœ®ã®æ¯èŒãå¯èœïŒã
FIELD %â åãèªã¿å€ãæ°å€ã§è¡šç€ºãâ² / ⌠ãã¬ã³ãç¢å°ããçŽè¿ã®0.5ç§ã§ç¶æ³ã匷ããªã£ãã匱ããªã£ããã瀺ããŸããæ¢ããŠãããšãã¯ããã®ç¢å°ãæ°å€ãããéèŠã§ããPK/Câ ããŒã¯èªã¿å€ãšãæ¥è§Šããåæ°ã- äžéšã¹ããªãã â ã©ã€ã波圢ãšçŸåšã®æåºŠïŒéããªãšãïŒããã£ãªã¢ãæ€åºããããšãè¿æ¥åºŠã瀺ãé»ã**
â ACTIVE READER**ã¢ã©ãŒã ããŒã«åãæ¿ãããŸãã - è¿æ¥åºŠ â
FAINT â NEAR â CLOSE â STRONG â MAXãMAXã¯ã¡ãŒã¿ãŒãæå€§å€ã«éããç¶æ : ãã®æž¬å®ã§è§£åã§ããéçãŸã§è¿ã¥ããŠããŸãã
ãµãŠã³ãã ä»»æã®ã¬ã€ã¬ãŒã«ãŠã³ã¿ãŒé¢šã¯ãªãã¯é³ã§ãè¿ã¥ãã»ã©éããªããŸããFlipperããã±ããã«å ¥ãããŸãŸãé³ã ãã§æ¢ãããšãã§ããŸãã
| ã㌠| ã¢ã¯ã·ã§ã³ |
|---|---|
OK | ããŒã¯ããŒã«ããšæ¥è§Šåæ°ããªã»ãã |
OKé·æŒã | ãã®èªã¿å€ããã°ããã¯ã«ä¿å |
LEFT | éšå±ã®ãã€ãºããã¢ã«ãã£ãªãã¬ãŒã·ã§ã³ïŒ3ç§ïŒ |
ð¬ Fingerprint â ã©ããªçš®é¡ã®ãã®ãïŒ
æ©èœã Sweepã§äœããèŠã€ããããFlipperãããã«éæ¢ãããŠåœãŠãŸããFingerprintã¯è¿æ¥åºŠã®æž¬å®ãããããã£ãªã¢ã®ãªã³/ãªããšããžã®ã¿ã€ãã³ã°ãèšæž¬ããŸããããããããçºä¿¡æºã®çš®é¡ãåºå¥ããæ±ºãæã§ãã
衚瀺ããããã®ã å€å®ãä¿¡é ŒåºŠããŒããããŠãã®æ ¹æ ãšãªã蚌æ :
| ã¯ã©ã¹ | å®éã®æå³ |
|---|---|
| CONTINUOUS | ãã£ãªã¢ãåžžæãªã³ |
| POLLING | åºå®ãããã¯ãªã¹ã¿ã«ã¿ã€ãã³ã°ã®ããŒãªã³ã°åšæ â åšæã¯msã§è¡šç€º |
| INTERMITTENT | ããŒã¹ãçã ãäžèŠå â å€ãã®å Žåã䜿çšäžã®ã¹ããããªãŒã㌠|
ãã®äžã«ã¯PERïŒããŒãªã³ã°åšæïŒãBSTïŒããŒã¹ãå¹
ïŒãJITïŒãžãã¿ãŒïŒãDUTYïŒå®ãã¥ãŒãã£ãµã€ã¯ã«ïŒã«å ããçã®ãã£ãªã¢ã®ããžãã¯ã¢ãã©ã€ã¶ãŒé¢šãã«ã¹åã衚瀺ãããŸã â å€å®ãéµåã¿ã«ããå¿
èŠã¯ãããŸãããæ¬ç©ã®ããŒãªã³ã°ãªãŒããŒã¯ãçŽãããªãæ¹åœ¢æ³¢ãšããŠçŸããŸãã
ã¿ã€ãã³ã°ã®åã®
~ã¯ã2msã®ãµã³ããªã³ã°äžéã«è¿ãããšãæå³ããä¿¡é ŒåºŠãããã«åãããŠå²ãåŒãããŸãã
| ã㌠| ã¢ã¯ã·ã§ã³ |
|---|---|
OK | çºèŠããã°ããã¯ã«ä¿å |
OKé·æŒã | 枬å®ãåé |
ðºïž Site Survey â ãã®éšå±ã¯ã¯ãªãŒã³ãïŒ
æ©èœã 空éå šäœã®æéå¶éä»ãã¹ã€ãŒããéå§ããŠéšå±ãæ®éã«æ©ãåããšãæåŸã«1ã€ã®å€å®ãåŸãããŸã â éãæ³šèŠããå¿ èŠã¯ãããŸããã
衚瀺ããããã®ã å®è¡äžã¯ã«ãŠã³ãããŠã³ãšããã°ã¬ã¹ããŒããã®åŸã¯å€å®ã«ãŒã:
CLEANâ ãã€ãºããã¢ãè¶ ãããã®ãªãTRACEâ çãããŸãã¯åŸ®åŒ±ãªãããããã£ãã2åç®ã®ãã¹ãæšå¥šACTIVE READERâ å®éã«äœããèµ·åããŠæŸå°ããŠãã
âŠããã«MAX / AVGãã£ãŒã«ããæ¥è§Šåæ°ãFIELD % â ãµãŒãã€äžã«ãã£ãªã¢ãå®éã«äžãã£ãŠããå²åãããã¯4ã€ã®æ°å€ã®äžã§æã瀺åã«å¯ãããšãå€ãã§ãã30ç§ã60ç§ããŸãã¯2åéå®è¡ãããçµæã¯èªåçã«ãã°ãããŸãã
| ã㌠| ã¢ã¯ã·ã§ã³ |
|---|---|
OK | ãµãŒãã€ãåå®è¡ |
ð°ïž Watch Mode â é¢ããŠããéã«çŸãããïŒ
æ©èœã ç¡æéã«èŠåŒµããŸããã»ããããŠFlipperã眮ããé¢ããŸããSweepãèªåã§æ¢ãã¢ãŒããSurveyãåºå®æéã®ãã¹ãã§ããã®ã«å¯ŸããWatchã¯ãã åŸ ã¡ç¶ããŸã â æ°åã§ãæ°æéã§ãã
衚瀺ããããã®ã äœããªãéã¯å€§ããªçµéæèšãšALL CLEARã衚瀺ãããŸãããªãŒããŒãçŸããç¬éããã³ãã**READER PRESENT**ã«å転ããç»é¢ãç¹ç¯ããã¢ã©ãŒã ã鳎ããŸãããã³ãã¯ç¹æ»
ã§ã¯ãªãå®å®è¡šç€ºã§ â 代ããã«å°ããªããŒã«ãŒããã«ã¹ãããããã¹ãããã®ããã«ãã«ãã«ããã«ã©ã€ãç¶æ
ãšããŠèªã¿åããŸããééåŸãç»é¢ã«ã¯èšŒæ ãæ®ããŸã: HITSïŒæ¥è§Šåæ°ïŒãPEAKãLASTïŒæåŸã®æ€åºããã©ãã ãçµéãããïŒãSEENïŒãã£ãªã¢ãå®éã«äžãã£ãŠããåèšæéïŒã
Watchã¯æå³çã«ã¹ãã«ã¹ã¢ãŒããç¡èŠããŸã â äœããèŠãã®ã«ç¥ãããªãæãéããªèŠåŒµãã¯ã圹ã«ç«ããªãã©ãããæå®³ã§ãã
| ã㌠| ã¢ã¯ã·ã§ã³ |
|---|---|
OK | åã»ãã â æèšãšã«ãŠã³ã¿ãŒãã¯ãªã¢ |
ð Logbook â äœãããã€èŠã€ãããïŒ
çºèŠã¯1ã€ã®ã¢ã¯ã·ã§ã³ã§2ç®æã«ä¿åããããããããã€ã¹äžã§èªããã ãã§ãªãããã§ã«ã¹ãã¬ããã·ãŒã圢åŒã«ãªã£ãŠããŸã â ãšã¯ã¹ããŒãæé ãèŠããå¿ èŠã¯ãããŸãã:
logbook.txt â ã°ã«ãŒãåãããã€ã¹äžã®ãã¥ãŒã¢çš | logbook.csv â åãšã³ããªã1ãã©ããè¡ã« |
|---|---|
| ``` 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%ã®æéã§æŸå°ããªãçç±ã æ€åºåšã¯1ã€ã®ç©ççãªäºæã枬å®ããŸãïŒ13.56 MHzãã£ãªã¢ãç«ã¡äžãã£ãŠããæéã®å²åã§ããããããªãŒããŒã¯ããŒãªã³ã°ããŸãââçãããŒã¹ããã¹ãªãŒãããŸãå¥ã®ããŒã¹ããäžè¬çãªç«¯æ«ã¯20ã35%ã®æéããæŸå°ããŠããªããããçã®ãã¥ãŒãã£ãµã€ã¯ã«ã¯ã©ãã ãè¿ã¥ããŠãçŽ30%ã§é£œåããŸãã
ãã®çã®æ°å€ãã²ãŒãžã«è¡šç€ºãããšãå®å šãªæ€åºã3åã®1ã®ããã«èŠããŠããŸããŸããã¡ãŒã¿ãŒã¯ä»£ããã«ãã®å®éã®ããŒãªã³ã°åž¯åã«åãããŠã¹ã±ãŒãªã³ã°ãããŠããŸãïŒ
| çã®ãã£ãªã¢ãã¥ãŒã㣠| ã¡ãŒã¿ãŒ | è¿æ¥åºŠ |
|---|---|---|
| 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åãµã³ããªã³ã°ããŸãââèªãã®ãã£ãªã¢ããªã³ã«ããããšã¯äžåãããŸããã
ãã®åäžã®ããããååãªéãã§ãµã³ããªã³ã°ãããšã2ã€ã®ç¬ç«ããä¿¡å·ãåŸãããŸãïŒ```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ïŒæãç°¡åïŒ
-
Releases ããŒãžããé©åãª
.fapãå ¥æããŸã:ã䜿ãã®ãã¡ãŒã ãŠã§ã¢ ãã¡ã€ã« å ¬åŒ / æšæº specter.fapUnleashedãRogueMasterãMomentum ãŸãã¯ãã以éã®ãã® specter-fw-dev.fapFlipper ã«
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` | ããŒã¯ / ã³ã³ã¿ã¯ãããªã»ãã |
| | `OKé·æŒã` | çŸåšã®èªã¿åãå€ããã°ã«èšé² |
| | `LEFT` | ãã€ãºããã¢ããã£ãªãã¬ãŒã·ã§ã³ïŒ3ç§ïŒ |
| **Fingerprint** | `OK` | çºèŠããã°ããã¯ã«ä¿å |
| | `OKé·æŒã` | 枬å®ãåé |
| **Site Survey** | `OK` | ãµãŒãã€ãå床å®è¡ |
| **Watch Mode** | `OK` | åã¢ãŒã ïŒã«ãŠã³ããšæèšãã¯ãªã¢ïŒ |
| *ã©ãã§ã* | `BACK` | 1ã€äžã®ã¬ãã«ãž |
---
## ð¬ æ£çŽãªå¶éäºé
- **13.56 MHzïŒHFïŒã®ã¿ã** Specter 㯠**NFC 垯å**ãæç¥ããŸã â ããã¯éæ¥è§Šæ±ºæžã¹ãããŒãã»ãšãã©ã®ææ°ã®ã¢ã¯ã»ã¹ãªãŒããŒãäº€éæ©é¢ãããã«ã®ãªãŒããŒã䜿çšãã垯åã§ãã**125 kHzïŒLFïŒ** ã®ãªãŒããŒïŒæ§åã® HID Prox / EM4100 ãã¢ããã«ïŒã¯**èŠããŸãã**ãFlipper ã® LF çµè·¯ã«ã¯åçã®ãã£ãŒã«ãæ€åºãããããããŸããã
- **ãªãŒããŒãèªã¿åããã®ã§ã¯ãªãããªãŒããŒã®*ãã£ãªã¢*ãæç¥ããŸãã** Specter 㯠*ã¢ã¯ãã£ããªãªãŒããŒãããã«ãããããããã©ã®ãããè¿ãã«ãããã©ã®ãããªãªãºã ã§ããŒãªã³ã°ããŠããã* ãäŒããŸã â ãªãŒããŒãè¡ãããšããã³ãŒããèå¥ããŸãã¯ãã£ããã£ããããšã¯ãããŸããã
- **匷床ã¯çžå¯Ÿçã§ããããã£ãªãã¬ãŒã·ã§ã³ãããŠããŸããã** `FIELD %` ãšè¿æ¥åºŠã瀺ãèšèã¯ãã¹ã€ãŒãã®ããã®æ¯èŒçãªãè¿ã / é ããã¬ã€ãã§ãããcm åäœã®æž¬å®è·é¢ã§ã¯ãããŸãããããã¯ãå
žåçãªããŒãªã³ã°åž¯åã«å¯Ÿãããã£ãªã¢ã®ãã¥ãŒãã£ãµã€ã¯ã«ã®*ã¹ã±ãŒãªã³ã°ããã*èªã¿åãå€ã§ãïŒ[ã¡ãŒã¿ãŒã®èªã¿æ¹](#-reading-the-meter--fixed-in-23) ãåç
§ïŒãç°åžžã«ãŸã°ãã«ããŒãªã³ã°ãããªãŒããŒã¯ãåãè·é¢ã§ãäœãèªã¿åãããé£ç¶æ³¢ã¢ãŒãã®ãã®ã¯ããé ãããããŒã¯ã«éããŸãã
- **ã¡ãŒã¿ãŒã«ã¯äžéããããŸãã** `MAX` ã¯ããã£ãªã¢ããã®ãªãŒããŒãç¶æã§ããæå€§éãŸã§äžãã£ãŠããããšãæå³ããŸã â ãã®å
ã§ã¯ãè¿ã¥ããŠãå®éã«ã¯ãã倧ããªæ°å€ãçæã§ããŸããã代ããã« `PK` ããŒã¯ããŒã«ãã䜿çšããŠäœçœ®ãæ¯èŒããŠãã ããã
- **ãªãºã ã®åè§£èœã¯çŽ 2 ms ã§ãã** ããã¯ãµã³ããªã³ã°åšæã§ããããã«è¿ãã¿ã€ãã³ã°ã¯ **`~`** ä»ãã§è¡šç€ºãããä¿¡é ŒåºŠã¯ããã«å¿ããŠå²ãåŒãããŸã â Specter ã¯ãè£ä»ãã§ããªãæ£ç¢ºã«èŠããæ°å€ãåŒçšããããããèªèº«ã®åè§£èœã®éçãæç€ºããããšãéžã³ãŸãã
- **`CLEAN` ã¯ãéžæããæåºŠã§ã®ã¯ãªãŒã³ãæå³ããŸãã** å®éã®ã¿ããã§ã®ã¿èµ·åããäŒç äžã®ã¹ãããŒããã·ãŒã«ãããããã®ã¯ã*ã©ã®*ãããå€ã§ãèŠããŸãããèªã¿åãããªãããšã¯ãååšããªãããšã®ä¿èšŒã§ã¯ãããŸããã
- **äžåºŠã«1ã€ã®ç¡ç·ã®ã¿ã** 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.png | 2560Ã800 | README ããããŒïŒRetina ã§é®®æã«ä¿ã€ãã 2 åïŒ |
images/social-preview.png | 1280Ã640 | èšå® â ãœãŒã·ã£ã«ãã¬ãã¥ãŒ â 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 ãŠã©ããããã°)ã**[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