Hallo,
ich möchte eine Fritzbox 7590 (ProductID: Fritz_Box_HW226, Firmware: 154.7.21, Bootloaderversion: 1.3258) mit Provider-Additiven ausstatten.
Jetzt sind mir durch Recherche zwei Möglichkeiten bekannt, wie das zu bewerkstelligen ist:
Ich habe hier schon von diversen Leuten gelesen, dass es mit der Kommandozeile in Windows zusammenhängen soll, daher hab ich das mit der FTP-Implementierung von MobaXTerm probiert. Über Ubuntu (WSL2) scheitert es bereits am Öffnen der Sockets, aber das ist ein anderes Problem. Um dem ganzen auszuweichen, habe ich es zusätzlich über den PowerShell FTP-Client von @PeterPawn probiert. Dieser hat leider keine eingebaute Methode, um Dateien abzurufen, daher habe ich mich an GetEnvironmentFile orientiert und das Skript um folgende Methode erweitert:
Das führt allerdings zu 501 unknown variable mtd3.
Ich dachte es könnte daran liegen, dass die ReadFile Funktion RETR statt GET verwendet, daher hab ich es mit GET probiert, was aber dann nur zu einem anderen Fehler führt: 502 Command not implemented.
Mir blieb also bisher nichts anderes übrig, als einen TFFS Dump über die erweiterten externen Supportdaten zu erzeugen. Darüber konnte ich erfolgreich die ProviderAdditive (ID: 29) extrahieren und modifizieren.
Mir stellen sich jetzt also folgende Fragen:
EDIT: Mit fällt gerade auf, dass ich evtl. ein Unterforum für den Thread gewählt habe, das nicht ideal passt. Vielleicht kann ein Mod den Thread entsprechend verschieben, sofern notwendig?
Viele Grüße,
Tim
ich möchte eine Fritzbox 7590 (ProductID: Fritz_Box_HW226, Firmware: 154.7.21, Bootloaderversion: 1.3258) mit Provider-Additiven ausstatten.
Jetzt sind mir durch Recherche zwei Möglichkeiten bekannt, wie das zu bewerkstelligen ist:
- TFFS Dump erzeugen und dort die ProviderAdditive.tar hineinfriemeln und dann auf die Box zurückflashen
- Im Netz und auch hier im Forum kursiert aber das Gerücht, dass das üblicherweise per USB auf die Box gebracht werden kann.
Code:
> (
> cat <<EOT
> open 192.168.178.1
> user adam2 adam2
> debug
> bin
> quote MEDIA FLSH
> get mtd1
> get mtd2
> get mtd3
> get mtd4
> quit
> EOT
> ) | ftp -n -p
ftp> open 192.168.178.1
ftp> user adam2 adam2
ftp> debug
Debugging on (debug=1).
ftp> bin
---> TYPE I
ftp> quote MEDIA FLSH
---> MEDIA FLSH
ftp> get mtd1
---> PORT 192,168,178,2,200,126
Command not implemented
---> RETR mtd1
Command not implemented
ftp> get mtd2
---> PORT 192,168,178,2,200,127
Command not implemented
ftp> get mtd3
---> PORT 192,168,178,2,200,128
Command not implemented
ftp> get mtd4
---> PORT 192,168,178,2,200,129
Command not implemented
ftp> quit
---> QUIT
Ich habe hier schon von diversen Leuten gelesen, dass es mit der Kommandozeile in Windows zusammenhängen soll, daher hab ich das mit der FTP-Implementierung von MobaXTerm probiert. Über Ubuntu (WSL2) scheitert es bereits am Öffnen der Sockets, aber das ist ein anderes Problem. Um dem ganzen auszuweichen, habe ich es zusätzlich über den PowerShell FTP-Client von @PeterPawn probiert. Dieser hat leider keine eingebaute Methode, um Dateien abzurufen, daher habe ich mich an GetEnvironmentFile orientiert und das Skript um folgende Methode erweitert:
Code:
function GetFlashFile {
Param(
[Parameter(Mandatory = $False, Position = 0, HelpMessage = 'the name of file to read')][String]$name,
[Parameter(Mandatory = $False, Position = 0)][String]$filename
)
# set binary transfer mode
SendCommand "TYPE I"
$answer = ReadAnswer
if (-not (ParseAnswer $answer "200")) {
$ex = New-Object System.IO.IOException "Error setting binary transfer mode."
Throw $ex
}
# set media type to FLSH
SendCommand "MEDIA FLSH"
$answer = ReadAnswer
if (-not (ParseAnswer $answer "200")) {
$ex = New-Object System.IO.IOException "Error selecting media type."
Throw $ex
}
if (-not (ReadFile $filename $name)) {
$ex = New-Object System.IO.IOException "Read error"
Throw $ex
}
}
Code:
PS C:\Sourcecode\Fritzbox\YourFritz\eva_tools> .\EVA-FTP-Client.ps1 -Verbose -Debug -ScriptBlock { GetFlashFile -name "mtd3" -filename "C:\Sourcecode\Fritzbox\mtd3.image" }
DEBUG: Response:
220 ADAM2 FTP Server ready
================
DEBUG: Sent
USER adam2
================
DEBUG: Response:
331 Password required for adam2
================
DEBUG: Sent
PASS adam2
================
DEBUG: Response:
230 User adam2 successfully logged in
================
DEBUG: Sent
SYST
================
DEBUG: Response:
215 AVM EVA Version 1.3258 0x0 0x46409
================
DEBUG: Sent
TYPE I
================
DEBUG: Response:
200 Type set to BINARY
================
DEBUG: Sent
MEDIA FLSH
================
DEBUG: Response:
200 Media set to MEDIA_FLASH
================
DEBUG: Sent
P@SW
================
DEBUG: Response:
227 Entering Passive Mode (192,168,178,1,12,8)
================
DEBUG: Sent
RETR mtd3
================
DEBUG: Response:
501 unknown variable mtd3
================
Mir blieb also bisher nichts anderes übrig, als einen TFFS Dump über die erweiterten externen Supportdaten zu erzeugen. Darüber konnte ich erfolgreich die ProviderAdditive (ID: 29) extrahieren und modifizieren.
Mir stellen sich jetzt also folgende Fragen:
- Ist es allgemein noch möglich bei diesem Fritzbox-Modell mit dem Bootloader Partitionen zu sichern und wieder auf die Box zu flashen?
- Lässt sich das Ganze tatsächlich wie oben in 2. angedeutet über USB auf die Box bringen, wenn ja, dann wie? Einfach die ProviderAdditive.tar auf nen FAT32 formatierten USB-Stick hauen und die Box neustarten hat nichts gebracht. Habe dazu leider keine Dokumentation gefunden. Ich habe mir auch die Mühe gemacht die Firmware zu entpacken und das Dateisystem (aus firmware.image) nach Binaries zu suchen, die ProviderAdditive.tar lesen, habe da aber nichts gefunden, was direkt auf den USB-Stick zugreift. Gefundene Skripte habe ich dann mal überflogen, über Kompilate habe ich mit Ghidra drübergeschaut, in der Hoffnung, dass ich so mehr über das Verhalten herausbekomme. Leider nicht fündig geworden.
EDIT: Mit fällt gerade auf, dass ich evtl. ein Unterforum für den Thread gewählt habe, das nicht ideal passt. Vielleicht kann ein Mod den Thread entsprechend verschieben, sofern notwendig?
Viele Grüße,
Tim
Zuletzt bearbeitet: