______ *
\ \\
\----\\ *
\----\\
* \----\\______
\----\\ / \
/_\----\\_/ \
\ ▄█▓█▄ \ \
//\ █▓▓▓▓▓█ \ /
$$\ $$\ $$$$$$\ $$$$$$$$\ $$$$$$$$\ $$$$$$\ \| \_▀█▓█▀___\_/ *
$$$\ $$ |$$ __$$\\__$$ __|$$ _____|$$ __$$\ + \----\\
$$$$\ $$ |$$ / $$ | $$ | $$ | $$ / \__| \----\\
$$ $$\$$ |$$ | $$ | $$ | $$$$$\ \$$$$$$\ \----\\
$$ \$$$$ |$$ | $$ | $$ | $$ __| \____$$\ * \----\\
$$ |\$$$ |$$ | $$ | $$ | $$ | $$\ $$ | \____\\
$$ | \$$ | $$$$$$ | $$ | $$$$$$$$\ \$$$$$$ | *
\__| \__| \______/ \__| \________| \______/ *
---------------------------------------------------------
HOME | TOR | GITHUB | NOTES | ABOUT | CONTACT | LOGIN
---------------------------------------------------------
+--------------------+-------------+---------------------+------+---------+-----+
| TOUCHTUNES_JUKEBOX | KESTREL_BLE | CHEMION_LED_GLASSES | MATH | IRIDIUM | LTE |
++---------------------------+-----------------+-----------------+-------------++
| DUMPING_NRF51822_FIRMWARE | YAESU_VX-7R_RPi | UNIPAGER POCSAG | MMDVM_GM300 |
+---------------------------+-----------------+-----------------+-------------+
██╗██████╗ ██╗██████╗ ██╗██╗ ██╗███╗ ███╗
██║██╔══██╗██║██╔══██╗██║██║ ██║████╗ ████║
██║██████╔╝██║██║ ██║██║██║ ██║██╔████╔██║
██║██╔══██╗██║██║ ██║██║██║ ██║██║╚██╔╝██║
██║██║ ██║██║██████╔╝██║╚██████╔╝██║ ╚═╝ ██║
╚═╝╚═╝ ╚═╝╚═╝╚═════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝
//=====< 2021-05-02T12:24:54+00:00 >===============================================\\
|| ||
|| こんにちは! 再び! :D ||
|| ||
|| == INTRO == ||
|| ||
|| Let’s get with the times and do some 25th century space phreaking and ||
|| learn how to decode Iridium sat phones! :3 ||
|| ||
|| This is going to be one of those “Noir” write-ups so please understand ||
|| what I’m about to explain may be unlawful. Please treat this document as ||
|| an educational/entertainment piece and make good decisions with this ||
|| knowledge. The disclaimer below outlines what laws may apply to decoding ||
|| Iridium communications so please read through it. ||
|| ||
|| Any who, I hope you get to learn something fun here and happy hacking! :D ||
|| ||
|| ||
|| == Disclaimer == ||
|| ||
|| Some of the practices and methods described in write up may be illegal ||
|| in your area. Even though Iridium transmits in plain text it still may ||
|| be considered a crime to record and decode. Please use your better ||
|| judgment while playing with this tech. If you live in the US please ||
|| review the “Wiretap Act” before continuing. ||
|| ||
|| 18 U.S. Code § 2511. Interception and disclosure of wire, oral, or ||
|| electronic communications prohibited. ||
|| █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ ||
|| █ (1) Except as otherwise specifically provided in this chapter any █░░ ||
|| █ person who--- █░░ ||
|| █ █░░ ||
|| █ (a) intentionally intercepts, endeavors to intercept, or procures █░░ ||
|| █ any other person to intercept or endeavor to intercept, any █░░ ||
|| █ wire, oral, or electronic communication; █░░ ||
|| █ (b) intentionally uses, endeavors to use, or procures any other █░░ ||
|| █ person to use or endeavor to use any electronic, mechanical, █░░ ||
|| █ or other device to intercept any oral communication when █░░ ||
|| █ █░░ ||
|| █ (i) such device is affixed to, or otherwise transmits a █░░ ||
|| █ signal through, a wire, cable, or other like connection █░░ ||
|| █ used in wire communication; or █░░ ||
|| █ (ii) such device transmits communications by radio, or █░░ ||
|| █ interferes with the transmission of such communication; █░░ ||
|| █ or █░░ ||
|| █ (iii) such person knows, or has reason to know, that such █░░ ||
|| █ device or any component thereof has been sent through the █░░ ||
|| █ mail or transported in interstate or foreign commerce; or █░░ ||
|| █ (iv) such use or endeavor to use (A) takes place on the █░░ ||
|| █ premises of any business or other commercial █░░ ||
|| █ establishment the operations of which affect interstate █░░ ||
|| █ or foreign commerce; or (B) obtains or is for the purpose █░░ ||
|| █ of obtaining information relating to the operations of █░░ ||
|| █ any business or other commercial establishment the █░░ ||
|| █ operations of which affect interstate or foreign █░░ ||
|| █ commerce; or █░░ ||
|| █ (v) such person acts in the District of Columbia, the █░░ ||
|| █ Commonwealth of Puerto Rico, or any territory or █░░ ||
|| █ possession of the United States; █░░ ||
|| █ █░░ ||
|| █ (c) intentionally discloses, or endeavors to disclose, to any █░░ ||
|| █ other person the contents of any wire, oral, or electronic █░░ ||
|| █ communication, knowing or having reason to know that the █░░ ||
|| █ information was obtained through the interception of a wire, █░░ ||
|| █ oral, or electronic communication in violation of this █░░ ||
|| █ subsection; █░░ ||
|| █ (d) intentionally uses, or endeavors to use, the contents of any █░░ ||
|| █ wire, oral, or electronic communication, knowing or having █░░ ||
|| █ reason to know that the information was obtained through the █░░ ||
|| █ interception of a wire, oral, or electronic communication in █░░ ||
|| █ violation of this subsection; or █░░ ||
|| █ (e) (i) intentionally discloses, or endeavors to disclose, to any █░░ ||
|| █ other person the contents of any wire, oral, or electronic █░░ ||
|| █ communication, intercepted by means authorized by sections █░░ ||
|| █ 2511(2)(a)(ii), 2511(2)(b)(c), 2511(2)(e), 2516, and 2518 of █░░ ||
|| █ this chapter, (ii) knowing or having reason to know that the █░░ ||
|| █ information was obtained through the interception of such a █░░ ||
|| █ communication in connection with a criminal investigation, █░░ ||
|| █ (iii) having obtained or received the information in █░░ ||
|| █ connection with a criminal investigation, and (iv) with intent █░░ ||
|| █ to improperly obstruct, impede, or interfere with a duly █░░ ||
|| █ authorized criminal investigation, █░░ ||
|| █ █░░ ||
|| █ shall be punished as provided in subsection (4) or shall be subject to █░░ ||
|| █ suit as provided in subsection (5). █░░ ||
|| █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█░░ ||
|| ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ||
|| Source: https://www.law.cornell.edu/uscode/text/18/2511 ||
|| ||
|| ||
|| == IRIDIUM == ||
|| ||
|| With out getting too far into the weeds about how Iridium works here’s a ||
|| quick summery on it’s characteristics… ||
|| ||
|| -> Security: Iridium doesn't make use of encryption within ||
|| the spec so data in transit is plain text. Encryption can be ||
|| implemented by venders however it’s used outside of the spec. ||
|| -> Freq Range: 1.6160GHz -> 1.6265GHz ||
|| -> Channels: 240 in total, 31.5KHz Bandwidth, 41.667KHz Spacing ||
|| -> Modulation: DEQPSK ||
|| -> Symbol Rate: 25k ||
|| -> Voice: AMBE vocoder by Digital Voice System Inc. ||
|| -> Each Sat covers a 4500km^2 area ||
|| -> Each Sat has 48 spot beams for focused links ||
|| (covers 400km^2 per beam) ||
|| ||
|| 12 Frequency access bands reserved for simplex ring alert and messaging ||
|| channels ||
|| ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ||
|| █ CHANNEL NUMBER █ CENTER FREQUENCY █ ALLOCATION █░░ ||
|| █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█░░ ||
|| █ 1 █ 1626.020833 MHz █ Guard Channel █░░ ||
|| █ 2 █ 1626.062500 MHz █ Guard Channel █░░ ||
|| █ 3 █ 1626.104167 MHz █ Quaternary Messaging █░░ ||
|| █ 4 █ 1626.145833 MHz █ Tertiary Messaging █░░ ||
|| █ 5 █ 1626.187500 MHz █ Guard Channel █░░ ||
|| █ 6 █ 1626.229167 MHz █ Guard Channel █░░ ||
|| █ 7 █ 1626.270833 MHz █ Ring Alert █░░ ||
|| █ 8 █ 1626.312500 MHz █ Guard Channel █░░ ||
|| █ 9 █ 1626.354167 MHz █ Guard Channel █░░ ||
|| █ 10 █ 1626.395833 MHz █ Secondary Messaging █░░ ||
|| █ 11 █ 1626.437500 MHz █ Primary Messaging █░░ ||
|| █ 12 █ 1626.479167 MHz █ Guard Channel █░░ ||
|| █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█░░ ||
|| ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ||
|| ||
|| More information regarding Iridium can be found here... ||
|| Video: https://www.youtube.com/watch?v=cvKaC4pNvck ||
|| Wiki: https://www.sigidwiki.com/wiki/Iridium ||
|| Frame Format: https://wiki.muc.ccc.de/iridium:toolkit#frame_format ||
|| ||
|| ||
|| == HARDWARE == ||
|| ||
|| Below is the hardware I used to successfully capture Iridium packets. ||
|| ||
|| -> RPI 4 ||
|| -> Nooelec NESDR SMArTee (RTL2832U with TXCO and an “always-on” ||
|| Bias Tee) ||
|| -> Nuand BT-200 LNA (Low Noise Amplifier) ||
|| -> 1.6GHz QFH Antenna (Custom, also has a bunny ear ground plane! :D) ||
|| ||
|| Image: Receiver Setup ||
|| ||
|| If you want to save money with the antenna and LNA, you can hack a $10 ||
|| active GPS antenna by removing the filter and bridging the transmission ||
|| line (Or replacing it with an L-Band filter). The image below is an ||
|| example of a hacked GPS antenna. ||
|| ||
|| Image: Hacked GPS Antenna ||
|| ||
|| Just a heads up but your mileage may very. Because these active antennas ||
|| are built cheaply they may fail right after you mod it. For your reference ||
|| the image bellow shows what a bad active antenna looks like in a FFT with ||
|| the Bias Tee on. ||
|| ||
|| Image: Bad Antenna ||
|| ||
|| ||
|| == SOFTWARE == ||
|| ||
|| As mentioned above I’m using a Rpi 4 with the latest RPi OS Lite build. ||
|| The apt packages below are what I used to get the RTL-SDR and the ||
|| gr-iridium software to work. This is RPi OS specific however there may be ||
|| some carry over with what’s below if you’re using another Debian flavored ||
|| Linux (Ubuntu, Kali, etc). ||
|| ||
|| Install the basics ||
|| █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ ||
|| █ $ sudo apt update █░░ ||
|| █ $ sudo apt upgrade █░░ ||
|| █ $ sudo apt install git rtl-sdr gnuradio gr-osmosdr python3-numpy █░░ ||
|| █ pypy cmake swig3.0 bison flex unp p7zip-full python-pip screen █░░ ||
|| █ $ pip install matplotlib █░░ ||
|| █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█░░ ||
|| ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ||
|| ||
|| Next lets install the gr-iridium software ||
|| █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ ||
|| █ $ git clone https://github.com/muccc/gr-iridium █░░ ||
|| █ $ cd gr-iridium █░░ ||
|| █ $ git checkout maint-3.7 // RPi OS uses GNU Radio 3.7 █░░ ||
|| █ $ mkdir build █░░ ||
|| █ $ cd build █░░ ||
|| █ $ cmake .. █░░ ||
|| █ $ make █░░ ||
|| █ $ sudo make install █░░ ||
|| █ $ sudo iridium-extractor -h // Check to see if █░░ ||
|| █ // iridium-extractor works █░░ ||
|| █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█░░ ||
|| ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ||
|| ||
|| To decode the packets captured by gr-iridium you’ll need Iridium Toolkit ||
|| and the AMBE decoder if you want to decode voice. You have two options for ||
|| the AMBE decoder, you can either install the open source version ||
|| (osmo-ir77) or rip the codec from commercial firmware. I’ve had more ||
|| success with ripping the codec, however I’ll go over both processes. ||
|| ||
|| First lets download the Iridium Toolkit ||
|| █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ ||
|| █ $ git clone https://github.com/muccc/iridium-toolkit █░░ ||
|| █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█░░ ||
|| ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ||
|| ||
|| [Voice Option 1] ||
|| The following outlines what you need to do to get the Osmo AMBE decoder ||
|| installed. This is needed for stats-voc.py from the iridium-toolkit which ||
|| will play Iridium voice. ||
|| █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ ||
|| █ $ git clone http://git.osmocom.org/osmo-ir77 // Download AMBE █░░ ||
|| █ // decoder █░░ ||
|| █ $ cd osmo-ir77/codec █░░ ||
|| █ $ make // Compile AMBE █░░ ||
|| █ // decoder █░░ ||
|| █ $ export PATH=$PATH:/home/pi/osmo-ir77/codec/ // Export bin █░░ ||
|| █ // to path █░░ ||
|| █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█░░ ||
|| ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ||
|| ||
|| [Voice Option 2] ||
|| To rip the codec which is my preferred method you’ll need to do the ||
|| following. ||
|| █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ ||
|| █ $ cd iridium-toolkit/ambe_emu/ █░░ ||
|| █ $ wget https://bad-radio.solutions/files/ █░░ ||
|| █ IRDM_9601_UpgradTool_TD10003_FIRMWARE.zip █░░ ||
|| █ $ ./mk_objdump.sh █░░ ||
|| █ $ ./get_binary.sh █░░ ||
|| █ $ make all █░░ ||
|| █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█░░ ||
|| ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ||
|| ||
|| ||
|| == USAGE == ||
|| ||
|| Capture and Demodulate Iridium Frames ||
|| █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ ||
|| █ $ sudo iridium-extractor -D 4 ~/gr-iridium/examples/rtl-sdr.conf | █░░ ||
|| █ grep "A:OK" > output.bits █░░ ||
|| █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█░░ ||
|| ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ||
|| ||
|| Poor man’s headless operations so you don’t kill the process when you ||
|| log off. ||
|| █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ ||
|| █ $ screen // Ctrl+a d Detach without closing screen █░░ ||
|| █ // Crtl+d Kill current screen █░░ ||
|| █ $ sudo iridium-extractor -D 4 ~/gr-iridium/examples/rtl-sdr.conf | █░░ ||
|| █ grep "A:OK" > output.bits █░░ ||
|| █ $ screen -r // List screen sessions or reconnect if █░░ ||
|| █ // only one’s active █░░ ||
|| █ $ screen -r [pid.]tty.host // Connect to spasific screen █░░ ||
|| █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█░░ ||
|| ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ||
|| ||
|| Parse Iridium Frames [Required before decoding] ||
|| █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ ||
|| █ $ pypy ~/iridium-toolkit/iridium-parser.py output.bits > █░░ ||
|| █ output.parsed █░░ ||
|| █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█░░ ||
|| ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ||
|| ||
|| Decode Messages ||
|| █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ ||
|| █ $ ~/iridium-toolkit/reassembler.py -i output.parsed -m [MODE] █░░ ||
|| █ // Modes █░░ ||
|| █ // ida - outputs Um Layer 3 messages as hex █░░ ||
|| █ // lap - GSM-compatible L3 messages as GSMtap compatible .pcap █░░ ||
|| █ // page - paging requests (Ring Alert Channel) █░░ ||
|| █ // msg - Pager messages █░░ ||
|| █ // sbd - Short Burst Data messages █░░ ||
|| █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█░░ ||
|| ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ||
|| ||
|| Decode Voice [Option 1] ||
|| █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ ||
|| █ $ ~/iridium-toolkit/stats-voc.py output.parsed █░░ ||
|| █ // Requires X display, left click on red dot to play audio. █░░ ||
|| █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█░░ ||
|| ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ||
|| ||
|| Decode Voice [Option 2] ||
|| █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ ||
|| █ $ grep “VOC” output.parsed > voc.bits // Copy over VOC █░░ ||
|| █ // frames to voc.bits █░░ ||
|| █ $ pypy ~/iridium-toolkit/bits_to_dfs.py voc.bits voc.dfs █░░ ||
|| █ // Convert the VOC █░░ ||
|| █ // frames to dfs █░░ ||
|| █ $ ~/iridium-toolkit/ambe_emu/ambe -w voc.dfs // dfs to wav █░░ ||
|| █ $ play voc.wav // Play wav █░░ ||
|| █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█░░ ||
|| ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ||
|| ||
|| ||
|| == CONCLUSION == ||
|| ||
|| This was just a quick and dirty example on how you can surf the waves of ||
|| SIN by poking around Iridium! :D ||
|| ||
|| I encourage you to read up on Iridium and to review the source code to ||
|| see how this all works. I would also like to thank the MUCCC for ||
|| maintaining this code and making this possible for us to explore satellite ||
|| communications! ||
|| ||
|| Until we meet again, happy hacking! ||
|| -- NotPike ||
|| ||
\\=================================================================================//
\
\ ^__^
\ (0o)\_______
(__)\ )\/\
U ||----w |
|| ||