crumb.isLink crumb.isFinalCrumb crumb.getClass crumb.css crumb.separatorCss crumb.getCss crumb.finalCrumb crumb.getText crumb.getIsLink crumb.getWrapperCss crumb.type crumb.url crumb.getUrl crumb.getType crumb.hashCode crumb.equals crumb.toString crumb.wrapperCss crumb.text crumb.getSeparatorCss crumb.class
crumb.isLink crumb.isFinalCrumb crumb.getClass crumb.css crumb.separatorCss crumb.getCss crumb.finalCrumb crumb.getText crumb.getIsLink crumb.getWrapperCss crumb.type crumb.url crumb.getUrl crumb.getType crumb.hashCode crumb.equals crumb.toString crumb.wrapperCss crumb.text crumb.getSeparatorCss crumb.class
crumb.isLink crumb.isFinalCrumb crumb.getClass crumb.css crumb.separatorCss crumb.getCss crumb.finalCrumb crumb.getText crumb.getIsLink crumb.getWrapperCss crumb.type crumb.url crumb.getUrl crumb.getType crumb.hashCode crumb.equals crumb.toString crumb.wrapperCss crumb.text crumb.getSeparatorCss crumb.class
crumb.isLink crumb.isFinalCrumb crumb.getClass crumb.css crumb.separatorCss crumb.getCss crumb.finalCrumb crumb.getText crumb.getIsLink crumb.getWrapperCss crumb.type crumb.url crumb.getUrl crumb.getType crumb.hashCode crumb.equals crumb.toString crumb.wrapperCss crumb.text crumb.getSeparatorCss crumb.class
22.06.2015 13:42 Zuletzt bearbeitet: 22.06.2015 13:44 durch den Autor
Hallo Community,
Da der Speedport Hybrid des öfteren, z.B durch eine Zeitschaltuhr, neugestartet werden muss, habe ich mir überlegt ein kleines Skript dafür zu schreiben, welches den Router sauber neustartet, und dieses auch an die Community weiterzugeben.
Benötigt wird dafür jediglich ein Gerät mit Linux oder Windows (OS X sollte auch funktionieren), am besten wäre natürlich ein Minicomputer wie das Raspberry Pi o.Ä., welches das Skript, z.B mit Hilfe von Crontabs, zu bestimmten Zeitpunkten ausführt.
Zu finden ist das Skript mit Installationsanleitung hier: https://github.com/popoklopsi/Speedport-Hybrid-Rebooter
Bzw als direkt Download Link hier: https://github.com/popoklopsi/Speedport-Hybrid-Rebooter/archive/master.zip
Ich hoffe ihr könnt damit etwas Anfangen. Solltet ihr Fragen oder Probleme haben könnt ihr gerne Fragen.
Grüße David
Gelöst! Gehe zu Lösung.
22.06.2015 23:29
Danke für das Script, aber wieso überhaupt rebooten?
23.06.2015 11:44 Zuletzt bearbeitet: 23.06.2015 11:45 durch den Autor
Weil viele nach einiger Zeit im Betrieb Probleme mit dem SP-H haben und diesen dann neustarten müssen. Ich mache das im Schnitt täglich.
23.06.2015 16:09
Moin @witche123!
Na da bekommsten Kudo von mir! Nicht, weil ich so oft neustarten müsste, sondern weil ich jetzt sehen konnte, wofür der 'derivedk' gut ist. (hab mir zwar sowas gedacht...)
Baue mir gerade sowas ähnliches in C++
Das Auslesen von den 'Hidden-Menu-Werten' funktioniert soweit, aber den 'derivedk' brauchte ich dafür ja noch nicht. Machs in C++, weil ich am Ende eine ausführbare Datei ohne Abhängigkeiten haben will. (und eine C++-Klasse )
Und mein Python ist eh nicht sooo gut....
Übrigens: Oft reicht es, die Netzwerk-Verbindungen zu Re-Initialisieren -> da gibt's einen gut versteckten Link für. (Bei den Datenschutz-Einstellungen / Stufe 2 / 'Was ist das?' -> im Erklärungs-Text ist ein Link 'Verbindung trennen und wiederherstellen'. Ein Klick darauf und DSL/LTE/Tunnel/IP/Systemzeit/Konfigurationssitzung... - also im Grunde alles Netzwerkbezogene wird erneuert - und geht schneller als ein kompletter Neustart )
mfg, emkay
28.06.2015 00:22
wofür 'derivedk' gut sein soll habe ich noch nicht verstanden 😛
man kann aber so ziemlich alles ohne 'derivedk' und ohne den 'csrf_token' machen
ich habe mit selber was zusammen gebastelt in PHP
https://github.com/Stricted/speedport-hybrid-php-api
reboot funktioniert auch super
das trennen und neuverbinden des dsl links will ich aber auchnoch mit einbauen
MfG
Stricted
28.06.2015 22:33
Moin @Stricted!
Also er hat ihn benutzt, um die Anfrage an den Router per AES zu verschlüsseln. Ist allerdings auch möglich, daß das gar nicht mehr nötig ist. Könnte durchaus ein Relikt eines früheren Routers sein, auf dessen Firmware der Speedport-Hybrid aufbaut.
- frühere Speedports brauchten ja auch HTTPS.
Da eins meiner Ziele der Zugriff auf 'ausgeblendete' Einstellungen ist (vorallem LTE-Frequenz), baue ich den 'derivedk' vorsichtshalber mit ein.
Lustig ist: jetzt gibts schon in allen möglichen Sprachen Quellen - javascript, Python, PHP, C++
mfg, emkay
28.06.2015 22:36
wofür der derivedk gut ist habe ich zwischenzeitlich beim studieren der javascript files selber rausgefunden
verwenden kann ich den leider nicht da php kein AES mit dem modus CCM beherrscht
bin am überlegen ob ich die sjcl https://github.com/bitwiseshiftleft/sjcl lib in php portiere
ist doch gut wen es in mehreren sprachen was dazu gibt je mehr desto besser 😛
MfG
Stricted
28.06.2015 22:50
Ich musste auch erstmal schauen, wie ich sowas mit möglichst wenigen 'exotischen' Bibliotheken mache. (Bin ein Fan von Standards / notfalls Quasi-Standards)
Hab mich dann für C++11 / libCurl / libOpenSSL entschieden. Für JSON-Parsing nehm ich momentan einfach C++11-regex.
Damit ist allerdings mein C++-Quellcode auch nicht viel länger, als die Scripts, die ich bis jetzt gelesen habe. (manches mag in C++ länger sein, dafür werden aber zB. Cookies bei mir automatisch verwaltet, was Code spart...)
Dank QT kann ich mir dann am Ende eine GUI für Linux/Windows/Android bauen
mfg, emkay
28.06.2015 22:55
28.06.2015 23:16
@Stricted; also wenn OpenSSL in PHP zur Verfügung steht --> da ist alles drin, was man braucht. Ich erzeuge damit das gehashte Passwort und den derivedk
Und soweit ich das sehen konnte ist ein paasendes AES auch drinn...
Was PHP & GUI angeht: Ich weis
Ich kenn' die meisten üblichen Sprachen, C++ ist nur meine 'Leib-Sprache'
Und in diesem Fall fand ich's auch sinnvoll: Statisch gelinkte, unabhängig ausführbare Kommandozeilen-Version -> lässt sich im Grunde notfalls für nen Taschenrechner kompilieren (Oder eben Windows/Linux/Android/irgendwelche anderen Router im Netzwerk)
Und dank QT ein GUI-Quellcode für alle Plattformen inkl. Android.
PHP find ich auch nicht schlecht, wenn's sich anbietet. (hab mal nen Faxserver aufgesetzt - der bestand zu einem großen Teil aus PHP und Komandozeilen-Tools / selbst die Hintergrunddienste waren da PHP --> musste schnell gehen )
mfg, emkay
29.06.2015 02:34
21.07.2015 01:50 Zuletzt bearbeitet: 21.07.2015 01:51 durch den Autor
@Gelöschter Nutzer
da nun doch etwas zeit vergangen ist hole ich das thema nochmal rauf
mitlerweile habe ich das AES problem gelöst und doch noch einiges in meine php klasse eingebaut ( https://github.com/Stricted/speedport-hybrid-php-api )
da mir nun etwas langweilig war und ich mich so oder so mit c# beschäftigen wollte dachte ich mir "zum lernen ist das ein super projekt" ich werde nebenher ein c# programm bauen mit dem man den gesammten router konfigurieren und auslesen kann
hier mal ein kleiner screenshot vom rumtesten (das syslog kann ich schonmal auslesen ^^) http://puu.sh/j6FAE/677631bdac.png
sobald ich was ordentliches vorweisen kann werde ich daraus ein opensource projekt auf github machen
06.08.2015 21:25
Moin Leutz!
Wollt nur mal schnell Bescheid geben, daß es mir immerhin möglich war, das 'Haupt-Dateisystem' der .057er-Firmware zu entpacken.
1. das ist schon ziemlich 'Standard-Linux'
2. liegen mir jetzt alle html/css/js/json-Dateien(Templates) vor... Sind dummerweise recht viele. Könnte also dauern, wenn man was bestimmtes sucht;) (suche immernoch die Frequenzeinstellung)
Ob es umgekehrt möglich ist, die Firmware wieder zu packen & zu installieren, hab ich nicht getestet - das wäre dann der heilige Gral.
Habe allerdings wegen der Frequenzeinstellung auch eine Anfrage laufen. Mal schauen, wie die Antwort ausfällt. Vielleicht müsst' ich dann nicht gleich die ganze Kiste 'hacken';)
mfg, emkay
PS: 'binwalk' zerlegt die Firmware in Images, 'unjffs2' kann das Dateisystem dann mounten. (zumindest unter Linux)
06.08.2015 21:44
was suchst Du denn genau?
06.08.2015 22:13
Moin @buenni!
Ich suche immernoch nach einer Möglichkeit, die LTE-Frequenz festzulegen.
In absteigender Preferenz suche ich also:
- 'verstecktes' Menü (html)
- API über json
- API über javascript
oder noch schlimmer, weil man dann wohl die Firmware patchen müsste:
- Konfigurations-Dateien
- Kommandozeilen-Befehle
- da Linux, könnten auch Huawei AT-Commands oder Treiber-Parameter funktionieren
- native API (C/C++) --> das wäre der Extrem-Fall
Im Grunde wäre ich mit jeder Möglichkeit, die LTE-Frequenz zu beeinflussen, zufrieden. Meinetwegen auch ein telnet/ssh Zugang. (im root liegen scheinbar auch ein paar key-dateien)
mfg, emkay
07.08.2015 00:10
@Gelöschter Nutzer wäre es möglich das du mir das ganze mal zukommen lässt?
ich selber war bisher leider noh nicht erfolgreich beim entpacken der firmware
würde aber sicher einiges vereinfachen wenn man direkt schauen könnte wo man welsche daten abgreifen kann
MfG
Stricted
07.08.2015 00:41
Moin @Stricted!
Hab ja auch einen 'Moment' gebraucht, um's auf zu kriegen;)
(wie cool wär das - wenn man's wieder 'zu' bekäme;))
Reicht dir der 'www-teil'? (html/css/js/json)
Den könnte ich geziped vielleicht posten. Da sind zumindest ein paar mir vorher unbekannte .json bei - die allerdings teilweise verschlüsselt&gehexed antworten.
Dauert aber nochn Moment, weil grad nich am Rechner.
mfg, emkay
07.08.2015 01:23
moin @Gelöschter Nutzer
ja der 'www-teil' würde mir erstmal reichen
ja das mit dem entpacken will bei mir nicht so richtig, das firmware mod kit gibt mir nur .img datein (gzip compressed laut binwalk) die ich weder mounten noch entpacken kann
MfG
Stricted
07.08.2015 03:03
Moin @Stricted!
Sorry, das Forum war eben down...
Wenn Du das Firmware-Mod-Kit hast, brauch ich Dir die Daten gar nicht geben;)
(und die Telekom kann mich nicht wegen Copyright-Verletzung verklagen;))
Das FMK funktioniert bei den Hybrid-Firmwares zwar nicht vollautomatisch - aber die Tools funktionieren teilweise!
Erstmal mit 'binwalk -e Firmware_Speedport_Hybrid_v050124.01.00.057.bin' die Firmware-Datei zerlegen.
Dann mit 'sudo unjffs2 20607.jffs2' mounten. (unmount funktioniert wie immer)
Das Ergebnis ist das Root-Dateisystem - inklusive des Linux-Systems.
Man kann jffs2-Images scheinbar nur durch mounten auf simulierten NAND-Speicher lesen. Aber aus dem Mount-Point kannst Du Dir dann alles wichtige herauskopieren.
Beide tools sind im FMK enthalten - ich hab allerdings das Ubuntu-binwalk genommen, weil das eh installiert war. -- Damit unjffs2 funktioniert müssen verschiedene module in deinem System installiert sein. Solltest Du Fehlermeldungen deshalb bekommen, schau einfach mal in das Script - da stehen oben die Benötigten. (das sind vor Allem eben die Treiber für emulierten NAND-Flash)
mfg, emkay
07.08.2015 05:59
@Gelöschter Nutzer
wow nice, nachdem ich nun fast verzweifelt bin habe ich es nochmal auf einem server probiert und siehe da
"JFFS2 image mounted to /mnt/1"
ich danke dir vielmahls, nun kann ich endlich mal da reinschauen
07.08.2015 07:05
07.08.2015 11:52 Zuletzt bearbeitet: 07.08.2015 11:54 durch den Autor
das entpacken - mounten ändern etc ist wie beim Receiverbau auch
jffs2 machen wir z.b. so https://github.com/Duckbox-Developers/max-tdt/tree/master/tdt/flash/spark
zusammen - bau selber vorher mit ein buildsystem
patche von huwai gibts hier (modell anklicken) http://support.huawei.com/enterprise/search/#outside=0&searchCount=1&sp.keyword=DSL/LTE%252520Hybrid...
07.08.2015 14:38
Moin @Stricted!
Frag mich mal... ich war eh noch nie ein Fan von javascript;) (duck-typing irritiert mich)
Das mit dem invaliden Json hab ich auch beim Entwickler von l33tport gelesen - ich hatte das Problem zum Glück nicht. Ich wollte ja nicht so viele Abhängigkeiten - und da C++ kein 'natives' Json, aber 'natives' RegEx hat, habe ich das genommen und den regex nach den Daten 'gebaut', welche der SPH mir gab.
Ich habe also keinen 'standard-konformen' json-Parser genommen - was hier scheinbar von Vorteil war
Ich iteriere einfach per regex über die Key-Value-Pare und pack die in einen vector<map<string,string>> und nutze dann nur noch den;)
mfg, emkay
07.08.2015 14:50
@Gelöschter Nutzer
mich interessiert das javascript gedönde herzlich wenig, ich ignoriere das gekonnt, das macht im grunde auch nichts als die daten von den *.json files zu laden und sachen dorthin schicken
ja das mit l33tport habe ich mitbekommen, aber ein regex behebt die probleme
ich hab nur 2 abhängigkeiten in meiner "php api" das wären 1. die crypt lib und die php extension mcrypt
alles andere ist glücklicherweise direkt in php integriert
aber allgemein ist das javascript grässlich und von den json files will ich garnicht sprechen, an manchen stellen einfach sachen hardcoded, dupliated zeug über mehrere files wo wiederum statische daten zurück gegeben werden die einfach keinen bezug zum 'key' haben, beispiel: lan.json days_online auf 0 und time_online auf 23:11:15 hardcoded will ich an genau diese daten muss ich über die overview.json gehen da nur dort reale werte stehen, das soll erstmal einer rausfinden
also code review findet da scheinbar so ganz und garnicht statt
MfG
Stricted
07.08.2015 15:24
@Stricted: son wenig muß ich den SPH da allerdings in Schutz nehmen...
Nich alles, was da hardcoded aussieht, ist es auch. -- da stehn ja zB. Passwörter drin;)
Das scheinen teilweise nur Platzhalter zu sein (deshalb schrieb ich weiter oben von Templates)
Wenn die allerdings später dann nicht überschrieben werden.... böser, schwer zu findender Fehler!
mfg, emkay
Füllen Sie schnell und unkompliziert unser Online-Kontaktformular aus, damit wir sie zeitnah persönlich beraten können.
Informieren Sie sich über unsere aktuellen Internet-Angebote.