[HN Gopher] I hacked SONOS and YouTube the same day ___________________________________________________________________ I hacked SONOS and YouTube the same day Author : lukastyrychtr Score : 162 points Date : 2022-02-03 17:54 UTC (5 hours ago) (HTM) web link (www.deadf00d.com) (TXT) w3m dump (www.deadf00d.com) | deadf00d wrote: | But wait... That's my article ! Thank you guys for reading and | sharing. I get so much great returns and kind messages. I'll keep | you updated for the app ! | lucas_v wrote: | Hmm... Your profile seems to be created about a minute before | this comment was posted. | alex_young wrote: | Don't people usually create profiles shortly before they | decide to post something for the first time? | [deleted] | robbedpeter wrote: | Well it's definitely unusual to do it after. | motoxpro wrote: | That's not strange. They saw the article/someone told them it | was here, they signed up to say thank you... | WillPostForFood wrote: | _a minute before this comment was posted_ | thatguy0900 wrote: | Yeah he should have preemptively made it yesterday to | comment on his article being posted by someone else today | deadf00d wrote: | Yeah, this has not been posted by me, but shared by a reader. | AmazingTurtle wrote: | makeworld wrote: | Interesting. I feel like the code could be simplified and be a | lot more resistant to YouTube changes by just using yt-dlp, and | selecting (or automatically extracting with ffmpeg) the audio- | only AAC format YouTube serves. That would get rid of the YouTube | request and MP4 parsing code. | X-Cubed wrote: | I'm not sure it would, as the article seems to say that Sonos | requires an ADTS container for the AAC audio, which YouTube | doesn't offer. So the app takes an MP4 container, filters its | contents to find the AAC audio blocks, then repacks them in an | ADTS container. | polishdude20 wrote: | Would the conversion of the MP4 be able to be done using ffmpeg? | mattmar96 wrote: | Yes, even as a stream. The author mentions that a streaming | conversion of mp4 to mp3 would be very difficult/impossible. I | actually built that exact system for a simple youtube->mp3 | downloader. FFMpeg can perform a streaming mp4->mp3 conversion. | See here: | https://github.com/matttt/youtubesampler/blob/master/main.js... | winternett wrote: | Every day I'm frustrated by apps that I know were once highly | simple and functional. | | The idea that we're paying for devices and apps that are | artificially limited and hobbled by others seeking more profit | really has me worried about the future. | | For example, Winamp ran several years as a music player, although | it was not a very profitable operation, it functioned just like | every other consumer music player since the 70s, with play, stop, | track skipping, fast-forward, shuffle play etc... | | Now music players have completely screwed up the model for a | music player. They more often don't function properly unless a | subscription is paid for.... They insert ads into music | playlists, they often skip more than one track, they don't truly | shuffle music, and they also add a ton of frustration with | buffering and connectivity issues into the simple process of | listening to music, even when I play my locally stored collection | of music on them. | | The practice of reducing features in something as simple as a | music player, a device that is meant for enjoyment shows how grim | the concept of a software-driven world should be. Products are | rarely solving problems now, they are only introducing new and | stupid problems, and not innovating further. It's a huge problem | that should be addressed. | | I'm tired of hobbled functionality, hack the planet. :P | lpapez wrote: | There are literally hundreds of simple (and open-source) music | players out there, including Winamp you mentioned and its | offspring. What is preventing you from using those? IMO, this | is the same argument like when people say "modern music sucks" | without ever searching for amazing new bands outside the | mainstream. | BiteCode_dev wrote: | Most people don't have the medium. | | I have 30Go of music files on my laptop, that I carefull | update, and backup. I add to the collection once in a while. | | But few do that anymore: no cd player in devices, and file | systems are being abstracted away remember? | | So they listen to music on youtube, spotify, soundcloud, etc. | | They don't own the music, hence they can't chose the player. | winternett wrote: | YouTube music offered to import my personal music library | (on my phone). I declined, because the last time I allowed | that to happen on Google Play Music (now retired) it was | covertly deleting music from my library, and carefully | picking which songs to play every time I used it. | | You simply can't trust free apps any more. Probably can't | even trust many of the paid ones because making people buy | the same thing multiple times is more profitable for | opportunistic individuals. | | Keep backups in multiple (independent) locations. | BiteCode_dev wrote: | Free as in free beer apps no. | | But FOSS apps are still there for you. | | VLC is to this day the best video players, across all OS, | and can read music. | | It's as not convenient to play music though. | screature2 wrote: | re:FOSS music players I liked foobar2000 for music, esp. | if you wanted to play lossless formats like FLAC files | | re:parent comment, i feel like the streaming "free" music | app/services are more iterations on radio stations rather | than iterations on music players since radio has ads, | pseudo random playlists, requirement to be "connected" | etc. | | Maybe unpopular opinion, but in comparison w/radio, I | tend to think streaming actually looks pretty good. | winternett wrote: | Oh I still have (32 bit) Winamp on my desktop, and it works | great when I need it so far... The problem is that as Windows | creeps towards 64 bit compatibility only, I'll eventually | have to retire the original .exe(s) I've used, and change to | something that might be a terrible experience.... Even online | reviews and advice about what software to use is corrupted by | brigadeers and marketers, so it's a wild west of who you can | trust. I appreciate your advice, but you could just as well | be a developer trying to encourage me to use your app that | may have required in-app purchases (no offence). | | Another tactic that developers now use is to have a fully | functional app in the first-downloaded instance, but then the | application slowly degrades as updates occur to encourage an | up-sell. As a dev myself, I've directly seen this happen with | apps I cannot specifically shame online. | | I'm primarily referring to mobile apps. I have an SD card | with my music library on it. The choice of apps there gets | more complex... As phone makers remove SD card functionality, | and headphone jacks, and limit out of the box music players, | the ability to use my phone for music is also fading. I have | had apps corrupt my locally saved music library as well in | attempts to force me into buying streaming services perhaps, | I no longer trust many services in app stores. | bobsmooth wrote: | VLC is free and 64-bit. Not the most convenient for playing | music but it plays everything. I use MAX Tray Player which | is really old but still works. It's this great little | program that sits in your taskbar off to the side so it | doesn't take up icon or window space. I use it for internet | radio and I made a skin for it to match my dark theme. | | trayplayer.com | | As for mobile audio I use Spotify but I have a library of | mp3s on my SD card that I play with the default Samsung | Music app which works just fine. No ads in that so far. If | you haven't tried a modern BT 5.0 device, try giving | bluetooth another chance. | motoxpro wrote: | All of the stuff your talking about could be solved by not | upgrading to the latest X. If you want headphone jacks, | etc, etc just search for a phone that has it and that lets | you add music to it. If you want a 90s experience you don't | HAVE to buy the latest iPhone or download the latest app. | ffhhj wrote: | When I moved from Windows 11 to Linux, the first thing I | looked for was an audio player as simple, fast, full | featured, and with small UI that won't occupy a large portion | of the screen. I ended running WACUP with Wine and haven't | looked back. The compact and stackable UI of Winamp is still | the best after all these years, and it just works. | wolpoli wrote: | That's one thing I missed about programs from years ago - | they don't try to take over the entire computer but stay | unintrusive as helper/companion. | RC_ITR wrote: | I think GP is confusing 'I went to the store and bought this | CD, and burned it to MP3, which plays for free on Winamp' | with 'Winamp was free and now I have to pay for that same | experience via streaming.'' | omgitsabird wrote: | With the right attitude, you can rip from streams and play | it for free from Winamp. You can also buy a lot of music as | an MP3. | tehwebguy wrote: | You can pick up this bluetooth board for $0.79 + $1.67 shipping | to the US and solder it inside of your favorite dumb speakers: | https://www.aliexpress.com/item/4000437975620.html | | [The red one for sale at the moment doesn't make any sounds | when you connect to it, the $0.79 black unit speaks ("now in | bluetooth mode") when I connect to it, not great] | jethro_tell wrote: | Bluetooth doesn't really cut it for me in a multi-person | household, though If I was on my own I would be fine like | that. | | We have multiple people constantly playing, and multiple | locations to play to. Bluetooth is good for a single speaker | and single primary playing device but doesn't really solve | multi-room multi-user music very well. | nexuist wrote: | > They insert ads into music playlists, they often skip more | than one track, they don't truly shuffle music, and they also | add a ton of frustration with buffering and connectivity issues | into the simple process of listening to music | | Why are you comparing music players to streaming services? | That's like comparing a Honda Civic to a cement mixer. You | don't use both to accomplish the same job even if they both | have four wheels and a gas pedal. | winternett wrote: | Streaming services leverage playlists, and they insert ads | into those playlists. | | Streaming services like Spotify, are music players by nature | obviously... | jethro_tell wrote: | if you pay for spotify, there are no ads, just like if you | paid for your music and a music player there would be no | ads. | | And before you tell me you got your music and player on the | high seas, you can still do that so I don't see how | anything has changed. | filoleg wrote: | You are just being pedantic, while the parent comment | offered a fairly useful distinction between those two types | of services, even though it might not be the dictionary | definition. | | >Streaming services like Spotify, are music players by | nature obviously... | | Both a cement mixer and a honda civic are vehicles that one | can drive on the road by nature. The point still stands | that they shouldn't be compared directly, as they serve | completely different purposes (despite them both being | drivable vehicles). | folkrav wrote: | Music players were decoding local files and spitting out the | output, now they're streaming platforms. Despite fitting the | same niche of "I want to listen to music" for many people, | they're not selling you the same product at all. | | AFAIK the local players still exist, many still in active | development, for those who want to own their data. | bluescrn wrote: | Sonos built a great system then destroyed it with greed/planned | obsolesence. | | They shafted so many customers with the S1/S2 incompatibility, | leaving so many expensive and perfectly capable 'legacy' | systems unable to add new (S2) devices. | | It was purely to try and force people to upgrade perfectly | decent devices, and prematurely turn a whole lot of S1 devices | into e-waste. | | While their products are still good, I wouldn't buy one again | for fear of them introducing an S3 and rendering another set of | devices obsolete. | jethro_tell wrote: | There's not as much lock-in with the analog formats, you want | different speakers or a different head unit with the same | speakers you just change shit out at the end of the wires. | | All these strange products we are getting around media | probably mostly has to do with licensing requirements for | DRM. | | I assume it's as much the industry these people are working | with/coming from as it is the actual straight greed of sonos. | djrogers wrote: | I was upset at the time, but in hindsight, and given how | they've managed to continue to support both S1 and S2 product | lines, I can't really say they did it wrong. Bifurcating your | app to continue to provide support for 10+ year old hardware | is a lot better than simply EOL'ing said hardware. | bluescrn wrote: | The problem is that '10 years old' in computing is fairly | ancient, whereas in hi-fi, quality hardware will keep going | for many decades with minimal maintenance. | | Not sure why they felt the need to split the app into two | rather than support the control of all devices through a | single app, even if the S1 devices have a bit less | functionality, or if S1 and S2 devices can't be grouped | into a single zone. | | And then they've prevented some new devices from running | with the S1 app. My parents tried to buy an extra speaker, | but it didn't work with their S1 system (whereas only a few | months ago, they added a soundbar that worked fine) | | It's a mess. It could have been handled a lot better. What | new features do you even get with S2 that require more | powerful hardware? | ska wrote: | I solved this by just sticking with my S1 devices. Other than | the horrible software, still going ok. When I eventually | replace, it won't be sonos, but I've yet to see a really good | option for replacing it. | [deleted] | ganlaw wrote: | Very interesting read. As a purely front end engineer, I am | always fascinated by other peoples ability to reverse engineer | everyday systems that I use and complain about. If I wanted to | learn more about reverse engineering, do you have any recommended | readings or talks? | davewritescode wrote: | This one is pretty simple. All the communication with the sonos | device happens in the clear and the protocols are actually | pretty well documented. | | Getting good at using wireshark is a good place to start. | | This project is pretty dead but I remember using it a few years | ago https://github.com/stephen/airsonos | fao_ wrote: | Personally I liked using mitmproxy and Android 86x, it took a | little bit of setup but was easy to use after a while | IceDane wrote: | There is really not any way to give anyone a guide to doing | what this guy does because it's not applying any special | techniques to do anything. This isn't a binary reversing guide | using a specific way to decode an encrypted executable, or | whatever. This is quite literally just a guy who uses what he | knows to figure out what is going on, and then learn more as is | needed. | | It will help not to put yourself into a box beforehand, like | calling yourself a "purely frontend engineer." This is the kind | of useless label for yourself that only serves to make you | yourself think that you should stay in some arbitrary, badly | specified corner of CS knowledge. | | Literally just read about things, then use that knowledge to | deconstruct other things. That's all that's going on. | _0ffh wrote: | I have something much, much worse: I've got a rabbit hole! | Here's two mirrors of a quite old website that is heavy on | reverse engineering lore. While technological details may be | outdated, many of the teachings certainly still apply. | | http://www.darkridge.com/~jpr5/mirror/fravia.org/index.html | http://woodmann.com/fravia/ | | Edit: Sorry that the page is somewhat labyrinthine. | alasdair_ wrote: | RIP +Fravia | | Finding his site in 1995 or so taught me an enormous number | of things that I don't think I would have learned any other | way. | _0ffh wrote: | Yes, I genuinely felt a bit sentimental and melancholic | just clicking through a few of these pages once again. | | F | shmatt wrote: | There is tons to reverse engineer on the frontend. When you | think about it, we have so much source code we can read | through, some of it can hide bad engineering that lets you | access something you shouldn't be able to. Like setting the | price of an item via hidden form parameter, or finding an | endpoint that lists every single promo code | | Next time you find a website with a GraphQL API, try running | the introspection query[1]. If that doesn't work, try | fuzzing[2]. I've found multi-billion dollar companies who've | | * Left open their GraphQL playground completely | | * Enable introspection | | Once you start you can dig into the API, and figure if you | found anything interesting | | [1] https://blog.yeswehack.com/yeswerhackers/how-exploit- | graphql... | | [2] https://github.com/nikitastupin/clairvoyance | trever123 wrote: | Some companies/APIs do this on purpose as one of the benefits | of graphql is the self documenting nature. If you have a well | secured schema this shouldn't be a problem. If you are doing | security through absurdity by having stuff in the schema you | don't want people to discover, you are going to have a bad | time. | korijn wrote: | Start by reverse engineering things in your comfort zone. You | must already use a couple of libraries in your front end work. | Hone your reverse engineering skills by trying to implement the | same thing yourself. It's mostly about the ability to figure | out how something works by observing and testing its behavior. | kclay wrote: | I assume this is what the SonosTube[1] app does. It's pretty nice | | [1] | https://play.google.com/store/apps/details?id=frontier.sonos... | amaccuish wrote: | One day I'll wireshark the weird streaming protocol they use | instead of just upgrading to SMB2/3. I'm pretty sure it's HTTP. | charcircuit wrote: | Where is the part where YouTube gets hacked? | X-Cubed wrote: | Hacking doesn't just refer to security vulnerabilities and | unauthorized access. | | "A hacker is a person skilled in information technology who | uses their technical knowledge to achieve a goal or overcome an | obstacle, within a computerized system by non-standard means." | | https://en.wikipedia.org/wiki/Hacker | hirako2000 wrote: | I also can't find how that's hacking YT. | | There was a time, not so long ago, security bugs hunters would | claim they found some oddities within a sub module of some | software, then disclose how it leads to escalation of | privileges, 7 other severe flaws leading to remote code | execution, ending with a mention that it makes half of the | internet vulnerable since it's Apache or some other broadly | used utility. | FridayoLeary wrote: | I'm a bit alien to these kind of things and i cannot believe that | a speaker could be limited in such a way. It's sole function is | to play sound from a device and it utterly fails at that. Why do | people put up with such rubbish? I get upset when i see a speaker | without a jack port. | | Also, the article is excellent but the title lets it down. Can i | suggest it be changed to something like "reverse engineering | SONOS to play YouTube". If deadf00d is still on maybe you should | also rethink the title? | 71a54xd wrote: | The co-working space I used to go right out of college used to | have Sonos speakers. Occasionally, there'd be times when I wanted | to work where the couches were but didn't want to listen to | blaring pop music or something that was too rhythmic later in the | day, so I started looking for ways to interrupt the audio stream | going to the sonos devices. It turns out after a bit of snooping | with nmap and looking at some Sonos forums that two specific | ports are used to maintain sync between Sonos speakers and stream | data to them. Then I just wrote a python script that would blast | these ports with TCP traffic on the wifi (which the sonos | speakers were also connected to) and would use the script when I | wanted peace and quiet without headphones. Turns out that | networking class I took in college wasn't a waste afterall. | sgarman wrote: | 1.) Could you not have just asked them to change the music? 2. | Did that cause any other degradation to the network? | iypx wrote: | 1. - Not OP, but I believe the moment you put some | music/radio on speakers for other people to listen, legally, | you become a broadcaster. You can't just play anything you | want, you need a license :) I recall my last workplace | mentioning they're paying a few thousands a year to stream | just one radio station, same 20-30 songs 24/7... | chinathrow wrote: | For those on Linux, Noson works great to control SONOS. | monkaiju wrote: | Just found this today, works very well and lets me play any | audio from my linux system through sonos ___________________________________________________________________ (page generated 2022-02-03 23:00 UTC)