Created
May 22, 2016 18:12
-
-
Save motleytech/a73b0784c9ee263e3a1a9ff8d2bfed87 to your computer and use it in GitHub Desktop.
capturing elevator music udp mp3 data using python
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# from the reddit post | |
# https://www.reddit.com/r/programming/comments/4kdmmb/reverse_engineering_a_mysterious_udp_stream_in_my/ | |
import socket | |
import struct | |
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) | |
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) | |
s.bind(('', 2046)) | |
mreq = struct.pack("4sl", socket.inet_aton("234.0.0.2"), socket.INADDR_ANY) | |
s.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq) | |
while True: | |
data = s.recv(2048) | |
print(data) | |
############################### | |
# write data with different offsets to separate files to find the format | |
data = s.recv(2048) | |
for i in range(25): | |
open("test{}".format(i), "wb+").write(data[i:]) | |
############################### | |
$ file test* | |
test0: data | |
test1: UNIF v-16624417 format NES ROM image | |
test10: UNIF v-763093498 format NES ROM image | |
test11: UNIF v-1093499874 format NES ROM image | |
test12: data | |
test13: TTComp archive, binary, 4K dictionary | |
test14: data | |
test15: data | |
test16: UNIF v-1939734368 format NES ROM image | |
test17: UNIF v-1198759424 format NES ROM image | |
test18: UNIF v-256340894 format NES ROM image | |
test19: UNIF v-839862132 format NES ROM image | |
test2: UNIF v-67173804 format NES ROM image | |
test20: data | |
test21: data | |
test22: data | |
test23: DOS executable (COM, 0x8C-variant) | |
test24: COM executable for DOS | |
test3: UNIF v-1325662462 format NES ROM image | |
test4: data | |
test5: data | |
test6: data | |
test7: data | |
test8: MPEG ADTS, layer III, v1, 192 kbps, 44.1 kHz, JntStereo | |
test9: UNIF v-2078407168 format NES ROM image | |
################################################## | |
while True: | |
data = s.recv(2048) | |
sys.stdout.buffer.write(data[8:]) | |
################################################# | |
$ python3 listen_2046.py > test.mp3 | |
* wait a little to get a recording * | |
^C | |
$ mplayer test.mp3 | |
MPlayer (C) 2000-2016 MPlayer Team | |
224 audio & 451 video codecs | |
Playing test.mp3. | |
libavformat version 57.25.100 (external) | |
Audio only file format detected. | |
===== | |
Starting playback... | |
A: 3.9 (03.8) of 13.0 (13.0) 0.7% |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment