2008-11-18, 09:08
Stąd już o krok do edycji tekstów w sofcie.
BB5 podobnie jak DCT-4 kompresuje tablice tekstów w celu zaoszczędzenia miejsca. Swojego czasu g3gg0 (większość z Was go nie zna, ale to prawdziwy weteran - napisał alternatywny system operacyjny na nokie dct-3 i projekt do modyfikacji softów na dct-4 który niestety się nie przyjął) napisał program który umożliwiał kompresję/dekompresję łańcuchów tekstu. Projekt nazywał się TriX i został zawieszony jakiś czas temu.
Napisałem do niego mail w nadziei że podzieli się kodem źródłowym albo chociaż ogólną koncepcją algorytmu kompresji.
Jeśli ktoś z Was jest dobrym programistą - rzućcie proszę okiem na języki w ppmie i spróbujcie zgadnąć jaki algorytm jest użyty.
Inaczej jedyną możliwością będzie binarna podmiana skompresowanego tekstu, a to orka na ugorze.
~amras666:
2008-11-18, 09:40
Znalazłem źródła. Po wstępnej analizie mogę powiedzieć co następuje - tekst jest kodowany w utf16 (nie w utf8) o odwróconej ważności bitów, na to idzie kompresja. Załączam źródła w C++, i czekam aż któryś programista zrobi z tego działający algorytm kompresujący/dekompresujący tekst.
~logos2000:
2008-11-20, 15:02
amras666, czy masz pewne informacje ze jest uzywane DOKLADNIE TO SAMO kodowanie co w dct4?? jesli tak to pomoge w 40% (tyle mam odkodowane)
proponuje zmienic "370A0B" w PPM (wystepuje tylko 2x) na powiedzmy "414141"
jesli kodowanie jest takie samo to zamiast napisu "Gry" powinno sie pojawic "AAA" (pewnie w menu Aplikacje)
ja nie mam czasu narazie na to....
~amras666:
2008-11-20, 15:16
w dct-4 są 3 metody z tego co rozpacował geggo - jako zwykłe ppm, jako plik w wirtualnym systemie fat i jako wiele plików w wirtualnym systemie fat, więcej pod linkiem:
Rzecz w tym, że Ty robiłeś to metodą prób i błędów, a być może uda się zrobić to "po bożemu" z rekompresją. Program w temacie na gsmhosting oczywiście z flashem bb5 nie działa
Przez analogię DCT-3 vs DCT-4 możnaby doszukać się poobieństw. Nie jestem tego w 100% pewien, ale to najlepszy strzał jaki mamy, program jest świeży więc możliwe że jeszcze nie próbowano użyć zmodyfikowanego kodu do bb5.
Podana przez Ciebie fraza występuje we flashu tylko raz, podmieniłem i właśnie wgrywam - za chwilę podzielę się screenem (o ile będzie czym).
Który model telefonu robiłeś?
~logos2000:
2008-11-20, 15:41
amras666, rozpracowujac to po heksie mamy pelna game wyboru co chcemy
i wcale nie gorzej niz z algorytmem, rozniez mozna z tego spokojnie napisac program i to o wiele latwiej, z tym ze szukanie duzo zajmuje...
robilem to na 3510i ale wydaje mi sie ze nie pojdzie
~amras666:
2008-11-20, 16:59
No i nic nie dało - napis gry siedzi jak siedział ale on prawdopodobnie jest w IMAGE nie w PPM, daj jakiś string typu "Ustawienia" albo coś
~logos2000:
2008-11-20, 19:00
amras666, nie wiem jak z kodowaniem ale wyglada ze tablica znakow jest inna (choc nieznacznie)
DCT4
- Code: Select all
Please Login or Register, to see this Content
BB5
- Code: Select all
Please Login or Register, to see this Content
~Ziomal_Marcin:
2008-11-20, 19:27
Dwa ostatnie wiersze są jednakowe. Ciekawe czemu zmienili tylko górę?
~amras666:
2008-11-20, 19:41
No na chłopski rozum Marcinie, zmienili dostawcę słownika T9 - a tym samym zamieścili nowy copyright we flashu.
@Logos - daj strina napisu ustawienia, albo jakiegoś innego tego typu. Wiadmości, Call Register, cokolwiek. Poćwiczymy.
~logos2000:
2008-12-02, 23:50
MAM mam!! (tak BB5)!! ~lol
litera - hex
a - 01
o - 02
i - 03
itd
ascii (to jest tablica znakow)
- Code: Select all
Please Login or Register, to see this Content
hex (powyzsza tablica w hex) - dla latwiejszego znalezienia
- Code: Select all
Please Login or Register, to see this Content
*****************
ascii - litera - ktory w kolejnosci (w hex)
47 - G - 63 (3F)h
72 - r- 09
79 - y - 08
wiec zakodawne Gry we flashu BB5 brzmia 3F 09 08, odkodowane 47 72 79
poradnik w 100% moj, wymagam tylko uwzglednienia mojego nicka we wszystkich opisach modyfikacji! (podziekowanie or something)
powodzenia
**EDIT**
tutaj plik arkusza kalkulacyjnego deszyfrujacego tablice znakow, format open office pl, moze nie dzialac z exelem
http://logos2000.webpark.pl/bb5_deszyfrator.xls
[ Dodano: 2008-12-02, 23:01 ]
tutaj wszytkie polskie odkodowane teksty:
http://logos2000.webpark.pl/pl00.xml
~ndt:
2008-12-06, 16:55
na początku chciałem wszystkich powitać
mam kilka pytań - są dostępne patche do ppm które podmieniają grafiki i inne pierdoły - co z sumami kontrolnymi? Może phoenix je automatycznie koryguje?
Przepraszam za OT ale nie chcę zakładać nowego tematu skoro jedyne co mnie zaciekawiło to teksty w ppm
Nokia 3110c - używa LE, ma nową wersję headera w PPM. W odwoływaniu się do adresów w pliku PPM (czyli to co mamy na dysku) podaję offset bezwzględny poprzedzony prefixem F; dla przykładów w PPM (czyli to co mamy w telefonie po flashowaniu) offset podaję z uwzględnieniem adresu PPM (0x1080000) oraz prefixem P. Wszystkie przykłady dla rm237__07.01.ppm_b
Dla rozjaśnienia - w hexedytorze pod adresem F0xD9 mamy napis 'Nokia' co odpowiada adresowi w PPM P0x1080020 (PPM_BASE + offset od początku PPM).
plik PPM jest zbudowany z bloków (nie mylić z chunkami w PPM), po 0x4000 bajtów każdy (ostatni może być mniejszy).
Plik zaczyna się headerem długości 166 bajtów (jego content miejmy nadzieję jest mało istotna).
Pod adresem F0xA6 mamy 19 bajtowy flash_block_header o budowie
- Code: Select all
Please Login or Register, to see this Content
zaraz za nim jest blok danych długości 0x4000 bajtów, za nim (F0x40B9) jest header kolejnego bloku etc
analizując patche jak WMP11 etc widzę że nie ruszają one nagłówków ani tym bardziej sum kontrolnych - skoro to działa należy się tylko cieszyć. Niestety nie posiadam 3110c aby zweryfikować swoje przypuszczenia.
ok to tyle jeśli chodzi o wstęp, czas na deser czyli edycja tekstów w PPM
w tym miejscu miałem wrzucić roboczą wersję schematu jednak za chwilke wychodzę a nie chcę zamieścic czegos pochopnie. Jesli jest na forum jakaś osoba zainteresowana testowaniem zapraszam. Jutro powinienem zamieścic schemat edycji tekstów (jest on możliwy przy pomocy dostepnych narzędzi)
pozdrawiam,
ndt
~amras666:
2008-12-06, 17:41
Spieszę z odpowiedzią.
Oprócz sporadycznych wystąpień kilkunastobajtowych "wstawek" w plikach graficznych ich podmiana nie wiąże się z koniecznością przeliczania sum kontrolnych - generalnie Nokia łyka praktycznie każdą zmianę o ile nie nadpisze jej to właśnie owych fragmetów.
Przypuszczenie o niesprawdzaniu sum kontrolnych w ppm - prawdziwe.
Mamy za to sumę kontrolną np. w oznaczeniu wersji MCU (w ppm możemy wersję modyfikować do woli).
Chętnie wziąłbym ten program na testy, jednak trup Nokii na niewiele się przyda. Zachęcam resztę userów - kto phoenixa ma, zgłaszać się!
ndt - czy powinienem znać ten pseudonim?
~ndt:
2008-12-07, 09:52
добрий ранок,
amras666 wrote:Oprócz sporadycznych wystąpień kilkunastobajtowych "wstawek" w plikach graficznych
czyli wspomnine wyżej 19-to bajtowe flash_block_header'y
amras666 wrote:ich podmiana nie wiąże się z koniecznością przeliczania sum kontrolnych - generalnie Nokia łyka praktycznie każdą zmianę o ile nie nadpisze jej to właśnie owych fragmetów.
dobrze wiedzieć wiele to ułatwia bo ja głupi poswięciłem tyle godin na analize z 50 wersji flashy ~cry
amras666 wrote:Mamy za to sumę kontrolną np. w oznaczeniu wersji MCU (w ppm możemy wersję modyfikować do woli).
interesuje mnie jedno - jeśli sflashujemy telefon fake flashem jest możliwośc jego odzyskania w prosty sposób? chodzi o to że chcę zaaplikowac kilka fajnych patchy wiążacych się z edycją MCU a nie chciałbym komuś (albo sobie jesli wkońcu kupię )
telefonu uwalić
amras666 wrote:ndt - czy powinienem znać ten pseudonim?
ekhm, powiedzmy że jestem świerzakiem w te klocki
~Ziomal_Marcin:
2008-12-07, 10:13
ndt wrote:jeśli sflashujemy telefon fake flashem jest możliwośc jego odzyskania w prosty sposób?
Wydaje mi się że Dead USB powinien go postawić. Przy walniętym MCU telefon nie wejdzie w Local i Normal Mode, więc pozostaje flash na Dead. Jeśli się pomyliłem - poprawcie mnie
~amras666:
2008-12-07, 16:20
Nie pomyliłeś się. Ja o tym że uwalona suma kontrolna przy wersji softu powoduje ubicie telefonu przekonałem się hard-way. Najzwyczajniej w świecie wgrałem i telefon nie wstał
Ale po dead-usb postawiło się bez problemu
~Ziomal_Marcin:
2008-12-07, 16:24
A tak btw, to na jakiej zasadzie działają te sumy? Przeliczają konkretne bajty w sofcie czy jak?
~ndt:
2008-12-10, 21:21
Ziomal_Marcin wrote:A tak btw, to na jakiej zasadzie działają te sumy? Przeliczają konkretne bajty w sofcie czy jak?
w dct3/dct4 czyli tam gdzie ppm_version_header==0 suma kontrolna obliczana jest przez zwykłe zsumowanie wartosci DWORD (4B)
w nowszych wersjach (jaką np. mamy w 3110c) sadzę, że nie różni się to zbytnio (miejmy nadzięje) - być może wyglada to identycznie, ale nie miałem czasu się temu przyjrzeć
[ Dodano: 2008-12-10, 22:02 ]
na szybko przedstawię zarys edycji tekstów w PPM na przykładzie rm237__07.01.ppm_b
potrzebne nam będą:
- PPModd (do pobranie ze strony g3gg0),
- dummy.ppm (w załączniku),
- odrobina cierpliwości
uruchamiamy PPModd i ustawiamy wartości:
- Code: Select all
Please Login or Register, to see this Content
następnie otwieramy plik rm237__07.01.ppm_b. Po sparsowaniu zaznaczamy gałąź /PPM/TEXT/PL00 i wybieramy z RMB opcję 'Export to XML...'. W moim przypadku zapisałem jako poli_org.xml.
Na tym etapie możemy w ulubionym edytorze XML zedytować napisy - wystarczy zmieniać wartości 'ASCII' (HEXCODED jak i UTF-16 zajmie się PPModd) i zapisujemy najlepiej ze zmieniona nazwą (w przypadku pomyłki zaoszczędzi to czasu na ponowne parsowanie PPM), np poli_mod.xml.
Otwieramy ponownie PPModd i przy domyślnych ustawieniach wczytujemy plik dummy.ppm
Następnie podświetlamy gałąź /PPM/TEXT i z RMB wybieramy 'Import from XML...' i zaznaczamy nasz zmodyfikowany plik (poli_mod.xml). Na szczęcie parsowanie tym razem powinno pójść dość szybko. Po zakończeniu klikamy 'Create PPM' i zapisujemy plik wynikowy - u mnie ppm_poli.tmp.
Kolejny etap - wyciągnięcie zmodyfikowanego chunka z utworzonego ppm. Zaznaczamy opcję
- Code: Select all
Please Login or Register, to see this Content
i wczytujemy ponownie utworzony plik ppm_poli.tmp. Zaznaczamy gałąź /PPM/TEXT/PL00 i z RMB wybieramy 'Export to Binary...'. Zapisujemy utworzony chunk i voila! - gotowe, mamy zmodyfikowany chunk z tekstami. Okej teraz powinienem opisać jak go wsadzić z powrotem do PPM ale myślę, że z tym poradzi sobie już każdy kto używał tych waszych patchy
pozdrawiam,
ndt
~Kamilloi:
2008-12-10, 23:56
ndt wrote:dummy.ppm (w załączniku),
Albo ja nie widze tego załącznika albo jestem dziś tak latentny że nie załapałem jakiejś prostej kwestii
Gdzie on jest?
~logos2000:
2008-12-11, 05:34
Kamilloi, dump wyciagniety w ten sposob zamiescilem kilka postow wszesniej...
~ndt:
2008-12-11, 18:59
ekhm, rzeczywiscie nie zwróciłem uwagi, że załacznika nie ma
załacznik dam w postaci tekstowej:
- Code: Select all
Please Login or Register, to see this Content
I'm be back
~sekus:
2009-01-10, 17:43
siedzę już dobre dwie godziny i nadal nie mogę otworzyć tego pliku... wklejam ten tekst do notatnika, zapisuję jako dummy.ppm otwieram PPModd i wywala komunikat ze nie może załadować pliku... czy coś źle robię?
~Kamilloi:
2009-02-02, 20:00
- Code: Select all
Please Login or Register, to see this Content
to jest plik dummy powodzenia
~ndt:
2009-02-03, 19:52
blah ale to juz nie aktualne - plugin juz obsługuje 3110 i pokrewne