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.

wiwa hd-50 - Edycja FW wiwa HD-50 - czym i jak?

mscgs24 15 Sie 2012 20:10 2724 4
  • #1 15 Sie 2012 20:10
    mscgs24
    Poziom 21  

    Posiadam ten właśnie tuner, oraz drugi wiwa hd-85.
    Z racji tego, że w razie "w" mam zapasowy, chciałem dopytać doświadczonych w tym temacie.
    Na stronie "GUTKA" LINK, udostępnione są edytowane / modyfikowane wersje firmware'u.
    Pliki romu *.bin mogę wyedytować w np."IDA Pro Advanced", ale co dalej?
    Skąd dowiem się:
    - jak wygląda i gdzie jest tapeta startowa (logo startowe tego tunera)
    - jak są skonstruowane opcje menu (np. Sleep-timer jest programowany co 1 godzinę, a chciałbym np. co 30 min)
    - jak zmienić przeźroczystość menu
    Z pliku HEX nic nie wynika.
    Teraz pytanie główne, jeśli otworzę taki plik *.bin, to czym mogę go edytować, by mieć podgląd treści itp, oraz czym ewentualnie mogę wyeksportować po edycji do pierwotnego formatu.
    Pewnie też trzeba będzie obliczyć sumę kontrolną przed próbą wgrania.

    Proszę o jasne odpowiedzi i ew. o linki lub nazwy programów.
    Zaznaczę z góry, że nie są na miejscu odpowiedzi typu : "jeśli nie wiesz jak to zrobić to się za to nie bierz" - to nie jest odpowiedź.

    Poprostu chcę się dowiedzieć co i jak, może przy tym zepsuję sprzęt, ale do ciekawskich świat należy.

    Pozdrawiam i dziękuję wszystkim pomocnym.

    0 4
  • Pomocny post
    #2 15 Sie 2012 23:03
    antekone
    Poziom 16  

    Temat inżynierii wstecznej firmware jest dość obszerny i wymaga wiedzy z ogólnego tematu inżynierii wstecznej. Głównie chodzi o posiadanie intuicji w celu znajdowania informacji, rozglądania się po pliku, identyfikowania różnych formatów, interpretowania znaczenia offsetów w których znajdują się porcje danych i umiejętności zlepiania tych informacji w całość. Oprócz tego należy znać asembler platformy docelowej, potrafić czytać i rozumieć wygenerowany kod.

    Narzędzie IDA Pro na zbyt wiele Ci się nie przyda, jeśli nie znasz architektury platformy docelowej, oraz jeśli nie masz pliku wykonywalnego w obsługiwanym formacie. Nie jest ono też zaprojektowane do modyfikowania plików binarnych, tylko do dekompilacji kodu. Modyfikację kodu można wykonać każdym hexedytorem przy użyciu informacji dostarczonych przez IDA (np. offset).

    Polecam poczytać różne tutoriale o inżynierii wstecznej firmware (link). Czasami trzeba przejrzeć cały plik przy użyciu hexedytora, strona po stronie, w poszukiwaniu czegoś konkretnego.

    Nie wiem na ile Ci się przyda moja odpowiedź, dlatego dorzucę też krótkie info, że w obrazie w wersji 120713.491511.1 pod offsetem 0x70000 znajduje się jakiś obrazek WIWA. Nie wiem czy to tapeta, czy nie, ale możesz spróbować zacząć szukać właśnie stąd. Pod 0x71134 znajduje się miniaturka tego pierwszego obrazu. Ostatnie podwójne słowo w pliku stanowi wartość która na pierwszy rzut oka odbiega od struktury danych z okolic końca pliku, dlatego może znaczyć to, że jest to jakaś suma kontrolna (być może CRC32), więc polecam zastanowić się przed modyfikacją tego firmware przed jego szerszym zrozumieniem.

    Offset 0xBA20 zawiera stringi będące treścią błędów biblioteki zlib, dlatego wnioskuję, że niektóre części firmware skompresowane są przy użyciu tej biblioteki.

    Offsety 0x10CE0, 0x14750 zawierają stringi będące argumentami funkcji z rodziny printf(), więc być może firmware pisany jest w języku z rodziny C.

    Offset 0x11840 zawiera ciekawe strumienie danych, być może są to części jakiejś biblioteki wykorzystywanej w kodzie firmware.

    Okolice 0x1a000 zawierają też ciekawe strumienie danych, być może osoba bardziej doświadczona ode mnie w embedded programming byłaby w stanie określić wykorzystany system lub architekturę wykorzystywaną przez to urządzenie.

    Offset 0x8001C to początek strumienia LZMA. Dekompresja w moim przypadku stworzyła logiczny strumień danych, jednak niekompletny - brakuje mi czasu na bardziej dogłębną analizę. Wygenerowany plik zawiera jednak nazwy typu "vorbis", "dts", "mpeg", "ac3p", etc, więc być może jest do zdekompresowany kod firmware. Znajdują się też referencje do implementacji stosu TCP/IP w wersji BSD, jak też i do informacji, że być może maszyna działa pod kontrolą systemu eCos. Jeśli to prawda, powinno to zasugerować możliwe architektury CPU, to z kolei powinno ułatwić lokalizowanie kodu w pliku binarnym, i rozpocząć fazę analizy kodu przy pomocy programu IDA, jednak daleko wykracza to poza mój przedział czasowy ;).

    0
  • #3 16 Sie 2012 18:58
    mscgs24
    Poziom 21  

    antekone - bardzo dziękuję za obszerną odpowiedź, a nie zbywanie i olewkę.
    Informacje, które zawarłeś w odpowiedzi, napewno będą pomocne. Nie chcę się zająć w jakiś twórczy sposób programowaniem, bo chyba już trochę zbyt późno na naukę C++ czy innych języków.
    Kiedyś byłem "specem" w BASIC'u (czasy ATARI) wtedy napisanie kilkuset czy kilku tysięcy prostych linijek kodu owocowało Megaodjazdowym (jak na tamte czasy) programem czy grą. Niestety, później nastąpiła przerwa w programowaniu i wypadłem z obiegu.
    Chcę jednak, chociaż trochę poznać obecne języki programistyczne, a że najlepiej uczy się człowiek metodą prób i błędów, to uparcie poszukuję odpowiedzi.

    Jeszcze raz dziękuję antekone.

    Nadal czekam na info, o programach, a w szczególności na info o programach, którymi modyfikuje soft "GUTEK".
    Mam ochotę się tym softem pobawić.

    0
  • #4 16 Sie 2012 22:24
    antekone
    Poziom 16  

    Podejrzewam, że tu niestety nie znajdziesz więcej informacji na ten temat :)

    Nie jestem pewien czy można tu polecać inne fora, dlatego napiszę, że na stronie Gutka, którą podałeś, w dziale z różnymi firmware'ami (softy.htm), na samym dole, znajdują się odnośniki do kilku innych forów, gdzie zdaje się urzęduje Gutek razem z całym team'em reversującym ten firmware.

    Sugerowałbym zadać Twoje pytania tam ;)

    0
  • #5 26 Sie 2012 10:51
    mscgs24
    Poziom 21  

    Widzę, że temat utkwił w miejscu, ale nikt łopatologicznie nie odpowiedział na to co mnie interesuje, tzn:

    1. Inżynieria wsteczna, to o czym napisał antekone to pewnie rozbijanie lub dekompilacja pliku *.bin - czym można to zrobić.
    2. Procesor ARM, zakładając, że mam program (deassembler) do tego rodzaju procesorów, to co mogę zrobić jeśli otworzę plik *.bin, a w iwdoku mam kod hexadecymalny?
    3. Skąd będę wiiedział, w jakim adresie (hex) znajduje się np. grafika, stringi, które chcę przetłumaczyć itp.
    4. Czy jest jakikolwiek program, który potrafi wyekstraktować cokolwiek z pliku binarnego lub przynajmniej umożliwi podgląd treści takiego pliku? (treści czyt. obrazy, teksty, dźwięki)
    Siedzę w googlach od ponad tygodnia i poszukuję, jednak wszystkie programy, które testuję, sprowadzają mnie do jednego, do wyświetlenia kodu HEX i to wszystko.
    Język HEX już chyba opanowałem, ale co z tego, jak wiem tylko jakie liczby odpowiadają za litery, ale nie wiem co odpowiada za np. obrazy.

    Czy jest możliwość skopiowania kodu HEX i wklejenie do jakiegoś programu, który to "rozgryzie"?

    0
  Szukaj w 5mln produktów