Noxon 2 Audio Interna
Nachdem ich mich im vorherigen Beitrag über die Verwendung des Noxon’s als Last.fm Client ausgelassen habe, werde ich mich diesmal tiefer in die Interna des Streaming Clients wagen.
Genauer geht es um das Ersetzten/Erweitern der vTuner Stations Liste und das Hinzufügen eigener Services in das “My NOXON” beziehungsweise “Podcasts” Menü.
Firmware Image
Section titled “Firmware Image”Bei der Analyse des Firmwareimages mit dem Hexeditor bin ich auf einige URLs gestoßen (Offset 3962E4). Diese scheinen zum Update der Stations Listen und Favoriten vorgesehen zu sein.
Dabei scheint es zwei verschiedene Typen von URLs zu geben (dazu gleich mehr):
RadioNativeEntriesRadioNative01 RootName Podcasts RootUrl http://radio567.vtuner.com/setupapp/radio567/asp/BrowseXML/navXML.asp?gofile=S-ByLocation LoginUrl http://radio567.vtuner.com/setupapp/radio567/asp/BrowseXML/loginXML.asp?token=0 RetrieveFavsURL http://radio567.vtuner.com/setupapp/radio567/asp/BrowseXML/FavXML.asp?empty=&sFavName=My%5F%5FFavorites
RadioNative02 RootName My NOXON RootUrl http://gatekeeper.my-noxon.net/RadioNative.php LoginUrl http://gatekeeper.my-noxon.net/RadioNativeLogin.php RetrieveFavsURL http://gatekeeper.my-noxon.net/RadioNativeFavorites.php
RadioNative03 RootName StarXed Services RootUrl http://starxed.homelinux.org/radionative-multi/index.xml LoginUrl http://noxonserver.de/RadioNativeLogin.php RetrieveFavsURL http://starxed.homelinux.org/radionative-multi/favs.php
MultiRadioStationDBMRSDB01 UserFriendlyName Internet Radio url0 http://www.radio579.com/setupapp/bluewin/asp/rsdb/update.aspHier eine Kurze Beschreibung der zwei Typen:
- Es gibt eine dynamische Variante. Hier wird bei jedem Verzeichniswechsel innerhalb der “My NOXON” & “Podcasts” Ordnerstruktur ein neuer Request für die untergeordnete Ordnerstruktur gesendet (RadioNativeEntries). Der dritte Service “StarXed Services” scheint deaktiviert worden zu sein. Die URL zeigt auf einen DynDns Account von Manfred Dreese, der Entwickler des Noxons.
- Und es gibt die statische Stationsliste von vtuner.com die etwa 10000 Stationen enthält und meistens nur manuell aktualisiert wird. Alle 10000 Stationen werden aufeinmal gesendet (circa 5 MB). Die Stationen werden hierbei im Noxon gespeichert (MultiRadioStationDB).
Jeder Service besitzt auch eine Backup URL die benutzt wird, falls der standart URL nicht erreichbar ist.
Sniffing
Section titled “Sniffing”Ein Mitschneiden des Netzwerkverkehrs des Noxon via ARP Poisoning konnte meine Vermutungen bestätigen. Das Noxon sendet je nach dem in welchem Menü man sich befindet zu dem jeweiligen Server einen HTTP-GET Request. Daraufhin erhält es eine XML codierte Antwort die, die Stationen oder SubDirectories enthält. An die URL werden per GET einige User spezifische Daten gehängt (hier am Beispiel der statischen Liste):
http://www.radio579.com/setupapp/bluewin/asp/rsdb/update.asp?mac=001b9e****** <= MAC Adresse des Clients&uid=C089E7AE6153F372B20EB7A5********&ver=EMPTY&xml=2.0&mime=audio/mpeg-url&sw=24.6392 <= Firmware Version&bl=6166 <= Bootloader Version&hw=158.0 <= Hardware Revision&up=13693&lang=ger <= Sprache&st=15167&rel=0Die Antworten dieser beider Typen unterscheiden sich.
Hier zwei Kurze Beispiele:
RadioNativeEntry (dynamische Services):
< ?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?>
Display Your Streaming device is unknown! Please register at www.besonic.com!
Dir Demo playlists http://gatekeeper.my-noxon.net/RadioNative.php?service=1&node=playlist&token=215385555997023 true
Station
Ellen_Klinghammer - Mess - live *sample* http://webservices.besonic.com/audio/00-1b-9e-22-e9-ec/124122.mp3
http://gatekeeper.my-noxon.net/RadioNative.php?service=10002&node=21cb40ef2acb0b15e2eea1c731de4472&token=08920a9358128a9MultiRadioStationDB (statische Stationsliste):
< ?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
2.0 vTuner http://www.radio579.com/setupapp/bluewin/asp/rsdb/update.asp PREMIUM
1 Last.fm Proxy Just a Proxy for the Social Music Network Last.fm 96 http://87.230.33.74:[port]/lastfm.mp3?pw=[pw]&user=[user] m3u
1Stations Liste modifizieren
Section titled “Stations Liste modifizieren”Die Antwort der statischen Liste besitzt jedoch im Zweig <station_db> -> <database_info> ein Element <server_url> das die URL des Requests enthält.
Durch DNS Spoofing ist es mir gelungen die Anfrage an www.radio579.com auf einen eigenen Server umzuleiten und so eine eigene Stationsliste ins Noxon zu laden.
Ändert man in der eigenen Antwort den Inhalt des <server_url> Elements wird das DNS Spoofing für künftige Update Vorgänge überflüssig.
Das Noxon speichert die empfange Server URL intern und greift später wieder darauf zurück, wenn es die Liste wieder updaten möchte.
Erst nach einem Firmwareupdate/Reset wird wieder vom vTuner Server aktualisiert.
Service hinzufügen
Section titled “Service hinzufügen”Die URL der drei “RadioNative”-Eintrage lassen sich ohne Firmwaremodifikation nicht so einfach ändern. Die Verwaltung der Einträge im “Podcasts”-Menü läuft wieder über vTuner. Die Einträge im “my NOXON”-Menü werden über die my-noxon.net Website aktualisiert und verwaltet. Manfred Dreese, der Entwickler des Noxon’s, hat auf seiner Website ein inoffizielles Projekt für die Integration des Ampache Medienservers ins Noxon Menü veröffentlicht. Die in diesem Projekt enthaltene PHP Klasse lassen sich durch entsprechende Modifikationen auch für die Integration eigener Menüs verwenden. Die angesprochene Klasse trägt den eigenen Service mit einer entsprechenden URL auf der my-noxon.net Webseite ein. Alles was innerhalb des eigenen Services angezeigt wird, läuft über die eigene URL.