Nie jesteś zalogowany/zarejestrowany na tej stronie. Prosimy zaloguj się lub zarejestruj. Aby się zarejestrować kliknij tutaj...


Ta strona korzysta z plików cookiesKorzystając z naszej strony internetowej wyrażasz zgodę na wykorzystanie przez nas plików cookies w celu zapewnienia Ci wygody podczas jej przeglądania.
Rozumiem. Nie pokazuj w przyszłości.
Panel użytkownika
     

Nie masz konta? Zarejestruj
Zapomniałeś hasła? Przypomnij

Forum Tizen OS!
Utwórz nowy temat Odpowiedz w temacie  [ Posty: 9
 Modyfikowanie plików *.so
1
Przyjaciel
Avatar użytkownika
Dołączył(a): 2011-04-23, 16:30
Online: 10d 11h 24m
Posty: 358
Podziękowań: 42
Podziękował: 11
Model: S8500
Firmware: XXLA1
Operator: Play
Brązowy Puchar za osiągnięcia użytkownika Bada Dev: Developer aplikacji dla systemu bada
Napisane: 2012-05-15, 22:14 
Witam.
Dzisiaj zajmiemy się nowo odkrytą metodą modyfikacji plików *.so, wszystko to dzięki userowi ndt :)

Potrzebne narzędzia:
- Wave Remaker (na ostatnich stronach są najnowsze wersje: http://forum.xda-developers.com/showthr ... ?t=1028714 )
- TriX ( http://nokix.sourceforge.net/trix/bada/ ... -11-06.zip )
- Plugin do TriXa ( http://forum.xda-developers.com/showpos ... stcount=87 )
- Edytor hexów (np. ten -> http://www.physics.ohio-state.edu/~prewett/hexedit/ )
- Dekompilator z obsługą ARM Thumb-2 (np. IDA)
- Assembler ARM (np. ten -> http://arm.flatassembler.net/ )
- Znajomość assemblera (np. ta -> http://google.pl )
- Wytrwałość, chęci i zaparcia

Najpierw, aby w ogóle móc edytować pliki *.so należy przerobić plik apps_compressed.bin z softa, który posiadamy.
Aby to zrobić uruchamiamy Wave Remaker, przechodzimy do zakładki Utils i klikamy Decrypt

[img]http://img207.imageshack.us/img207/7995/img1uc.jpg[/img]

Wybieramy nasz plik apps_compressed.bin, a następnie wybieramy gdzie i pod jaką nazwą chcemy zapisać zdecryptowany plik.
W tym temacie wyszukujemy informację o swoim sofcie i odpowiedni ciąg znaków dla niego: http://forum.xda-developers.com/showthr ... 861&page=4
W moim przypadku dla softu JVLC2 jest to ciąg: 02 28 3C D0 06 28
W hexeditorze otwieramy zdecryptowany plik i wyszukujemy ten ciąg, a następnie zmieniamy wartość 06 na FF

[img]http://img59.imageshack.us/img59/9387/img2leu.jpg[/img]
[img]http://img708.imageshack.us/img708/3771/img3wl.jpg[/img]
[img]http://img341.imageshack.us/img341/3913/img4q.jpg[/img]

Następnie tak zmieniony plik zapisujemy sobie gdzie chcemy, byleby dodać rozszerzenie "*.bin"
Wracamy do Wave Remaker i używając funkcji Encrypt zaznaczamy nasz zmodyfikowany plik. Następnie wybieramy "Sign file" i też wskazujemy ten plik.

[img]http://img543.imageshack.us/img543/2618/img5vn.jpg[/img]

Następnie wypakowywujemy sobie Wave Remakerem plik ShpApp.app z naszego softa FW View->File->Dump file
Gdy już to zrobimy, włączamy TriXa (oczywiście należy rozpakować plugin do TriXa i wrzucić do folderu scripts):

[img]http://img845.imageshack.us/img845/8062/img6r.jpg[/img]
[img]http://img138.imageshack.us/img138/766/img7k.jpg[/img]
Teraz wskazujemy folder z naszymi plikami *.so, są one w miejscu wypakowania ShpApp\SystemFS\Shp\ (aplikacje) oraz ShpApp\SystemFS\Osp\ (system). Ten proces może długo trwać i zawiesić nawet program przez takiego Dolphina. Bądźcie cierpliwi.
[img]http://img846.imageshack.us/img846/5880/img8h.jpg[/img]
[img]http://img823.imageshack.us/img823/6894/img9pj.jpg[/img]
Następnie przechodzimy do folderu z naszymi plikami. Tam kasujemy wszystkie pliki z rozszerzeniem "*.so", a następnie używając total commandera w reszcie plików usuwamy rozszerzenie (FileS->Multi-Rename Tool).
[img]http://img151.imageshack.us/img151/9633/img10z.jpg[/img]
[img]http://img42.imageshack.us/img42/2594/img11h.jpg[/img]
Tak przygotowane pliki można już śmiało edytować. Jak? Czytaj dalej.

Używając jakiegoś dekompilatora ARMa możemy odczytywać funkcje w danych plikach. Podam na przykładzie IDY.
Otwieramy plik:
[img]http://img708.imageshack.us/img708/2454/img12l.jpg[/img]
[img]http://img11.imageshack.us/img11/2191/img13mh.jpg[/img]
[img]http://img441.imageshack.us/img441/6818/img14ko.jpg[/img]
[img]http://img43.imageshack.us/img43/6600/img15zr.jpg[/img]
[img]http://img821.imageshack.us/img821/9945/img16o.jpg[/img]

Jak widać, tutaj wymagana już jest mniej-więcej znajomość architektury i sposoby działania programów na niskim (w sensie blisko-architekturowym) poziomie. Po lewej mamy listę wszystkich funkcji dostępnych w danym pliku. Jako przykład zmodyfikujemy plik QuickPanelApp.so tak, aby nie pojawiał się na górnej belce pasek z informacją o nazwie sieci. Tak więc przechodzimy do zaznaczonej funkcji i odszukujemy jej końca.
[img]http://img525.imageshack.us/img525/1970/img17n.jpg[/img]
Zaznaczone bloki są parametrami zwracanymi przez funkcję. W bloku locret_10122 znajduje się instrukcja pop rejestrów ze stosu oraz rejestru instrukcji, czyli po prostu powrót do funkcji. Parametry standardowo są zwracane w rejestrze r0 (tak jak na x86 są w eaxie). Jest to najzwyklejszy int, a jak nazwa funkcji wskazuje, zwraca ona informację, czy można umieścić labelkę o nazwie sieci. Nie chcemy go, czyli funkcja powinna w obu przypadkach zwracać zero. W drugim tak jest, więc zainteresujemy się pierwszym zaznaczonym blokiem.
Mowa o: MOVW R0, #1
Klikamy na tą instrukcję, a następnie na zakładkę Hex View:
[img]http://img137.imageshack.us/img137/8171/img18na.jpg[/img]
[img]http://img19.imageshack.us/img19/3398/img19d.jpg[/img]
Zaznaczony fragment to kod maszynowy instrukcji widzianej wcześniej. W przypadku fasmarma jest to kod:
[code]thumb
movs r0, 1[/code]
Podmienić ten kod możemy tylko na inny kod, który również ma długość 2 bajtów. W tym przypadku po prostu zmienimy, aby do r0 była wpisywana liczba 0.
Otwieramy plik QuickPanelApp.so w hexeditorze i odszukujemy podany po lewej adres.
Tutaj UWAGA, adres w Idzie jest podawany w wyrównaniu co do danego assemblera. Natomiast w hexeditorach nie ma żadnego przesunięcia.
W naszym przypadku adres funkcji to 0x106AC w związku z tym w hexeditorze szukamy pozycji 0x106A0 i wyszukujemy offset C czyli 13 wartość. Po prostu w tym miejscu szukamy "01 20" i zmieniamy 01 na 00. Zapisujemy tak zmodyfikowany plik *.so do Shp/Oap, czyli nadpisujemy nasz stary plik. Następnie flaszujemy odpowiednie pliki, czyli w tym przypadku nasz zmodyfikowany plik apps_compressed.bin oraz plik który zawiera nasz zmodyfikowany plik *.so. Albo cały ShpApp.app, albo plik *.pfs, jeżeli posiadacie takowy. Wtedy nie tracimy żadnych plików w naszym systemie i można bez problemu bawić się plikami.

Na koniec dodam: WSZYSTKO ROBICIE NA WŁASNĄ ODPOWIEDZIALNOŚĆ.
Taka zabawa w gruncie rzeczy może być groźna, jeśli ktoś nieumiejętnie zmieni jakąś wartość w systemowych plikach. Do tego wymaga minimalnej znajomości assemblera ARM i umiejętności logicznego analizowania kodu maszynowego lub assemblera.
Miłej zabawy.

_________________
[url=http://cybek.cba.pl]Moja strona domowa - Zapraszam![/url]
[url=http://dl.dropbox.com/u/12225609/games.html]Krótka lista moich skończonych gier~![/url]


Zobacz profil

Podziękowania przyznane za post: 3

 Modyfikowanie plików *.so
2
Staż: 65%
Avatar użytkownika
Dołączył(a): 2011-12-03, 13:55
Online: 4d 21h 27m
Posty: 100
Lokalizacja: Zabrze
Podziękowań: 2
Podziękował: 1
Model: GT-S8500
Firmware: bada 2.0 LA1
Operator: Orange
Napisane: 2012-05-15, 22:21 
Niczego nie kapuję :P Ale rozumiem że modyfikowanie tych plików to jakaś nowość. Co możemy w ten sposób uzyskać? :)



Zobacz profil


 Modyfikowanie plików *.so
3
Przyjaciel
Avatar użytkownika
Dołączył(a): 2011-04-23, 16:30
Online: 10d 11h 24m
Posty: 358
Podziękowań: 42
Podziękował: 11
Model: S8500
Firmware: XXLA1
Operator: Play
Brązowy Puchar za osiągnięcia użytkownika Bada Dev: Developer aplikacji dla systemu bada
Napisane: 2012-05-15, 22:42 
Tak jak napisałem pod koniec, dla przykładu wywaliłem to głupie wyświetlanie sieci w której jesteśmy na górnej belce.
Podobnie alarm gra cały czas, a nie wyłącza się po minucie, jak to fabrycznie było.
Natomiast kolega ndt sprawił, że można "słuchać" radia, bez słuchawek. W efekcie nic nie odbiera, ale możliwość taka jest :D

_________________
[url=http://cybek.cba.pl]Moja strona domowa - Zapraszam![/url]
[url=http://dl.dropbox.com/u/12225609/games.html]Krótka lista moich skończonych gier~![/url]


Zobacz profil


 Modyfikowanie plików *.so
4
Staż: 15%
Dołączył(a): 2011-08-29, 13:57
Online: 9d 18h 17m
Posty: 22
Podziękowań: 17
Podziękował: 1
Model: GT-S8500
Operator: Orange
Brązowy Puchar za osiągnięcia użytkownika
Napisane: 2012-06-12, 21:09 
Mam do ciebie taką prośbę cybek czy potrafił byś mi wytłumaczyć jak mam wgrać ten plik DisableBadaIntegrity.trx [code]http://forum.xda-developers.com/attachment.php?attachmentid=1119058&d=1339306090[/code] Podobno dzięki nie mu można przywracać aplikacje zainstalowane na karcie przy pomocy BadaAppsSignature.



Zobacz profil


 Modyfikowanie plików *.so
5
Przyjaciel
Avatar użytkownika
Dołączył(a): 2011-04-23, 16:30
Online: 10d 11h 24m
Posty: 358
Podziękowań: 42
Podziękował: 11
Model: S8500
Firmware: XXLA1
Operator: Play
Brązowy Puchar za osiągnięcia użytkownika Bada Dev: Developer aplikacji dla systemu bada
Napisane: 2012-06-18, 13:16 

_________________
[url=http://cybek.cba.pl]Moja strona domowa - Zapraszam![/url]
[url=http://dl.dropbox.com/u/12225609/games.html]Krótka lista moich skończonych gier~![/url]


Zobacz profil


 Modyfikowanie plików *.so
6
Staż: 60%
Avatar użytkownika
Dołączył(a): 2012-02-09, 20:22
Online: 3d 11h 42m
Posty: 88
Lokalizacja: Wrocław
Podziękowań: 5
Podziękował: 4
Model: S8500
Firmware: LA1 (Orange)
Operator: Orange
Brązowy Puchar za osiągnięcia użytkownika
Napisane: 2012-08-24, 18:05 
[b]Cybek[/b],
podziwiam Twoją znajomość i wiedzę w modyfikowaniu plików Bady (pewnie dlatego że sam nie mam o tym pojęcia xD ). Widziałem,że edytowałeś m.in. [b]lagującą belkę[/b]. Zauważyłem też,że belka nie laguje,jak wejdzie się np. do multimediów,smsów,i większości innych aplikacji systemowych.Mam nadzieję,że może to pomogłoby ci przeanalizować różnice w wyglądzie i działaniu belki w menu i w np. multimediach,być może wkońcu ktoś się tym zajmie :D

_________________
[center][img]http://bada-world.pl/images/smilies/1283105684_arrow_right_104.png[/img] Nie musisz mnie kochać,po prostu [img]http://bada-world.pl/styles/OfficialTheme/imageset/thankposts.gif[/img][/center]


Zobacz profil


 Modyfikowanie plików *.so
7
Przyjaciel
Avatar użytkownika
Dołączył(a): 2011-04-23, 16:30
Online: 10d 11h 24m
Posty: 358
Podziękowań: 42
Podziękował: 11
Model: S8500
Firmware: XXLA1
Operator: Play
Brązowy Puchar za osiągnięcia użytkownika Bada Dev: Developer aplikacji dla systemu bada
Napisane: 2012-08-24, 18:10 
Znajomości dużej nie mam. Kwestia nauki assemblera na x86, więc stwierdziłem czemu nie spróbować minimalnie zrozumieć ARMa? Większość poleceń jest opisanych na necie, także wystarczy, a raczej trzeba szukać i szukać. Wiele analizy nie ma, szukam funkcje, jak jest jakaś ciekawa to patrze co w niej jest wywoływane. W przypadku sprawdzania belki (nazwa oepratora) wystarczy ustawić, żeby zawsze zwracało fałsz.
Co do lagowania belki to takie proste nie jest. Kod jest zamieszany no i często ciężko wyłapać co i skąd jest wywoływane. Planowałem jeszcze więcej zmian w sofcie, ale póki co nie udało mi się odkryć jak coś działa ;)
W każdym razie zapraszam do zabawy :)

_________________
[url=http://cybek.cba.pl]Moja strona domowa - Zapraszam![/url]
[url=http://dl.dropbox.com/u/12225609/games.html]Krótka lista moich skończonych gier~![/url]


Zobacz profil


 Modyfikowanie plików *.so
8
Super moderator
Avatar użytkownika
Dołączył(a): 2010-10-05, 17:56
Online: 149d 58m
Posty: 4089
Podziękowań: 1303
Podziękował: 895
Model: ,s3,4,5,htc-820,idol
Firmware: Najnowsze
Operator: Orange
Srebrny Puchar za osiągnięcia użytkownika Liczymy: Nagroda za napisanie w swoim poście pełnego tysiąca. Liczymy (Obrazki): Nagroda za napisanie postu zawierającego obrazek z liczbą 500, 1000, itd. Dobroczyńca: Odznaczenie za pomoc dla Forum (4) Support: Srebrna gwiazda dla osób zaangażowanych w tworzenie forum. Uploader: Umieszcza nowe pliki w dziale Download. S.O.O.A: Specjalne odznaczenie od Administracji
Napisane: 2012-08-24, 18:19 
Bardzo ciekawy i rozbudowany poradnik :)

_________________
[size=85][i][color=#40BF40]W życiu piękne są tylko chwile.[/color][/i][/size] :)
[spoiler][i][b]Koluniu a ty czego tu szukasz? Zgubiłeś tu coś? [/b][/i][color=#008000][i][b]TO SPADAJ MI STĄD[/b][/i][/color][/spoiler]



[center][img]http://i.imgur.com/PXrc5YM.gif[/img][/center]


Zobacz profil Gadu-Gadu


 Modyfikowanie plików *.so
9
SUPER MEMBER!
Dołączył(a): 2010-12-11, 01:04
Online: 2d 22h 23m
Posty: 298
Podziękowań: 8
Podziękował: 30
Brązowy Puchar za osiągnięcia użytkownika
Napisane: 2014-09-16, 13:17 
Na wstępie zaznaczam, że wiem, ze ten watek ma dwa lata.
ale niestety minęło trochę czasu, zanim zabrałem się poważne modyfikacje mojego Wave.
Przy próbie załadowania pluginu pojawi się komunikat:
"gce2elf.trx Script is not signed correctly"
Można coś na to poradzić?



Zobacz profil


Utwórz nowy temat Odpowiedz w temacie  [ Posty: 9
Wyświetl posty nie starsze niż:  Sortuj wg  


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
cron
Powered by phpBB © 2011 phpBB Group
Copyright © 2011 bada-WORLD.pl Wszelkie prawa zastrzeżone.
Kopiowanie lub rozpowszechnianie jakiejkolwiek części serwisu (grafiki czy tekstów) bez zgody właściciela jest całkowicie zabronione.
Nasi partnerzy: TizenOs.com.pl | gsmManiaK.pl | Smitebuild.pl | PaladinsDecks.pl
phpBB SEO
| Forum o systemie Tizen Forum TizenOs.com.pl
smite wymagania | smite download