Router-Firmware-Datei auspacken

3463
Flint

Weiß jemand, in welchem ​​Dateityp oder Dateisystem eine Router-Firmware-Datei (die vom Hersteller heruntergeladen wurde) normalerweise gespeichert wird? Gibt es ein Werkzeug (wir sprechen hier nicht von Archivierungswerkzeug wie zip / 7z / rar), mit dem ich die Firmware-Datei entpacken / ordnen könnte? Ich frage deshalb, weil ich mit den Standard-Dyndns-Diensten in der Firmware herumspielen möchte, wahrscheinlich einige Änderungen an ihnen vornehmen und meinen Router mit der geänderten Firmware spülen möchte. Der Router unterstützt keine benutzerdefinierten und ausgefallenen Firmwares von Drittanbietern. Daher muss ich die Lagerfirmware des Herstellers modifizieren.

BEARBEITEN - Als ich diese Frage gepostet habe, dachte ich, der Dyndns-Updater in der Firmware des Routers sei nur ein einfaches Bash-Skript, und ich dachte, ich könnte das Skript schnell bearbeiten, stellte sich jedoch heraus, dass es sich tatsächlich um eine binäre App handelt, wenn ich alle überprüfte Prozesse im Router laufen, so ist diese Frage nicht mehr relevant

1
Dafür gibt es eigentlich keinen (faktischen) Standard. Könnten Sie den Hersteller oder besser das Modell angeben? Bob vor 12 Jahren 1
Was ist die Dateisignatur? Überprüfen Sie mit `$ file downloads_firmware.bin`? vor 12 Jahren 0

2 Antworten auf die Frage

1
AndrejaKo

Was Bob gesagt hat

Auch zip, 7-zip und Freunde können hier helfen, da häufig die Bilddatei selbst komprimiert wird und manchmal das vom Bild verwendete Format mit einem der üblichen Komprimierungsprogramme geöffnet werden kann.

Die Standardprozedur für das eigentliche Ändern der Firmware besteht darin, alle für die Erstellung der Firmware erforderlichen Tools zu erhalten, die Firmware-Quelle zu erhalten, Optionen zu ändern und die Firmware selbst zu erstellen. Dies kann je nach Router selbst nicht unmöglich sein. Router verwenden häufig ein GNU / Linux-Betriebssystem. Aufgrund der verwendeten Lizenzen müssen sie Quellen für einige Teile der Firmware öffentlich verfügbar machen. Sie werden oft irgendwo auf der Herstellerseite entgratet, obwohl es nicht ungewöhnlich ist, dass Hersteller die Lizenz verletzen und die geänderten Quellen nicht veröffentlichen.

Die genaue Situation hängt vom Hersteller Ihres Routers und dem Modell des Routers ab.

Sie können (oft) nicht einfach einen Wert in der Binärdatei ändern, da es schwierig ist, genau zu ermitteln, wo der Wert ist, den Sie ändern müssen, und weil Firmwares normalerweise über ein Schutzsystem verfügen, das die Verwendung der Firmware verhindert, falls dies der Fall war geändert. Der Hauptgrund dafür ist, zu verhindern, dass Firmwares durch Netzwerk-Transit zu Routern beschädigt werden und dass diese nicht gemauert werden.

1
Journeyman Geek

Die Firmware des Routers ist höchstwahrscheinlich eine kompilierte Binärdatei. Sie müssen nichts auspacken, wenn Sie die Firmware nicht demontieren, sie anpassen (ziemlich viel auf Baugruppenebene) und neu kompilieren.

Wenn ein Router mit Quelle verfügbar ist - beispielsweise der WRT54GL -, muss die Quelle gefunden und kompiliert werden.

Ich möchte jedoch beachten, dass es relativ trivial ist, dynamische DNS-Clients auszuführen oder ein dynamisches DNS-Skript-Clientsystem zu schreiben, das viel einfacher wäre, um das zu bekommen, was Sie wollen.

Bei Zone Edit, wo Sie zwei Zonen kostenlos erhalten, können Sie einen A-Eintrag für eine dynamische IP-Adresse mit `curl` aktualisieren. Sie können das Skript auch über `curl icanhazip.com` erhalten, um nach einer geänderten öffentlichen IP-Adresse zu suchen. paradroid vor 12 Jahren 0
Ich verwende eine besonders hackhafte Methode: Ich bekomme die IP-Adresse von w3m von meiner Router-Website (die die schönste Web-Ausgabe eines jeden CLI-Clients hat, grep und cut, um die IP-Adresse zu extrahieren, und regelmäßig mit wget aktualisieren. Es ist noch einfacher * und * safert das mit futzing Firmware;) Journeyman Geek vor 12 Jahren 0