Pytanko do informatyków

czyli to co nie pasuje nigdzie indziej ale wiąże się z offroad'em

Moderator: moralez

rokfor32
 
 
Posty: 16166
Rejestracja: pt lut 22, 2008 9:53 pm
Lokalizacja: w sprawach technicznych - rokfor32@wp.pl

Pytanko do informatyków

Post autor: rokfor32 » śr mar 30, 2022 7:45 pm

Bo wiem, że kilku tu rezyduje ... :)21

A - jak zwykle - mam nietypowy - i raczej niełatwy problemik. Potrzebuje wyłuskać ze skompilowanych danych adresy w pamięci urządzenia.

O co chodzi: tematem jest starszy tester OBD2, który pozyskuje dane z karty pamięci (i w zależności od zapodanej karty/danych służy do różnych celów/marek aut). Ale - jest też karta uniwersalna, bez danych specyficznych. A dokładniej - mogła by je mieć (część z nich) - gdyby producent je tam wgrał. Są natomiast odnośniki - po których "kliknieciu" tester zgłasza "not present".

Te odnośniki idą do konkretnego adresu na karcie - jeżeli adres nie jest pusty - to się dany program normalnie aktywuje. Jeżeli jest pusty - to "not present".

I teraz sedno - ta karta jest prawie pusta - w jakichś 85%. Mogę więc wgrać sobie na jedną kartę specyficzne oprogramowanie (bo akurat mam) - ale potrzebuje wyłuskać, do jakiego adresu prowadzi konkretny odnośnik - coby posiadany dodatkowy fragment tam właśnie zapodać.

Ale nie wiem jak to wyłuskać z danych karty - tzn. gdzie (adres w pamięci) prowadzi dany odnośnik.

Są jakieś metody żeby to "wyśledzić"?

Na marginesie - karta skompilowana to oczywiście sieczka - przy podglądzie z hex editora. Ale udało się mi wykminić, że "sieczka" jest poprzestawiana (przynajmniej do odczytu zwykłego tekstu - tego w interfejsie testera nie brakuje przecież) w sposób regularny - pobawienie sie zwykłym arkuszem kalkulacyjnym pozwoliło na poustawianie tego tak - żeby było czytelne. Znaczy się - pola tekstowe stały się w pełni zrozumiałe. Ale odnośników adresowych nadal tam nie potrafię zlokalizować ...
w sprawach technicznych - rokfor32@wp.pl

Awatar użytkownika
Kostuch
 
 
Posty: 7393
Rejestracja: pn sty 20, 2003 2:17 pm
Lokalizacja: wawa

Re: Pytanko do informatyków

Post autor: Kostuch » śr mar 30, 2022 9:26 pm

Co rozumiesz przez "karta pamięci"?
Mi się to kojarzy z taką grą gdzie odkrywa się dwie karty i jak mają taki sam obrazek, to dostajesz punkt :)21

A jak piszesz o zwykłej karcie SD, to pisanie o niej w kontekście adresów jest lekkim nadużyciem (bo pewnie ma jakiś filesystem).

No i "puste" może oznaczać dla programu cokolwiek: zero, dziesięć, trzynaście, dwieście pięćdziesiąt pięć, napis 'DEADBEEF', etc...
Przed erą internetu, każdy wiejski głupek pozostawał w swojej wiosce.

Awatar użytkownika
misman
 
 
Posty: 6072
Rejestracja: ndz maja 26, 2002 1:00 am
Lokalizacja: zawodzi...

Re: Pytanko do informatyków

Post autor: misman » śr mar 30, 2022 10:08 pm

Jak Kostuch napisał - raczej nie powinieneś używać określeń typu "adres na karcie", bo karta ma swój kontroler, system plików i owe "odnośniki" są pewnie jakąś analogią do - dajmy na to Windzianych - 'skrótów'. A to nie jest bynajmniej skrót do "adresu" a odwołanie do pliku. Plik może być gdziebądź na karcie/dysku/etc nośniku. Ważne jest, aby ścieżka i nazwa się zgadzała. Tak więc gmatwasz zagadnienie. Prawopodobnie skróty nie działają, bo w oczekiwanej lokalizacji (filesystemu) oczekiwanego pliku o oczekiwanej nazwie nie ma. Ale adresacja komórki pamięci raczej niewiele ma tu do rzeczy. Jak już chcesz coś ustalać, to zacznij od wyłuskania informacji o zastosowanym na tych kartach systemie plików, sprawdź tablicę partycji...
Raczej mało prawdopodobne, aby producent stosował jakiś autorski system plików czy wręcz zapis bezpośredni po adresach np. sektorów, mając do dyspozycji parędziesiąt gotowców, z czego przynajmniej kilka bez większych i istotnych wad. Brać i stosować, zamiast wymyślać swoje.
"Panie doktorze, koledzy mogą częściej i więcej...
-Jaki problem? Chwal się Pan jak oni."

Awatar użytkownika
Kostuch
 
 
Posty: 7393
Rejestracja: pn sty 20, 2003 2:17 pm
Lokalizacja: wawa

Re: Pytanko do informatyków

Post autor: Kostuch » śr mar 30, 2022 10:37 pm

misman pisze:
śr mar 30, 2022 10:08 pm
Brać i stosować, zamiast wymyślać swoje.
Z drugiej strony, da się zaobserwować "security by obscurity" - im bardziej niszowy soft lub urządzenie, tym bardziej udziwnione rozwiązania i patenty.
Zwłaszcza jak za oryginał trzeba zapłacić grube $$$.

Miałem w ręku taki skaner obd2 ze sprzętowymi kluczami.
Płytki drukowane z jakąś pamięcią EPROM (jeszcze szybkę miały do kasowania UV) wtykane jako cartridge. Vintage pełną gębą.
W dzisiejszych czasach te lepsiejsze działają tylko on-line. Nie wykupisz abonamentu, to wypatatataj.
Przed erą internetu, każdy wiejski głupek pozostawał w swojej wiosce.

Awatar użytkownika
misman
 
 
Posty: 6072
Rejestracja: ndz maja 26, 2002 1:00 am
Lokalizacja: zawodzi...

Re: Pytanko do informatyków

Post autor: misman » śr mar 30, 2022 11:49 pm

Zgadzam się. Jednakże nadal jestem zdania, że system plików to jednak na tyle złożone zagadnienie, że nie warto "wymyślać koła" na nowo. Klucz to klucz - udziwnianie ma sens w przypadku wspomnianych $$$. Filesystem o błędnych założeniach powoduje wypirdalanie się systemu (zakupionego za $$$, z kluczem, a jakże :)21 ) i tym samym niezadowolenie oraz odpływ płatników $$$. IMO nie opłaca się. Sięga się po niszowe rozwiązania typu UFS czy QNX - z windozy niewidoczne/nieznane, i mniejsza szansa że ktoś się dogrzebie do ich obsługi :)21
"Panie doktorze, koledzy mogą częściej i więcej...
-Jaki problem? Chwal się Pan jak oni."

Awatar użytkownika
czarny bielsko
 
 
Posty: 10703
Rejestracja: ndz lut 08, 2004 12:56 pm
Lokalizacja: Kraków
Kontaktowanie:

Re: Pytanko do informatyków

Post autor: czarny bielsko » czw mar 31, 2022 7:56 am

jak kod jest skompilowany to jest lipa. Przeważnie po kompilacji trzeba długo posiedzieć, żeby zdekompilować kod i odczytać co autor miał na myśli. Nie mówię, że się nie da bo da się wszystko (prawie) ale tutaj w zasadzie to kwestia pojemności portfela i czasu na ogarnięcie tematu. No i przede wszystkim przydaje się info w czym program był napisany (stawiam na C#, ANSI C albo C++ ewentualnie Assembler czy inne języki niskiego poziomu).
Jest Navara D40 lekko dłubnięta...

Samurai - był
Terrano II - było
Pajero - było

rokfor32
 
 
Posty: 16166
Rejestracja: pt lut 22, 2008 9:53 pm
Lokalizacja: w sprawach technicznych - rokfor32@wp.pl

Re: Pytanko do informatyków

Post autor: rokfor32 » czw mar 31, 2022 10:36 am

Nie ma systemu plików - to jest karta linear flash typu mlc - dane sa zapisywane po prostu w określone komórki. (Na kompie mam do tego spec program, działający "poniżej" systemu operacyjnego kompa. System tych kart nie rozpoznaje). Te karty nawet nie mają w sobie kontrolera - one są po prostu wpięte (złączem) w magistralę (PCI w przypadku płyty normalnego kompa). Lub inaczej - nogi scalaka pamięci idą po prostu do pinów złącza - bez żadnego pośrednika :wink:

System odczytu najprawdopodobniej jest zaszyty w urządzeniu - ale do niego nie ma żadnego dostępu z poziomu urządzenia.

Dane na karcie sa dosyć ewidentnie pogrupowane - jak jest obszar tekstu - to tylko tekst (podzielony znakami rozdziału. I odpowiada to temu, co wyświetla skaner w poszczególnych zakładkach menu). Ale nie ma przy tym adresów - te są w innym obszarze karty (i na pewno karty - bo dane tekstowe są dla każdej karty/programu w innych miejscach). I są skompilowane.

To co wiem, to że skaner wymaga zapisania konkretnego adresu karty żeby wystartował - wszystkie typy kart mają charakterystyczny ciąg znaków (każda inny, ale wpisujący sie w pewien schemat) w określonym obszarze karty. (dokładniej - równo 4 MB). Ale potem następuje seria przekierowań - zależy które menu się aktywuje.

Żeby było jasne - ja tego nie potrzebuje w całości zdekodować. Potrzebuje wyłapać, do którego miejsca w pamięci kieruje dana zakładka menu - na teraz w obszar pusty (czyli wartość FF), więc skaner zwraca w odpowiedzi komunikat "Non present". (taki ciąg znaków - komunikat w sensie - jest tylko w jednym miejscu zapisany, więc nie ma tak, że zamiast programu docelowego system se odczytuje zapisany w tym miejscu komunikat)

Spróbuje to jeszcze tak wyjaśnić:
Na teraz karta która chcę pomiksować ma zapisane dwa obszary - pierwszy, ten startowy, i drugi, pod koniec obszaru pamięci, do którego prowadzi jeden z odnośników. Skaner teraz startuje z pierwszym programem, i po wybraniu odnośnika - przełącza sie na drugi program.

Ale jak zawartość drugiego programu przeniosę do obszaru "startowego" (czyli zapisze go od komórki 4MB i wyżej) - to skaner uruchomi sie po prostu od razu z tym drugim programem. Tyle, że już nie da sie przełączyc do czegokolwiek innego - bo po prostu nie ma w nim "zakładek" w menu.

Teraz - po co tak: bo mam więcej oprogramowania niż kart :)21 A te sa niepodrabialne, i niezstępowalne (skaner nie rozpoznaje innego typu linearów, że o ATA nie wspomnę. A ta karta (i program z odnośnikami) wydaje się nadawać do zapodania zawartości innych kart - właśnie pod te odnośniki. Ino muszę wiedzieć, w który konkretnie obszar karty załadować dane :wink: A bawienie się na chybił trafił - chyba nie mam aż tyle cierpliwości ... :)21

Te karty sa jeszcze do zanabycia przez ebay - ale coraz słabiej, i coraz drożej. Temu staram sie pokombinować z tym, co mam. :wink:
w sprawach technicznych - rokfor32@wp.pl

rokfor32
 
 
Posty: 16166
Rejestracja: pt lut 22, 2008 9:53 pm
Lokalizacja: w sprawach technicznych - rokfor32@wp.pl

Re: Pytanko do informatyków

Post autor: rokfor32 » czw mar 31, 2022 10:46 am

A - i jeszcze jedno: system zapisu nie jest taki, jak dla typowych (współczesnych) nośnikach pamięci - czyli nie ma czegoś takiego jak tablica alokacji. Dane muszą być zapisywane w odpowiednie komórki karty - ale zgodnie z algorytmem zapisanym (również) gdzieś na karcie. Urządzenie najprawdopodobniej posiada tylko "instrukcję startową" - plus oczywiście realizuje przełączanie i odczyty sprzętowe - protokoły komunikacji, etc.
w sprawach technicznych - rokfor32@wp.pl

Awatar użytkownika
Kostuch
 
 
Posty: 7393
Rejestracja: pn sty 20, 2003 2:17 pm
Lokalizacja: wawa

Re: Pytanko do informatyków

Post autor: Kostuch » czw mar 31, 2022 11:05 am

rokfor32 pisze:
czw mar 31, 2022 10:36 am
ciach
Brzmi jak zlecenie, na które Cię nie stać :wink:

Jak masz zacięcie, to możesz zainwestować w analizator stanów i próbowac "w locie" dekodować adresy.
Zajęcie na długie zimowe wieczory z epsilonową szansą sukcesu...
Przed erą internetu, każdy wiejski głupek pozostawał w swojej wiosce.

rokfor32
 
 
Posty: 16166
Rejestracja: pt lut 22, 2008 9:53 pm
Lokalizacja: w sprawach technicznych - rokfor32@wp.pl

Re: Pytanko do informatyków

Post autor: rokfor32 » czw mar 31, 2022 1:27 pm

Dlatemu nie żadne zlecenie (bo wiem, że mnie nie stać :)21 ) - ino szukam podpowiedzi. Sposobów, "patentów", wytrychów - jak takie coś samemu ustalić. :wink:

Garść danych więcej - to nie jest tak, że adresy (od zakładek menu) są dowolne - z tego co widzę mają conajmniej trzy zera na końcu, a zwykle bardziej cztery. Cztery już mocno zawęża obszar poszukiwań - trzy to jednak ... ciut za dużo chyba - dla metody "doświadczalnej" :)21

Musze jeszcze nad tym trochę posiedzieć, i wyizolować "pierwszą ramkę" - pakiet odpowiedzialny za start. Tester co prawda na nim sie nie uruchomi (na tak wąskim pakiecie danych) - ale się zresetuje przy próbie. Czyli zareaguje inaczej - niż przy trafieniu w czyste pole. A małym pakietem (w kilku/nastu miejscach) mogę spróbować namierzyć (zawęzić) obszar poszukiwań ... :roll:
w sprawach technicznych - rokfor32@wp.pl

Awatar użytkownika
Kostuch
 
 
Posty: 7393
Rejestracja: pn sty 20, 2003 2:17 pm
Lokalizacja: wawa

Re: Pytanko do informatyków

Post autor: Kostuch » czw mar 31, 2022 3:03 pm

cztery zera na końcu

Zakładam że masz na myśli najmniej znaczące bity.
Oznacza to tylko tyle że jest jakiś "address alignment" i legalnymi miejscami startu są adresy podzielne przez 16. Ale jak sa też z trzema zerami, to już podzielne przez 8.
Przy 4MB przestrzeni adresowej masz DUŻO prób do wykonania. Nie oszukuj się, że zawęziłeś obszar :)21
Dlatego pisałem o stosunkowej taniości - analizatorze/dekoderze adresów.
Przed erą internetu, każdy wiejski głupek pozostawał w swojej wiosce.

rokfor32
 
 
Posty: 16166
Rejestracja: pt lut 22, 2008 9:53 pm
Lokalizacja: w sprawach technicznych - rokfor32@wp.pl

Re: Pytanko do informatyków

Post autor: rokfor32 » czw mar 31, 2022 3:54 pm

Nie takie cztery zera - miałem na myśli cyfrę adresu tak jak mi to wyświetla hex editor w kodzie szesnastkowym - np. 00400000 to adres startowy dla skanera (pieć zer, ta linijka odpowiada pierwszej komórce "startowej" skanera). Realna wartość w bajtach to jedna cyfra więcej (czyli razem 4MB) - program po prostu tak to wyświetla, że podaje z boku wartość bez ostatniej cyfry - i ciąg szesnastu komórek (bajtów) oznaczających wartości od 0 do F dla ostatniej cyfry adresu. Hex editor nazywa tą kolumnę "offset".

Chodzi o to, że np. na innej karcie kolejne "paczki" programu mają "adresy startowe" np. 00820000, albo 00880000. Na tej, którą chce zmodyfikować taki dodatek ma adres 00DAE000 - i to jest jedyne co ma te trzy zera na końcu.

Dlatego obstawiam, że odnośniki których szukam będą kierowane na adresy z ofsetem minimum tych trzech zer - czyli nie ciaśniej, niż co pełne 10 kB. A bardziej prawdopodobne, że co 100kB - a to dla karty 16MB daje "zaledwie" 160 pozycji do przebadania :)21 Tak se to przynajmniej na razie tłumacze ... :)21

Acz - podsunąłeś pomysła - może adresowanie (wpisane do pliku) nie jest w formacie szesnastkowym? :roll:
w sprawach technicznych - rokfor32@wp.pl

Awatar użytkownika
Kostuch
 
 
Posty: 7393
Rejestracja: pn sty 20, 2003 2:17 pm
Lokalizacja: wawa

Re: Pytanko do informatyków

Post autor: Kostuch » czw mar 31, 2022 5:01 pm

Dawno, dawno temu w odległej galaktyce, jak jeszcze bawiłem się hackowaniem ZXSpectrum :)22 używało się w assemblerze tablic wektorów i wskaźników do nich.
Poszukaj w kodzie tych adresów. Może jest prosta lista ze spodziewanymi adresami przypisanymi do konkretnych "menu". Tylko musisz wykryć czy soft używa dużego czy małego indianina :)21
Przed erą internetu, każdy wiejski głupek pozostawał w swojej wiosce.

ODPOWIEDZ

Wróć do „Inne”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość