Tiedostoapuohjelman lähtö, kuten olet todennäköisesti arvannut, on väärä positiivinen. Firmware.bin-tiedoston alussa on perusotsikko (huomaa "SIG" -merkkijono tiedoston alussa) ja joukko MIPS-suoritettavaa koodia, joka todennäköisesti on käynnistyslatausohjelma:
DECIMAL HEX KUVAUS ------------------------------------------ -------------------------------------------------- ----------------------- 196 0xC4 MIPS-ohjeet, toimintoeppilogi284 0x11C MIPS-ohjeet, toimintaepilogi372 0x174 MIPS-ohjeet, toimintaepilogi388 0x184 MIPS-ohjeet, toimintaepilogi416 0x1A0 MIPS ohjeet, toiminto-epilogi424 0x1A8 MIPS-ohjeet, toiminnon prologue592 0x250 MIPS-ohjeet, toiminto-epilogi712 0x2C8 MIPS-ohjeet, toiminta-epilogi720 0x2D0 MIPS-ohjeet, toimintoprologi832 0x340 MIPS-ohjeet, toimintoeppilogi840 0x348 MIPS-ohjeet, toimintoprologi912 0x390 MIPS-ohjeet, toimintaepilogi920 0x398 MIPS-ohjeet, toimintoprologi976 0x3D0 MIPS-ohjeet, toimintaepilogi984 0x3D8 MIPS-ohjeet, toimintaepilogi1084 0x3C MIPS-ohjeet, toimintaepilogi1084 0x43C MIPS-ohjeet, toimintoepilogi114 ohjeet, toimintoeppi ...
Merkkijonojen suorittaminen firmware.bin-binaarissa näyttää olevan varmuuskopio tästä hypoteesista, ja siinä on monia viitteitä tarkistus- ja purkuvirheisiin:
tarkistussumma virhe! (cal =% 04X, pitäisi =% 04X) allekirjoitusvirhe! (Pakattu) alku:% p vertaamattoman tyyppinen tyyppi memMapTab ja kuva!
Pituus:% X, Tarkistussumma:% 04X Versio:% s, Pakattu pituus:% X, Tarkistussumma:% 04XmemMapTab Tarkistussumma virhe! (cal =% 04X, pitäisi =% 04X) memMapTab-tarkistussumuvirhe!% 3d:% s (% s), start =% p, len =% X% s Osa: memMapTab:% d merkintää, start =% p, tarkistussumma =% 04X $ KÄYTTÄJÄ -osa: allekirjoitusvirhe! ROMIO-kuvan alku% pcode length:% Xcode -versio:% scode start:% pPakennetun kuvan virhe! Puretun kuvan tarkistussummavirhe! (cal =% 04X, should =% 04X) ROM-pituus (% X) > RAM-muistin pituus (% X)!% s ei löydy osiosta $ ROM.% s ei löydy osiosta $ RAM. RasCode
Löytämiesi kahden puretun LZMA-tiedoston merkkijonojen nopea tarkastelu osoittaa, että pienempi (siirtymässä 0x14C33) näyttää sisältävän jonkin virheenkorjausliittymäkoodin, joka on todennäköisesti suunniteltu käytettäväksi laitteen UART: n kautta :
UART: N SISÄINEN PALAUTUSTESTI UART: N ULKOINEN TAKAISIN TESTERROR ======= HTP-komentolistaus ======= < paina mitä tahansa näppäintä jatkaaksesi > macPHYCtrl.value = MAC INTERNAL LOOPBACK TESTI MAC ULKOINEN TAKAISIN TESTI MAC SISÄINEN TAKAISIN MAC ULKOINEN TAKAISIN LanIntLoopBack ... Tx-polku täynnä, pudota paketti:% d0x% 08xtx kuvaus% d: rx-kuvaus% d:% 02X% 08X: < Paina ES-näppäintä jatkaaksesi >0123456789abcdefghijklmnopqrstuvwxyz0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ<NULL>) Rekisteröi kaatopaikka ********** ATM SAR -moduuli: VC (Reset&Identify reg = Liikenteen aikataulu. TB reg = TX Data ctrl / stat reg = RX Data ctrl / stat reg = Last IRQ Status reg = IRQ Queue Entry len = VC IRQ Mask register = TX Data Current descr = RX Data Current descr = TX Traffic PCR = TX Traffic MBS / Tyyppi = TX Total Data Count = VC IRQ CC Mask peite = TX CC Current descr = TX CC Total Count = RX Miss Cell Count = ***** ATM SAR -moduuli: Common Register Dump *****
Toinen suurempi tiedosto (at offset 0x55433) näyttää sisältävän ThreadX RTOS, Green Hills:
RTA231CV Varattu Stringanonymouswww.huawei.com1000tc-e4f6ed2f5b87<MSFT 5.07user<MSFT 5.07LXT972" AC101LCIP101RTL8201CAC201jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjSystem Timer ThreadCopyright (c) 1996-2000 Express Logic Inc. * ThreadX R3900 / Green Hills -versio G3.0f.3.0b *
Jos et ole perehtynyt RTOS: iin, ne ovat yleensä vain yksi iso ydin, jossa ei ole käsitystä käyttäjän tilasta vs ytintilasta tai mitä ajattelet normaalina tiedostojärjestelmänä, vaikka ne sisältävät esimerkiksi kuvia ja HTML-tiedostoja tämän laitteen verkkokäyttöliittymälle (katso esimerkki tästä kuinka tämäntyyppiset tiedostot ovat s joissakin VxWorks-järjestelmissä).
Sanoisin, että tämä laiteohjelmisto on jo melkein purettu sen perusosiin. Käynnistyslataimen tai kahden puretun LZMA-tiedoston analysoimiseksi sinun on aloitettava näiden tiedostojen purkaminen, mikä tarkoittaa muistiosoitteen määrittämistä, johon ne ladataan käynnistyshetkellä, tunnistamalla koodi / dataosuudet, etsimällä mahdollisia symbolitaulukoita, tunnistamalla yhteiset toiminnot ja luultavasti kirjoittamalla komentosarjoja auttamaan kaikkia yllä mainittuja.