catarrh
ed25fcecf5
Fix APDU/SPI/SW decoder bugs per TS 102 221/TS 102 225; bump to 1.10.0
...
Spec-correctness release, verified against TS 102 221 V18.2.0 and
TS 102 225 §5.1.1:
- SPI1 ciphering bit: b3 (0x04), not b4 (0x08) — both the SPI dict
and the KIc-unused check. Real MegaFon captures (SPI1=16) decoded
as unciphered with "KIc unused" before this fix.
- SPI2 PoR-ciphering bit: b5 (0x10), not b6 (0x20); add por_transport
field from SPI2 b6 (SMS-DELIVER-REPORT vs SMS-SUBMIT).
- SW table: add UICC-specific SWs 62F1/F2/F3, 63F1/F2, 6401, 9300
(SAT busy), 9850, 9862/63/64; fix 6500 text ("NV memory changed");
91XX now decodes as "Proactive command pending" via pattern.
- 63CX no longer hardcoded as PIN failure — exact 63F1/F2 entries take
precedence; all other 63CX route through one verification-retry
pattern (_SW_PATTERNS dict → ordered list).
- APDU_SPEC: +9 commands (D7/DD odd-INS update, D2 write record,
82 external auth, 86/87 general auth, 22 MSE, 0E/0C erase, 7C LSI).
- decode_cla: proper ISO 7816-4 §5.1.1 coding — SM bits b4-b3,
chain bit b5, further-interindustry channel offset (+4).
Tests: +27 (TestSwUiccSpecific, TestSpiBits, TestApduSpecCoverage,
TestClaDecode) — 279 total. SW cache bumped to simtrace-analyser-v12.
2026-08-21 22:41:16 +03:00
catarrh
f75a4a4183
Bump version to 1.9.0
2026-08-20 23:13:21 +03:00
catarrh
8cb6c4d547
Bump version to 1.8.0
2026-08-19 18:01:12 +03:00
catarrh
342167fb52
Bump version to 1.7.0
2026-08-19 01:41:16 +03:00
catarrh
7b4f192a48
Bump version to 1.6.0
2026-08-18 23:31:36 +03:00
catarrh
42580d8999
Bump version to 1.5.0
2026-08-17 01:09:17 +03:00
catarrh
a056acb753
Bump version to 1.4.0
2026-08-16 22:18:24 +03:00
catarrh
143e1854e2
Add ATR/PPS + SMS TPDU decoding, command summaries, SW column
...
- Decode ATR (convention, interface bytes, historical, TCK) and PPS (Fi/Di, PCK)
- Decode ENVELOPE SMS-PP DOWNLOAD + SEND SHORT MESSAGE TPDU: SCTS, VP,
DCS/PID, UDH IEIs, best-effort 8-bit text
- Fix Duration data object ([time unit][interval], not a 16-bit int)
- List view: command summary instead of raw hex, SW column, raw APDU
first line in detail view
- Expand FID tables (full pySim USIM/ISIM/SIM set) + context-aware
SELECT-path resolution (7FFF = current ADF)
- Fix SELECT P1 names (0x09 = path from current DF)
- Bump version to 1.3.0
2026-08-15 21:24:50 +03:00
catarrh
24d0decd51
Add --capture disabled mode + capture-mode status in PWA
...
Server:
- --capture accepts 'disabled'; no backend is created, capture_mode exposed
- /api/status returns capture_mode; capture start/stop return 403 when
disabled; latest/status/delete_session are None-safe
PWA:
- captureMode state; conn-status shows server version
- new capture-mode line (Settings) explaining gsmtap/direct/disabled
- hide capture + New capture UI when disabled; trace empty-state shows
'Capture unavailable'
- 7 new EN/RU i18n keys
Version 1.2.0 (server + PWA); tests: 111.
2026-08-14 23:49:10 +03:00
catarrh
b900a8a3e1
Merge simtrace-analyser PWA into frontend/ (monorepo); serve it same-origin
...
- frontend/: simtrace-analyser PWA (index.html, sw.js, manifest.json,
icons, tests/index.test.html) copied in fresh
- server.py: static file serving (_STATIC_MIME, _serve_static) with
path-traversal guard; injects window.SIMTRACE_EMBEDDED='1' into
index.html so the PWA defaults to a relative API base
- server __main__: --web-dir (default <repo>/frontend)
- frontend: embedded same-origin mode; sw.js relative precache paths +
cache v4; GitHub link + version-warn point at simtrace2-pysniff
- version 1.1.0 everywhere (__version__, pyproject, PWA_VERSION,
manifest); MIN_SERVER_VERSION stays 1.0.0
- README/scripts/.gitignore updated
Tests: 107.
2026-08-14 16:26:28 +03:00
catarrh
8b7b10b8fa
Version 1.0.0; expose version in /api/status
...
First published version. __version__ and pyproject bumped to 1.0.0,
/api/status now returns 'version' so the PWA can check compatibility.
Tests: 107 (status includes version, package version).
2026-08-14 10:24:24 +03:00
catarrh
17eeda27f3
Merge simtrace-analyser-server into simtrace2_pysniff.server
...
Add simtrace2-pysniff-server CLI — HTTP API for simtrace-analyser PWA.
Two capture modes: GSMTAP UDP listener (compatible with simtrace2-sniff)
or direct SIMtrace2 hardware capture. SQLite storage with sessions +
messages tables. REST API with CORS.
server/ sub-package: database.py, capture.py, server.py, __main__.py
README updated with server usage section.
pyproject.toml: simtrace2-pysniff-server script entry added.
2026-08-12 15:59:51 +03:00
catarrh
73b0277ef7
Initial commit: simtrace2-pysniff v0.1.0
...
Python-based SIMtrace2 sniffer — drop-in replacement for simtrace2-sniff.
Single dependency (pyusb), auto-reconnect, GSMTAP/PCAP output, library API.
Modules:
protocol.py — SIMtrace2 USB sniffing protocol parser
device.py — USB discovery + SniffSession with exponential backoff reconnect
gsmtap.py — GSMTAP UDP sender for Wireshark
pcap.py — PCAP file writer (LINKTYPE_GSMTAP)
dump.py — hex dump formatters + file output
__main__.py — CLI entry point
Startup script sniff-start.sh handles udev permission checks and shows
install instructions. udev rule uses TAG+=uaccess (systemd-logind ACL).
2026-08-10 23:17:04 +03:00