README: add SIMple as a GSMTAP-SIM source to the diagram

SIMple can stream its own ISO 7816 APDUs as GSMTAP-SIM packets (its --gsmtap
option), so it belongs beside the sniffers and the sigrok decoder.  The
diagrams get a compact SIMple block between the SIMtrace2 sniffers and the
sigrok_iso7816_stream boxes (they do not move): title SIMple, subtitle
"APDU -> GSMTAP", and its own arrow into the UDP :4729 listener.  It is
deliberately smaller than the primary sniffers, matching its role as a
secondary source.

The README alt text and the gsmtap capture-mode bullet/comment now list SIMple
as a source too (linked to its repository in the bullet).

Both languages; 558 Python + 80 Node tests; runtime zip rebuilt with the
updated diagrams.
This commit is contained in:
catarrh committed 2026-10-28 12:36:38 +03:00
1 parent f492f29ea6
commit 50dba20f04
4 files changed
+24 -12

No files matched your search

+5 -5
View File
@@ -13,7 +13,7 @@ GSMTAP into this analyser.
![SIMtrace Analyser UI](frontend.png) ![SIMtrace Analyser UI](frontend.png)
![Capture and analysis: SIMtrace2 hardware is read by simtrace2-pysniff or the original simtrace2-sniff, and FX2 hardware by the sigrok_iso7816_stream decoder; the sniffers and the decoder stream GSMTAP-SIM to the UDP :4729 listener. The server can also read SIMtrace2 hardware directly over USB with the bundled pysniff code in-process, and imports PCAP/COMPRION traces from files. simtrace-analyser-server decodes and stores the traffic in SQLite and serves the web UI](architecture_en.svg) ![Capture and analysis: SIMtrace2 hardware is read by simtrace2-pysniff or the original simtrace2-sniff, and FX2 hardware by the sigrok_iso7816_stream decoder; the sniffers, the decoder and SIMple stream GSMTAP-SIM to the UDP :4729 listener. The server can also read SIMtrace2 hardware directly over USB with the bundled pysniff code in-process, and imports PCAP/COMPRION traces from files. simtrace-analyser-server decodes and stores the traffic in SQLite and serves the web UI](architecture_en.svg)
## Prerequisites ## Prerequisites
@@ -115,8 +115,8 @@ simtrace-analyser-server --capture gsmtap
Open **http://127.0.0.1:8081/** in a browser. `Ctrl+C` stops the server. Open **http://127.0.0.1:8081/** in a browser. `Ctrl+C` stops the server.
- `--capture gsmtap` (default) — listen for GSMTAP-SIM on UDP 4729, e.g. from - `--capture gsmtap` (default) — listen for GSMTAP-SIM on UDP 4729, e.g. from
`simtrace2-pysniff`, the original `simtrace2-sniff` or `simtrace2-pysniff`, the original `simtrace2-sniff`,
`sigrok_iso7816_stream`; `sigrok_iso7816_stream` or [SIMple](https://github.com/anttro/simple);
- `--capture direct` — read SIMtrace2 hardware directly (the bundled sniffer - `--capture direct` — read SIMtrace2 hardware directly (the bundled sniffer
code runs inside the server and talks to the device over USB; needs PyUSB; code runs inside the server and talks to the device over USB; needs PyUSB;
Windows also needs the driver swap, see [USB Device Access](#usb-device-access)); Windows also needs the driver swap, see [USB Device Access](#usb-device-access));
@@ -135,8 +135,8 @@ bundled into the package on install) on the same origin. Three capture
modes: modes:
```sh ```sh
# Listen for GSMTAP from simtrace2-pysniff, the original simtrace2-sniff or # Listen for GSMTAP from simtrace2-pysniff, the original simtrace2-sniff,
# sigrok_iso7816_stream: # sigrok_iso7816_stream or SIMple:
simtrace-analyser-server --capture gsmtap simtrace-analyser-server --capture gsmtap
# Capture directly from SIMtrace2 hardware (the bundled sniffer code reads the # Capture directly from SIMtrace2 hardware (the bundled sniffer code reads the
+5 -5
View File
@@ -13,7 +13,7 @@ SIM/UICC из UDP-потока GSMTAP (или импортирует файлы
![Интерфейс SIMtrace Analyser](frontend.png) ![Интерфейс SIMtrace Analyser](frontend.png)
![Захват и анализ: оборудование SIMtrace2 читает simtrace2-pysniff или оригинальный simtrace2-sniff, а оборудование FX2 — декодер sigrok_iso7816_stream; оба источника передают GSMTAP-SIM слушателю UDP :4729. Сервер также может читать оборудование SIMtrace2 напрямую по USB встроенным кодом pysniff внутри сервера и импортирует трассы PCAP/COMPRION из файлов. simtrace-analyser-server декодирует и сохраняет трафик в SQLite и раздаёт веб-интерфейс](architecture_ru.svg) ![Захват и анализ: оборудование SIMtrace2 читает simtrace2-pysniff или оригинальный simtrace2-sniff, а оборудование FX2 — декодер sigrok_iso7816_stream; они и SIMple передают GSMTAP-SIM слушателю UDP :4729. Сервер также может читать оборудование SIMtrace2 напрямую по USB встроенным кодом pysniff внутри сервера и импортирует трассы PCAP/COMPRION из файлов. simtrace-analyser-server декодирует и сохраняет трафик в SQLite и раздаёт веб-интерфейс](architecture_ru.svg)
## Требования ## Требования
@@ -117,8 +117,8 @@ simtrace-analyser-server --capture gsmtap
сервер. сервер.
- `--capture gsmtap` (по умолчанию) — слушать GSMTAP-SIM на UDP 4729, - `--capture gsmtap` (по умолчанию) — слушать GSMTAP-SIM на UDP 4729,
например от `simtrace2-pysniff`, оригинального `simtrace2-sniff` или например от `simtrace2-pysniff`, оригинального `simtrace2-sniff`,
`sigrok_iso7816_stream`; `sigrok_iso7816_stream` или [SIMple](https://github.com/anttro/simple);
- `--capture direct` — читать оборудование SIMtrace2 напрямую (встроенный код - `--capture direct` — читать оборудование SIMtrace2 напрямую (встроенный код
сниффера работает внутри сервера и обращается к устройству по USB; нужен сниффера работает внутри сервера и обращается к устройству по USB; нужен
PyUSB; в Windows также нужна замена драйвера, см. PyUSB; в Windows также нужна замена драйвера, см.
@@ -138,8 +138,8 @@ simtrace-analyser-server --capture gsmtap
Три режима захвата: Три режима захвата:
```sh ```sh
# Слушать GSMTAP от simtrace2-pysniff, оригинального simtrace2-sniff # Слушать GSMTAP от simtrace2-pysniff, оригинального simtrace2-sniff,
# или sigrok_iso7816_stream: # sigrok_iso7816_stream или SIMple:
simtrace-analyser-server --capture gsmtap simtrace-analyser-server --capture gsmtap
# Захват напрямую с оборудования SIMtrace2 (встроенный код сниффера читает # Захват напрямую с оборудования SIMtrace2 (встроенный код сниффера читает
+7 -1
View File
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="960" height="640" viewBox="0 0 960 640" role="img" aria-labelledby="diagram-title diagram-desc" font-family="'Segoe UI', 'Helvetica Neue', Arial, 'DejaVu Sans', sans-serif"> <svg xmlns="http://www.w3.org/2000/svg" width="960" height="640" viewBox="0 0 960 640" role="img" aria-labelledby="diagram-title diagram-desc" font-family="'Segoe UI', 'Helvetica Neue', Arial, 'DejaVu Sans', sans-serif">
<title id="diagram-title">SIMtrace Analyser: capture and analysis</title> <title id="diagram-title">SIMtrace Analyser: capture and analysis</title>
<desc id="diagram-desc">SIMtrace2 hardware is read by simtrace2-pysniff (bundled) or the original simtrace2-sniff, and FX2 hardware by the sigrok_iso7816_stream decoder; the sniffers and the decoder stream GSMTAP-SIM to the listener on UDP :4729. The server can also read SIMtrace2 hardware directly over USB with the bundled sniffer code, and imports PCAP/COMPRION traces from files. simtrace-analyser-server decodes and stores the traffic in SQLite and serves the web UI.</desc> <desc id="diagram-desc">SIMtrace2 hardware is read by simtrace2-pysniff (bundled) or the original simtrace2-sniff, and FX2 hardware by the sigrok_iso7816_stream decoder; the sniffers, the decoder and SIMple stream GSMTAP-SIM to the listener on UDP :4729. The server can also read SIMtrace2 hardware directly over USB with the bundled sniffer code, and imports PCAP/COMPRION traces from files. simtrace-analyser-server decodes and stores the traffic in SQLite and serves the web UI.</desc>
<defs> <defs>
<marker id="arrow" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"> <marker id="arrow" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse">
<path d="M0 0 L10 5 L0 10 Z" fill="#64748b"/> <path d="M0 0 L10 5 L0 10 Z" fill="#64748b"/>
@@ -32,7 +32,13 @@
<text x="735" y="190" text-anchor="middle" font-size="14" font-weight="600" fill="#0f172a" font-family="'Cascadia Mono', Consolas, 'DejaVu Sans Mono', monospace">sigrok_iso7816_stream</text> <text x="735" y="190" text-anchor="middle" font-size="14" font-weight="600" fill="#0f172a" font-family="'Cascadia Mono', Consolas, 'DejaVu Sans Mono', monospace">sigrok_iso7816_stream</text>
<text x="735" y="212" text-anchor="middle" font-size="13" fill="#475569">decoder</text> <text x="735" y="212" text-anchor="middle" font-size="13" fill="#475569">decoder</text>
<!-- a secondary GSMTAP-SIM source: SIMple can stream its APDUs -->
<rect x="395" y="166" width="170" height="64" rx="12" fill="#ecfeff" stroke="#a5f3fc" stroke-width="1.5"/>
<text x="480" y="192" text-anchor="middle" font-size="16" font-weight="600" fill="#0f172a">SIMple</text>
<text x="480" y="212" text-anchor="middle" font-size="12" fill="#475569">APDU → GSMTAP</text>
<line x1="225" y1="246" x2="425" y2="278" stroke="#64748b" stroke-width="2" marker-end="url(#arrow)"/> <line x1="225" y1="246" x2="425" y2="278" stroke="#64748b" stroke-width="2" marker-end="url(#arrow)"/>
<line x1="480" y1="230" x2="480" y2="278" stroke="#64748b" stroke-width="2" marker-end="url(#arrow)"/>
<line x1="735" y1="246" x2="535" y2="278" stroke="#64748b" stroke-width="2" marker-end="url(#arrow)"/> <line x1="735" y1="246" x2="535" y2="278" stroke="#64748b" stroke-width="2" marker-end="url(#arrow)"/>
<!-- GSMTAP listener --> <!-- GSMTAP listener -->

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

+7 -1
View File
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="960" height="640" viewBox="0 0 960 640" role="img" aria-labelledby="diagram-title diagram-desc" font-family="'Segoe UI', 'Helvetica Neue', Arial, 'DejaVu Sans', sans-serif"> <svg xmlns="http://www.w3.org/2000/svg" width="960" height="640" viewBox="0 0 960 640" role="img" aria-labelledby="diagram-title diagram-desc" font-family="'Segoe UI', 'Helvetica Neue', Arial, 'DejaVu Sans', sans-serif">
<title id="diagram-title">SIMtrace Analyser: захват и анализ</title> <title id="diagram-title">SIMtrace Analyser: захват и анализ</title>
<desc id="diagram-desc">Оборудование SIMtrace2 читает simtrace2-pysniff (входит в комплект) или оригинальный simtrace2-sniff, а оборудование FX2 — декодер sigrok_iso7816_stream; оба источника передают GSMTAP-SIM слушателю UDP :4729. Сервер также может читать оборудование SIMtrace2 напрямую по USB встроенным кодом сниффера и импортирует трассы PCAP/COMPRION из файлов. simtrace-analyser-server декодирует и сохраняет трафик в SQLite и раздаёт веб-интерфейс.</desc> <desc id="diagram-desc">Оборудование SIMtrace2 читает simtrace2-pysniff (входит в комплект) или оригинальный simtrace2-sniff, а оборудование FX2 — декодер sigrok_iso7816_stream; они и SIMple передают GSMTAP-SIM слушателю UDP :4729. Сервер также может читать оборудование SIMtrace2 напрямую по USB встроенным кодом сниффера и импортирует трассы PCAP/COMPRION из файлов. simtrace-analyser-server декодирует и сохраняет трафик в SQLite и раздаёт веб-интерфейс.</desc>
<defs> <defs>
<marker id="arrow" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"> <marker id="arrow" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse">
<path d="M0 0 L10 5 L0 10 Z" fill="#64748b"/> <path d="M0 0 L10 5 L0 10 Z" fill="#64748b"/>
@@ -32,7 +32,13 @@
<text x="735" y="190" text-anchor="middle" font-size="14" font-weight="600" fill="#0f172a" font-family="'Cascadia Mono', Consolas, 'DejaVu Sans Mono', monospace">sigrok_iso7816_stream</text> <text x="735" y="190" text-anchor="middle" font-size="14" font-weight="600" fill="#0f172a" font-family="'Cascadia Mono', Consolas, 'DejaVu Sans Mono', monospace">sigrok_iso7816_stream</text>
<text x="735" y="212" text-anchor="middle" font-size="13" fill="#475569">декодер</text> <text x="735" y="212" text-anchor="middle" font-size="13" fill="#475569">декодер</text>
<!-- второй источник GSMTAP-SIM: SIMple умеет отдавать свои APDU -->
<rect x="395" y="166" width="170" height="64" rx="12" fill="#ecfeff" stroke="#a5f3fc" stroke-width="1.5"/>
<text x="480" y="192" text-anchor="middle" font-size="16" font-weight="600" fill="#0f172a">SIMple</text>
<text x="480" y="212" text-anchor="middle" font-size="12" fill="#475569">APDU → GSMTAP</text>
<line x1="225" y1="246" x2="425" y2="278" stroke="#64748b" stroke-width="2" marker-end="url(#arrow)"/> <line x1="225" y1="246" x2="425" y2="278" stroke="#64748b" stroke-width="2" marker-end="url(#arrow)"/>
<line x1="480" y1="230" x2="480" y2="278" stroke="#64748b" stroke-width="2" marker-end="url(#arrow)"/>
<line x1="735" y1="246" x2="535" y2="278" stroke="#64748b" stroke-width="2" marker-end="url(#arrow)"/> <line x1="735" y1="246" x2="535" y2="278" stroke="#64748b" stroke-width="2" marker-end="url(#arrow)"/>
<!-- слушатель GSMTAP --> <!-- слушатель GSMTAP -->

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB