Modifikation der FBF über die Sicherungsdatei ...

RudatNet

IPPF-Urgestein
Mitglied seit
25 Jan 2005
Beiträge
15,065
Punkte für Reaktionen
0
Punkte
36
... geht nicht so einfach,
da die Checksumme beim Zurückspielen geprüft wird!

Ist hier schon öfter drüber gesprochen worden!
Aber leider immer wieder in verschiedenen Beiträgen!


Edit:
Titel geändert, da es nun doch eine Lösung gibt! :)
 
Modifikation der FBF über die Sicherungsdatei geht doch!

RudatNet schrieb:
... da die Checksumme beim Zurückspielen geprüft wird!

Hallo, ich habe gerade rausgefunden, wie man diese Überprüfung verhindern kann: Einfach in den ersten Block der Sicherungsdatei eine Zeile "NoChecks=yes" einfügen, z.B. so:
Code:
**** FRITZ!Box CONFIGURATION EXPORT
Password=$$$$MBJNDHVVEYCNUZ1VEXGQSJITJD2PTVW1KTN6SX43YB1CG2GPTR6F1214YJ4R43A2FWD
NQUBGCCHV3UCBKH2MPIBY1JQXJ23L4KO4KZQA
FirmwareVersion=14.03.66
CONFIG_INSTALL_TYPE=ar7_ubik2_4MB_2eth_3ab_isdn_nt_te_pots_wlan_50494
OEM=avm
Country=049
NoChecks=yes
**** CFGFILE:ar7.cfg
...
Auf diesem Weg habe ich gerade erfolgreich eine Änderung in meiner ar7.cfg durchgeführt. Ob noch mehr "Checks" abgeschaltet werden, kann ich nicht sagen. Die Prüfung des Kennworts, falls eines gesetzt ist, bleibt jedenfalls aktiv. ;-)

Zusätzlich habe ich eben probiert, einen neuen "**** CFGFILE"-Block einzutragen, um z.B. die debug.cfg zu ändern. Dieser Block wurde offenbar ignoriert: Das Einspielen der Datei war erfolgreich, aber debug.cfg hat sich nicht geändert.

Es scheint noch einen ähnlichen Schalter "NoDelete=yes" zu geben (beide Strings tauchen in cgi-bin/firmwarecfg auf); den habe ich noch nicht ausprobiert.

Benutzung auf eigene Gefahr!
 
Wow!

Für mich die Entdeckung des Monats! Habe es gerade ausprobiert und es funktioniert tadellos. Habe mir die Dateien nach dem Zurücksichern angeschaut und es wurden alle Änderungen übernommen.

Aber ich prophezeie mal, dass mit dieser simplen Möglichkeit, Änderungen vorzunehmen, die Zahl der Briefbeschwerer, die Aussehen wie eine FritzBox, drastisch zunehmen wird. :)

@Thomas: Vielleicht solltest Du den Titel dieses Threads um ein Wort kürzen und Deinen Beitrag auch editieren? ;-)
 
enrik schrieb:
http://www.akk.org/~enrik/fbox/util/exportsum.pl

Wow; gut geraten! (Oder wie hast du es geschafft?) Auf das Weglassen der Gleichheitszeichen bei den Key-Value-Paaren und das Anhängen von Nullbytes an diverse Strings (hoch lebe C!) wäre ich nicht gekommen. (Ich hatte auch mit diversen Varianten herumgespielt.)

Danke und viele Grüße
 
enrik schrieb:
http://www.akk.org/~enrik/fbox/util/exportsum.pl
Bin der Perl-Sprache nicht mächtig, habe keinen Interpreter zur Verfügung und keine Löcher in den Händen.
Kannst Du mal übersetzen? Meine begrenzten Kenntnisse lassen mich vermuten, dass Du einen Weg gefunden hast, die Checksumme zu finden?!
 
dm41 schrieb:
Bin der Perl-Sprache nicht mächtig, habe keinen Interpreter zur Verfügung und keine Löcher in den Händen.
Kannst Du mal übersetzen?
Ich springe mal ein (ich hoffe, das ist okay, Enrik; bitte verbesser mich, falls ich Fehler mache).

Wie schon in einigen Postings vermutet, wird die Prüfsumme mit dem Standard-Algorithmus CRC32 berechnet; die Frage war nur, über welche Daten genau. Die Frage hat Enrik jetzt beantwortet. Es sind
  • die Variablen und ihre Werte aus dem Konfigurationsblock ganz oben
  • die Dateinamen
  • die Dateiinhalte
in der Reihenfolge ihres Auftretens in der Export-Datei. Die "**** "-Zeilen begrenzen nur die verschiedenen Blöcke und gehen nicht in die Berechnung mit ein (bis auf die Dateinamen).

Dabei ist zu beachten:
  • Die Dateinamen müssen mit einem Nullbyte (0x00) abgeschlossen werden, ebenso die Werte (aber nicht die Variablen).
  • Im Konfigurationsblock zählen die Gleichheitszeichen und Zeilenenden nicht mit.
  • Die Dateien müssen vorher dekodiert werden:[list:d8c60125b2]
  • Binärdateien (BINFILE) sind in Hex-Notation dargestellt.
  • Bei Textdateien (CFGFILE) muss nur das letzte Zeilenende entfernt werden (beim Export eingefügt, damit das folgende "**** END OF FILE" garantiert in einer neuen Zeile beginnt).
[*] In der Exportdatei sind sowohl Windows- als Unix-Zeilenenden erlaubt; beim Import und vor der Prüfsummenberechnung konvertiert die Box alles zur Unix-Konvention ('\012').[/list:u:d8c60125b2] Ich hoffe, das war ausreichend vollständig und verständlich.

@Enrik: Dein Script berücksichtigt die letzten beiden Punkte noch nicht: Du verwirfst die ganze letzte Zeile statt nur ihr Ende, und die Zeilenenden in der Exportdatei müssen zur Plattform passen, auf der perl läuft.
 
buehmann schrieb:
Ich springe mal ein (ich hoffe, das ist okay, Enrik; bitte verbesser mich, falls ich Fehler mache).

Soweit alles richtig.

Den fehlenden Cross-Platform-Support kannst du ja gerne noch einbauen :) IIRC werden bei der Ausgabe auch noch einige Zeichen escaped, die aber in der Praxis wohl nicht vorkommen.

Gruß,
Enrik
 
enrik schrieb:
Den fehlenden Cross-Platform-Support kannst du ja gerne noch einbauen :)
Erst, wenn die ersten Windows-User schreien. ;-) Ich wollte es nur der Vollständigkeit halber erwähnen.

IIRC werden bei der Ausgabe auch noch einige Zeichen escaped, die aber in der Praxis wohl nicht vorkommen.

Ah, ich hatte nur mal "**** END OF FILE" in einer Config-Datei ausprobiert; das wurde nicht escaped. Aber für die Zwecke, für die der Im-/Export-Mechanismus eigentlich vorgesehen ist, hat AVM ja die Kontrolle über die Dateiinhalte.

Viele Grüße
 
buehmann schrieb:
Erst, wenn die ersten Windows-User schreien. ;-) Ich wollte es nur der Vollständigkeit halber erwähnen.

Die aktuelle Version funktioniert unter UN*X und Windows (Active State Perl) mit beiden Varianten von Zeilenenden.

Hat mal jemand mit reinrassigen MAC-Zeilenenden getestet? Werden die vom Importer auch akzeptiert?

Gruß,
Enrik
 
buehmann schrieb:
Wow; gut geraten! (Oder wie hast du es geschafft?)

Natürlich nicht nur geraten. Debugger und Disassembler sind wichtige Werkzeuge. Selbstverständlich benutze ich so etwas nur aus rein wissenschaftlichem Interesse.

Gruß,
Enrik
 
Hmm, ich habe erst jetzt von diesem Thread erfahren und wollte dazu mal eine Frage stellen...
Also, ich habe vor, 2 verschiedene (Tag/Nacht)-Konfigurationen auf dem Fritzbox-Klon der Telekom (Eumex 300IP) zu realisieren. Dies wollte ich einfach so machen, das sich 2 verschiedene Konfigurationsdateien erstelle.
Kennt ihr einen Weg, wie ich die Dateien dann per Telnet einspielen kann?
Oder noch besser: Wie ich die Dateien per Telefon-Tastenkommando (z.B. #99*1* für die eine Datei, und #99*2* für die andere) in die Box einspiele?

Bin für jeden Tipp dankbar!
Vlg martian
 
Hallo.

"NoChecks=yes" einfügen.. Ok
Was für einen Editor sollte ich dafür verwenden (mein BS Windows XP Pro).
Habe die Datei mal mit dem Windows-Editor geöffnet,
damit kommt die Formatierung der Datei durcheinander.
Oder ist ein Hex-Editor dafür besser geeignet??

LG
Kevin

PS:
DM41 schrieb:
Kann man die Box so beschädigen das auch ein Recover nicht mehr möglich ist?
 
Zuletzt bearbeitet:
Hallo zusammen.

sry, dass ich so jahrtausende alte threads ausbuddle, aber wollte jetzt deswegen nichts neues eröffnen. Würde gerne meine Fritzbox 7050 via remote erreichen können. DynDNS is angemeldet und via VI habe ich unter "/var/flash/ar7.cfg

"tcp 0.0.0.0:12345 192.168.178.2:80 0 # FritzBox"

(IP meiner fritzbox ist auf 192.168.178.2 geändert)

Jetzt habe ich beim import auch das Problem mit der Checksumme. "NoCheck = yes" klappt leider net. Mit dem perl-script komme ich nicht klar. hab nen perlinterpreter (und windows) aber wie ich die checksumme jetzt hinkrieg...ka. Bitte helft mir, hab da leide rnicht allzuviel ahnung.

Danke schonmal!


Edit: entschuldigung, habe das "s" bei "NoChecks = yes" vergessen. Allerdings gehts immer noch nicht :( Ich komm net auf die box mit meiner dyndns-adresse...

edit2: hätte ich port 443 freigeben müssen oder so?
 
Zuletzt bearbeitet:
"tcp 0.0.0.0:12345 192.168.178.2:80 0 # FritzBox"

Aua!, das würde ja bedeuten, dass jeder zumindest bis zur Weboberfläche kommt, ist das wirklich so gewollt?

Sicherer wäre hier z.B. SSH (via dropbear) geht auch ohne Freetz, und dann eine sichere Verbindung via SSH zur Box herstellen. Darüber kannst Du dann auch beliebig "tunneln" und dein WebIF administrieren, hast gleichzeitig noch Konsolenzugriff und es ist bedeutend sicherer gegen unbefugtem Zugriff.

Zu deinem eigendlichen Problem, dass kommt auf die Firmware an.

Versuchs doch mal Testweise mit
Code:
 "tcp 0.0.0.0:12345 0.0.0.0:80,"

Gruß Lemur
 

Ausprobiert mit dem Original-Export und das Programm behauptet, dass die Checksumme falsch wäre. AVM muss was zuletzt geändert haben.

**** FRITZ!Box Fon WLAN 7270 CONFIGURATION EXPORT
**** CFGFILE:ar7.cfg
**** CFGFILE:wlan.cfg
**** CFGFILE:voip.cfg
**** CFGFILE:usb.cfg
**** CFGFILE:tr069.cfg
**** BINFILE:fx_cg
**** BINFILE:fx_conf
**** BINFILE:fx_def
**** BINFILE:fx_lcr
**** BINFILE:telefon_misc
**** BINFILE:phonebook
**** BINFILE:calllog
**** BINFILE:dect_misc
**** BINFILE:fonctrl
**** BINFILE:dect_eeprom
**** BINFILE:dmgr_handset_user
**** BINFILE:config
**** CFGFILE:vpn.cfg
**** CFGFILE:user.cfg
**** BINFILE:umts.cfg
**** BINFILE:configd
WRONG CHECKSUM d116b1fc vs. 61e8a20a

Hal jemand ein neueres Proggi?
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.