JAK ZROBIĆ NAKŁADKĘ NA PATCHA ABY DZIAŁAŁ PRZY WŁĄCZONEJ LUB WYŁĄCZONEJ KLAWIATURZE
"Tut." by vBart.
Na przykładzie patcha : *** RSB. (just another) Rounded Softkey Button *** ponieważ można tu wyjaśnić od razu kilka kwestii.
(Przyp. to opis na nakładkę więc najpierw wgraj samego patcha)
(Zakładam, iż każdy wie jak zrobić entrypointa [opis tutaj] dla dowolnego adresu oraz tak jak ja nie ma zielonego pojęcia o assemblerze)
Większość patchy jak wiadomo ma taki "wzorek" czyli a+b
a. -skok do jądra łaty
20E2BE: 98609870 DAC7F0E8
b. -jądro łaty, czyli mniej lub bardziej przydatne dane >patch RSB
27E8F0: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF E6F81429D7501F03982846F2FFFF2D07
27E900: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF C04CC05DE01EE01FDAD60AA20DF39860
27E910: FFFFFFFF 9870DB00
Ciebie interesuje TYLKO część "a" (nieraz może zawierać kilka takich skoków więc jak nie wiesz co do czego to pozostaje metoda prób i błędów), więc "b
" idzie do kubła i pozostaje tylko to:
20E2BE: 98609870 DAC7F0E8 ; skok do Oryginału (BĂ�DZIE JESZCZE POTRZEBNY)
Teraz szukasz w sofcie (np. edytor hex lub za pomocą programu SFE [opis tutaj]) 26 bajtów wolnego miejsca (same FF). No dobra, niech będa 32 bajty (dwie linijki). Załóżmy, że jest to adres 444F60 i 444F70 więc wstaw te adresy w miejsce "aaaaaa" poniższego schematu oraz doklej nasz "skok do Oryginału":
>ten schemat jest stały i niezmienny<
aaaaaa: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 88C088D0DAA3924098D098C048402D02
aaaaaa: FFFFFFFFFFFFFFFFFF xxxxxxxxyyyyyyyyDB00
otrzymujesz:
20E2BE: 98609870 DAC7F0E8 ; skok - na razie spitolony !!!
444F60: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 88C088D0DAA3924098D098C048402D02
444F70: FFFFFFFFFFFFFFFFFF xxxxxxxxyyyyyyyyDB00
Dalej: aby nasz skok nie był spitolony musi wskazywać na nasz adres 444F60 (tutaj musisz zrobić entrypointa adresu, [opis tutaj]) czyli E-Point musi wyglądać tak "DAE4604F" a patch tak:
Opis działa do większości patchy ale na tym przykładzie tylko w jedna stronę czyli zaokrąklone softkeye bedą przy odblokowanej klawie. Dlaczego? Zobacz poniżej.
- 1 - Jeżeli w "skoku z Oryginału" masz klasyczne E-Pointy czyli np:
20E2BE: DAC7F0E8 DAE4604F
to możesz je spokojnie zamieniać miejscami jako "xxxxxxxx" lub "yyyyyyyy" wtedy patch będzie działał odpowiednio przy zablokowanej lub odblokowanej klawie. Pamietaj o zamianie "DA" na "FA" przy wpisywaniu e-pointa w miejsce x-ów lub y-ków.
- 2 - Jeżeli w "skoku z Oryginału" masz "coś dziwnego" np "CC00CC00" lub tak jak w moim
przykładzie "98609870" to "coś dziwnego" wpisuj w miejsce "yyyyyyyy" - patch będzie działał
przy odblokowanej klawie.
Ufff... skoro już masz to wszystko w małym (hmm..) palcu to zrób mały trick aby ominąć
niedogodność nr "2" bo przecież jako wolny człowiek lubisz miec wybór.
Tak więc, znajdż jeszcze kilka wolnych bajtów (6) może być niżej czyli na naszym przykładzie
będzie to od adresu 444F80 i napisz coś takiego:
444F80: FFFFFFFFFFFF 98609870B00 ; gdzie 98609870 to jak wiesz jest "coś dziwnego"
teraz napisz do tego adresu skok (entrypoint) czyli DAE4804F lub od razu FAE4804F i
wklej go do nakładki na w miejsce "y".
Całość powinna działać i wyglądać tak:
20E2BE: DAC7F0E8 DAE4604F
444F60: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 88C088D0DAA3924098D098C048402D02
444F70: FFFFFFFFFFFFFFFFFF FAC7F0E8FAE4804FDB00; x & y
444F80: FFFFFFFFFFFF 9860987098609870DB00
Zamieniając miejscami "x" i "y" masz wybór w ustawieniu patcha aby działał
przy zablokowanej lub odblokowanej klawiaturze.
Teraz możesz zrobić swoją nakładkę np:
Wyśrodkuj date (najpierw usuń zegarek, ale ten patch już jest)
0x3B00AA: E6FE1DE0 E6FE1EE0 ; ups...! tutaj jest "coś dziwnego x2"
A może"miniGPS v1.2"?
00F398: 66FCFF3F DAE07ED4
3b36b8: 88908880 DAE060D3 ; no tak, tutaj trzeba ten trick zrobić 2 razy
Pamietaj że "x" i "y" też będą x2 i w razie czego muszą być zamieniane razem.
Opracowanie:
vBart
Jeżeli po pierwszym przeczytaniu tego nic nie rozumiesz to nie masz się czym martwić (nie jesteś sam). Wiele osób napoczątku z tego nic nie rozumiała, a teraz jakoś przerabiają patche.
Najpierw proponuje zrobić kopię softu, a później możecie się zaczynać bawić w przeróbki .