• Stars
    star
    473
  • Rank 92,832 (Top 2 %)
  • Language
    Python
  • Created almost 10 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A set of tools to parse Iridium frames

Simple toolkit to decode Iridium signals

Requisites

  • Python (3.7+) (may work with older 3.x, but this is untested)
  • NumPy (scipy)
  • crcmod

License

Unless otherwise noted in a file, everything here is (c) Sec & schneider and licensed under the 2-Clause BSD License

Example usage

Either extract some Iridium frames from the air or a file using gr-iridium (recommended) or use the legacy code located in the extractror-python directory if you don't want to install GNURadio (not recommended).

It is assumed that the output of the extractor has been written to output.bits. Iridium frames can be decoded with

python3 iridium-parser.py -p output.bits

if you want to speed up that step you can install pypy and instead run

pypy3 iridium-parser.py -p output.bits

Frame extraction

See gr-iridium (recommended) or extractor-python (not recommended) on how to extract Iridium frames from raw data.

Voice Decoding

To listen to voice calls, you will need an AMBE decoder. There are two option:

The easier option is to use tnt's AMBE decoder. You can use the extracted decoder if you want to create bit correct output. There almost no audible difference between the two options. Make sure that either ir77_ambe_decode or ambe is in your PATH. Also select the installed one in play-iridium-ambe.

Make sure that the main folder of the toolkit is in your PATH variable: export PATH=$PATH:<this directory>

Steps to decode voice:

  • Decode your captured and demodulated bits using iridium-parser and put the result into a file: pypy iridium-parser.py output.bits > output.parsed
  • Use stats-voc.py to see streams of captured voice frames: ./stats-voc.py output.parsed
  • Click once left and once right to select an area. stats-voc.py will try do decode and play the selected samples using the play-iridium-ambe script.

Frame Format

Partial documentation: http://wiki.muc.ccc.de/iridium:toolkit#frame_format

Main Components

Parser

iridium-parser.py

Takes the demodulated bits and tries to parse them into a readable format.

Usage: (it is assumed that the output from gr-iridium is in output.bits)

iridium-parser.py [-p] [--harder] output.bits > output.parsed

Some Options:

  • -p - Only output frames parsed without errors (and error-correction)
  • --harder - Try extra hard to decode with the use of error-correction (very slow)
  • --uw-ec - Try to parse lines with errors inside iridium unique word (also slow)
  • --filter <classname> - Only decode frames of that class (e.g. IridiumRAMessage, IridiumBCMessage, etc.) (fast)

mkkml

mkkml

Converts IRA frames to a kml file to be viewed in google earth.

Run as grep ^IRA output.parsed |perl mkkml tracks > output.kml to display satellite tracks

Run as grep ^IRA output.parsed |perl mkkml heatmap > output.kml to create a heatmap of sat positions and downlink positions

Reassembler

reassembler.py

Takes the parsed bits (from iridium-parser.py) and reassembles them into higher level protocols.

Supports different modes with the -m option.

Usage: (it is assumed that the output from iridium-parser is in output.parsed)

reassembler.py -i output.parsed -m <mode>

Supported modes are currently:

  • ida - outputs Um Layer 3 messages as hex
  • idapp - same as above with some light parsing/pretty-printing
  • lap - GSM-compatible L3 messages as GSMtap compatible .pcap
  • page - paging requests (Ring Alert Channel)
  • msg - Pager messages
  • sbd - Short Burst Data messages
  • acars - parsed ACARS SBD messages
  • ppm - estimation of receiving SDRs PPM frequency offset

More Repositories

1

gr-iridium

Iridium burst detector and demodulator.
C++
357
star
2

WomoLIN

Open Source Steuerung von LIN Bus Geräten im Caravan Bereich.
HTML
71
star
3

sdr-workshop

Tools / documentation about SDR/gnuradio
39
star
4

flipdots

Everything related to our flipdot implementation
Python
28
star
5

darc

Python
19
star
6

millennium

Information and file-collection regarding the Nortel/Quortech Millennium payphones
C++
17
star
7

acab-streetlife

Scripts for an ACAB-Installation
Python
15
star
8

scrollback

scrollback buffer program for terminals
C
14
star
9

regeln

Regelvorschlag für den CCC München
5
star
10

ubd

Uberbus deamon
C
5
star
11

anzeigr

Info-Beamer based Infoscreen Playground
Lua
5
star
12

avr_theremin

A theremin built from a microcontroller and IR proximity sensors. Based on http://www.nerdkits.com/videos/theremin_with_ir_distance_sensor/
C
5
star
13

arm-workshop

C
5
star
14

netfbd

framebuffer streaming daemon
C
5
star
15

MucDuino

Nice Form Factor Arduino Nano Boards
5
star
16

m24lr

Python
4
star
17

elektronik

Repository der Elektronik Gruppe vom muCCC
C++
3
star
18

luftschleuse2

Second incarnation of our access system.
C
3
star
19

formica_rev1_muc

C
3
star
20

Packet-Radio

Raspi Packet Radio Modem
3
star
21

Banana-Display

Adapter Board Banana PI LVDS FPC to 30 Pin DF14 connector and Backlight connection
Eagle
3
star
22

cryptoparty-intro

Mit sehr vielen Fehlern versehenes Rätsel um Intro-Folien für eine Cryptoparty zu erstellen.
TeX
2
star
23

formica_environment

Setup a development environment for the formica firmware.
Shell
2
star
24

acab-27c3

talk about AllColoursAreBeautiful held at 27c3
2
star
25

uberbus

An IPv6 home automation project
C
2
star
26

mvglivestatic

A quick and easy way to display data from MVG-Live, created by fpletz
Python
2
star
27

tilda-nmap

Gespatial Network Map for EMFCamp
Python
2
star
28

Kraeuterchaos

Ein automatischer Blumenkasten, der sich selbst je nach Erdfeuchtigkeit selbst bewaessert und nebenbei noch weitere Messdaten zur Umgebung bereitstellt.
C++
2
star
29

abracadabra

external streaming for acab
Python
2
star
30

ubavahid

Shell
2
star
31

kapselfuehrung

automagische fuehrung durch die muenchner club raeume
1
star
32

WomoLIN-Sw-Displayunit

Software WomoLIN Displayunit
C
1
star
33

rad1o-infra

masterless puppet setup
Puppet
1
star
34

WomoLIN-Sw-SigUni

C++
1
star
35

ci

Non-project specific logos, logomat, images, slides and text fragments about muccc
Perl
1
star
36

asm17

Propaganda for ASM17
1
star
37

WomoLIN-Sw-MainUnit

C
1
star
38

talk-paranoia-internet

Vortrag "Gesunde Paranoia im Internet " im Rahmen von Chaos macht Schule
1
star
39

moodlamp-arm

New Moodlamp Version with Infineon XMC1202
Java
1
star
40

WomoLIN-Sw-PcSim

C++
1
star
41

wiki_kalenderscraper

Kalenderscraper fuer wiki.muc.ccc.de/kalender, Export zu .ics und .json
Python
1
star
42

fnordload

Code for the fnordload-cashloading device
Python
1
star
43

talk-adbk-osd

Talk about Free Knowledge at AdbK Munich's Open Source Day
JavaScript
1
star
44

acabspool

Python
1
star
45

spacefoo

ToDo Liste fuer unseren Space
1
star
46

PhotonQmicroSIM

A microSIM-Adapter for the Motorola PhotonQ
1
star