Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Firmware niegdyś jako .bin ale ostatnio tylko jako .fw

mariomaster 17 Lut 2014 13:44 2079 29
  • #1 17 Lut 2014 13:44
    mariomaster
    Poziom 9  

    Witam,

    mam ogólne pytanie dotyczące firmware-u do sprzętu a mianowicie producent udostępniał niegdyś firmware w formacie .bin, który mogłem spokojnie podejrzeć w Hex Workshop niestety od jakiegoś czasu nowe wersje są tylko w formacie .fw i podejrzenie w programie nic nie daje stąd moje pytanie.
    Niestety poszukiwania konwertera .fw/.bin w internecie nie dały rezultatu więc przypuszczam, że nie ma żadnego konwertera .fw do postaci .bin. Mam jedno "przejściowe" Firmware, które było na początku z rozszerzeniem .bin ale chwilę potem zamieniono na postać .fw i jest tej samej numeracji wersji, więc czy istnieje możliwość porównania tych identycznych plików firmware-u tak by ustalić jak to jest "kodowane"? Dzięki tej operacji mógłbym nowy firmware przekonwertować do .bin mając tzw. klucz jakim to zrobiono.

    Mam nadzieję że nie zamotałem za bardzo.

    0 29
  • #2 17 Lut 2014 13:46
    arnoldziq
    Moderator Programowanie

    Zacznij od zmiany rozszerzenia pliku .fw na .bin.
    To powinno załatwić sprawę "konwertowania" pliku.

    0
  • #3 17 Lut 2014 14:05
    mariomaster
    Poziom 9  

    Niestety to już próbowałem ale plik da się otworzyć ale jest ewidentnie w jakiś sposób kodowany bo niegdyś mogłem podejrzeć wszystkie nazwy występujące w menu a teraz nie da się znaleźć żadnego słowa, a i pliki mają różny rozmiar.

    0
  • #4 17 Lut 2014 14:07
    arnoldziq
    Moderator Programowanie

    Zamieść ten plik, to zobaczymy.
    Tak "zdalnie" to możemy sobie powróżyć.

    0
  • #5 17 Lut 2014 14:25
    mariomaster
    Poziom 9  

    wrzucę dziś wieczorem jak będę w domu

    0
  • #6 17 Lut 2014 18:57
    McMonster
    Poziom 32  

    Zapewne jest to jakieś proste zaciemnienie lub firmware został spakowany. Osoba znająca trochę asemblera mogłaby się pokusić o zdekompilowanie i sprawdzenie, co siedzi w środku. Niedawno pojawił się fajny przykład takiej operacji, ale to podaję raczej jako ciekawostkę.

    0
  • #7 17 Lut 2014 19:46
    mariomaster
    Poziom 9  

    no właśnie tak podejrzewam, że musi być jakoś spakowane bo nawet plik .bin ma 424 kb a .fw ma tylko 360kb i w pliku .bin jest wszystko czytelne a w pliku .fw nic nie da się odczytać mimo, że pliki są na pewno z tym samym oprogramowaniem.

    0
  • #8 17 Lut 2014 20:07
    McMonster
    Poziom 32  

    Bez wiedzy, co to za urządzenie, to raczej ciężko będzie nawet spojrzeć. A przynajmniej, jaki procesor nim steruje.

    0
  • #9 17 Lut 2014 20:41
    mariomaster
    Poziom 9  

    McMonster napisał:
    Bez wiedzy, co to za urządzenie, to raczej ciężko będzie nawet spojrzeć. A przynajmniej, jaki procesor nim steruje.

    0
  • #10 17 Lut 2014 21:16
    mi14chal
    Poziom 28  

    A jak wygląda proces upgrade firmware?

    0
  • #11 17 Lut 2014 21:29
    mariomaster
    Poziom 9  

    przez kabel usb i ich program konfiguracyjny do urządzenia w opcji upgrade i wtedy można podać firmware .bin lub .fw niestety można tylko wrzucić ale nie ma opcji by zczytać do pliku a szkoda :cry:

    0
  • #12 17 Lut 2014 21:48
    mi14chal
    Poziom 28  

    No to według mnie to tak wygląda, że program ich do upgrade jak ma plik bin to normalnie wgrywa do pamięci, a jak ma plik fw to dokonuje konwersji i wgrywa. Tak przypuszczam. Trza by było zobaczyć ten ich program do wgrywania wtedy mógłbym coś więcej powiedzieć.

    0
  • #13 17 Lut 2014 22:04
    mariomaster
    Poziom 9  

    mi14chal napisał:
    No to według mnie to tak wygląda, że program ich do upgrade jak ma plik bin to normalnie wgrywa do pamięci, a jak ma plik fw to dokonuje konwersji i wgrywa. Tak przypuszczam. Trza by było zobaczyć ten ich program do wgrywania wtedy mógłbym coś więcej powiedzieć.


    Pewnie masz rację że to właśnie program dokonuje konwersji tylko że jest w .exe i Resource Hacker niewiele widzi tak więc jestem w punkcie wyjścia...gdzieś kiedyś czytałem o takim urządzeniu podpinanym między pc i urządzeniem do "podejrzenia" co wysyłane jest podczas transmisji danych przez usb ale czy to by pomogło to też pytanie. Program konfiguracyjny wysyłam na priv

    0
  • #14 17 Lut 2014 22:24
    mi14chal
    Poziom 28  

    Na program postaram się spojrzeć jutro. Ale za to odniosę się do twojej wypowiedzi: Resource Hacker w tym zastosowaniu nie pomoże, on jest od pokazywania zasobów, czyli ikonek, tekstów, obrazków itp itd które są w exe. Co do pomysłu o podejrzeniu transmisji może nie być trafione z tego względu że do tego urządzenia dane są wysyłane w jakimś ustalonym formacie, a aplikacja pewnie odpowiada za ewentualną konwersje z innego formatu pliku do tego właściwego który jest wysyłany do urządzenia.

    0
  • #15 17 Lut 2014 23:27
    oloam
    Poziom 20  

    Mnie natomiast wydaje sie to proste. Pierwsze 32 bajty zostaja jako naglowek. Od kazdego nsatepnego odejmij 0x80. Pozmieniane sa bloki ale widac ze zawartosc pasuje do starego firmware.
    przekonwertowany plik:

    0
  • #16 18 Lut 2014 07:20
    mariomaster
    Poziom 9  

    oloam napisał:
    Mnie natomiast wydaje sie to proste. Pierwsze 32 bajty t to jako naglowek. Od kazdego nastepnego odejmij 0x80. Pozmieniane sa bloki ale widac ze zawartosc pasuje do starego firmware.
    przekonwertowany plik:


    Witaj,

    piszę z komórki bo nie mam tego teraz jak sprawdzić w pracy ale nie wiem czy zrozumiałeś o co mi chodzi bo plik .bin jest podany i wynikowy .fw tez wiec chodzi o wzór tego równania? Widać że plik fw jest mniejszy jakby skompresowany więc jak znaleźć klucz jakim został skompilowany plik. fw, które w wyniku będzie miało podany przeze mnie plik .bin

    Jak będę miał wzór to będę mógł wtedy najnowszy Firmware, który mam tylko w .fw sam przerobić na postać .bin

    0
  • #17 18 Lut 2014 08:14
    oloam
    Poziom 20  

    Sprawdz najpierw ten plik co podalem hex edytorem. Wloz troche swojej pracy. Mnie znalezienie rodzaju konwersji zajelo 5min, nastepne 5min to napisanie programu ktory dokonuje konwersji. Napisalem ze bloki w jednym i w drugim pliku znajuduja sie w innych miejscach (pozamieniane). Musisz siasc - porownac oba pliki i wyciagnac odpowiednie wnioski (tj. jak z pliku mojego , zrobic plik do wgrywania). Nie analizujac zbytnio tylko wyszukujac dane w jednym i drugim pliku stwierdzam ze nie powinno to byc trudne (chyba ze jest w .bin jest suma kontrola, chociaz podejzewam,ze edytowales program i wgrywales,wiec raczej nie ma). Plik wyzej jest uciety o 32 bajty (nie doliczylem naglowku) wiec podaje caly plik:

    Ps. Wlasnie zauwazylem, ze teraz z kolei plik jest za duzy o jeden bajt. Dokladnie o ostatni bajt w pliku , wiec nie bierz tego bajtu pod uwage przy analizie

    0
  • #18 18 Lut 2014 10:56
    mariomaster
    Poziom 9  

    oloam napisał:
    Sprawdz najpierw ten plik co podalem hex edytorem. Wloz troche swojej pracy. Mnie znalezienie rodzaju konwersji zajelo 5min, nastepne 5min to napisanie programu ktory dokonuje konwersji.


    Nie no to nie tak, bo napisałem, że jestem w pracy i dopiero w domu mogę się temu przyjrzeć, więc się nie oburzaj, bo doceniam chęć pomocy. Tak jak napisałem ten podany przeze mnie plik .bin jest na pewno prawidłowy i jak wrzucam na Flasha, to działa bez problemu, a mam inny nowszy plik w formacie .fw (nie dawałem go tutaj, bo sam chciałbym się tym pobawić), który według jakiegoś schematu chcę przerobić na .bin. Więc mówisz, że bloki są pozamieniane?

    0
  • #19 18 Lut 2014 11:22
    oloam
    Poziom 20  

    Zerknalem na oba pliki (oryginalny bin i moj przekonwertowany) doslownie nie dluzej niz minute. Bloki danych sie zgadzaly (sprawdzalem po kilka - kilkanascie bajtow ale widac ze bloki byly duzo wieksze) tylko byly w roznych miejscach. Musisz zlokalizowac wszystkie dane z mojego pliku w pliku oryginalnym, to co zostanie w pliku oryginalnym to dodatkowe dane (naglowki ,moze sumy kontrolne , czy rozmieszczenie blokow), ktore musisz sprawdzic pod katem danych krytycznych do poprawnego procesu wgrywania firmware. Jak poznasz budowe pliku oryginalnego to bez problemu przerobisz .fw do .bin

    0
  • #20 18 Lut 2014 15:34
    mariomaster
    Poziom 9  

    Podczas przeglądania plików na końcu znalazłem punkt zaczepienia i z każdego z podkreślonych na czerwono stringów w pliku .bin dodałem 80 i dostałem dokładnie ten sam wynik co w pliku .fw więc coś w tym jest

    0
  • #21 18 Lut 2014 15:53
    oloam
    Poziom 20  

    Czytales wogole moje posty? Dokladnie to napisalem w poscie #15 tego tematu. Jezeli chcesz zmieniac tylko stringi to przekonwertuj sobie caly plik sprawdz w ktorym miejscu sa interesujace cie stringi, wprowadz swoje i przekonwertuj spowrotem na .fw . Zastanow sie co chcesz zrobic - zmienic format do .bin czy tylko zmieniac stringi w .fw (?)

    0
  • #22 18 Lut 2014 16:04
    mariomaster
    Poziom 9  

    oloam napisał:
    Czytales wogole moje posty? Dokladnie to napisalem w poscie #15 tego tematu. Jezeli chcesz zmieniac tylko stringi to przekonwertuj sobie caly plik sprawdz w ktorym miejscu sa interesujace cie stringi, wprowadz swoje i przekonwertuj spowrotem na .fw . Zastanow sie co chcesz zrobic - zmienic format do .bin czy tylko zmieniac stringi w .fw (?)


    oczywiście że czytałem i stwierdzenie "więc coś w tym jest" odnosiło się do Twojej sugestii bo obiecałem że przejrzę ten plik później więc czytaj też między wierszami. Napisz mi proszę jak przeliczyć cały plik bow Hex Workshop nie widzę takiej opcji.

    0
  • #24 18 Lut 2014 16:18
    mariomaster
    Poziom 9  

    w tym podanym przez Ciebie pliku musi być błąd bo już na samym początku w oryginalnym pliku .bin jest słowo BASIC (4241 5349 4320) czyli po przeliczeniu C2C1D3C9C3A0 powinno być a nie ma, za to w oryginalnym .fw jest od 0x0000054E

    Ps. W poście #17 nie widzę programu tylko plik .bin :D ale rozumiem, że miałeś na myśli mowę o nim a teraz już go napisałeś więc mam nadzieję że będę mógł go wypróbować bo ręcznie to by mi ze 3 lata zeszły :)

    0
  • #25 18 Lut 2014 16:40
    oloam
    Poziom 20  

    Post #15:

    Cytat:
    Pierwsze 32 bajty zostaja jako naglowek. Od kazdego nsatepnego odejmij 0x80


    Cos mi sie wydaje ze nie dokonca wiesz co chcesz osiagnac. Odpowiedz na pytanie ktore zadalem wczesniej. Chcesz zmieniac stringi w .fw czy konwertowac do .bin. To pierwsze masz juz praktycznie rozwiazane czyli przekonwertowac (odejmujac 0x80) plik do postaci jaki podalem wczesniej , znalezc w hex edytorze stringi , pozamieniac i znowu przekonwertowac do .fw (dodajac 0x80). Program moge wrzucic dopiero jak wroce z pracy z poprawionym bledem dodawania ostatniego bajtu.
    Plik .fw po przekonwertowaniu nie wyglada jak .bin oryginalny tylko zawiera te same dane jakie sa w .bin (np czytelne stringi do zmiany).

    0
  • #26 18 Lut 2014 16:50
    mariomaster
    Poziom 9  

    oczywiście że chcę konwersji do postaci .bin więc podeślij mi ten programik jak wrócisz byle pod Windowsa. Póki co dziękuję za pomoc i może coś z tego będzie :-) choć gdyby te pliki były tego samego rozmiaru to bym był happy a tak to czarno to widzę.

    0
  • #27 18 Lut 2014 17:00
    oloam
    Poziom 20  

    Program konwertuje plik do postaci : kazda dana (oprocz naglowka) - 0x80. Plik wynikowy to nie jest twoj .bin Dopiero z tego przekonwertowanego musisz 'ulozyc' prawidlowy .bin lub mozesz juz edytowac do zmiany stringow (pozniej znowu kazda dana +0x80 i wtedy mozesz wgrywac .fw). Nie wiem , moze nie potrafie wytlumaczyc. Prosilbym kogos innego czy moglby mi powiedziec czy rozumie co do tej pory wytlumaczylem. Nie potrafie inaczej... chyba ze schematycznie narysuje o co chodzi.


    Jestesmy w domu... Caly blok od 33 bajtu do konca z mojego przekonwertowanego pliku to rowniez caly blok oryginalnego pliku .bin od adresu 65536 do konca. Juz chyba teraz nie bedziesz mial problemow z przerobka , chyba ze we wczesniejszych danych jest weryfikacja sw

    0
  • #28 18 Lut 2014 19:27
    mariomaster
    Poziom 9  

    Zrozumialem więc widzę że mnie trochę nie doceniasz a rzeczywiście blok od adresu 0x00010000 jest identyczny do konca pliku czyli pierwszy blok 0x00000000-0x0000FFFF jest nieprawidłowy ale to już naprawdę wielka pomoc więc bardzo dziękuję a czy mógłbyś zrobić jeszcze odwrotny konwerter bin2fw wtedy miałbym już wszystko do dalszej zabawy.

    0
  • Pomocny post
    #29 18 Lut 2014 22:25
    oloam
    Poziom 20  

    Pirewszy blok , ktory okreslasz jako nieprawidlowy to w oryginalnym .bin wyglada jak bootloader i tak na moje oko plik .bin zmienia bootloader i firmware a plik .fw tylko firmware.
    Przypuszczam, ze juz wczesniej zmieniales stringi ale przypominam, ze nowe stringi nie moga byc dluzsze niz dotychczasowe (nie mozesz powiekszyc ani nadpisywac danych), jezeli nowy string ma byc krotszy, to znaki trzeba zastapic spacjami (nie wolno zmieniac wielkosci pliku)
    Konwerter w obie strony:

    0
  • #30 19 Lut 2014 14:33
    mariomaster
    Poziom 9  

    tak jak mówisz w tym flashu jest rzeczywiście dolny bootloader więc to pewnie z jakichś przyczyn producent zrezygnowal z update bootloadera a tylko tylko samego firmware-u.

    Dzięki za pomoc jesteś wielki :shocked!:

    0
  Szukaj w 5mln produktów