Alt 28.11.2003, 16:21   #1
Acidmrp
Handy Gott
Benutzerbild von Acidmrp
Registriert seit: 17.11.2002
Beiträge: 2.723
Reden Flash Patching Tricks

Hier gibt es ab sofort immer wieder ein Paar Tricks zum Thema selber Patche erstellen.

Wenn kein Feedback kommt wird das ganze wieder eingestellt.

Kommen wir zum ersten Trick:

am Beispiel S55 v20, geht aber auch mit jedem anderen Siemens.

dieser Patch schreibt sich auf, von wo aus eine Routine (im Beispiel erstmal die PlaySound Routine) aufgerufen wurde und mit welchem Parameter. Die Adresse wird in den RAM geschrieben, Beispiel:

; RAM:
; 00C10A: F09E6300 --> Address: 639EF0
; 00C10E: 2A00 --> BeepCode: 002A

0064AD0C: 8880F08C DA6100A2
0021A200: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 8880F08C88A088B088C088D0FCFAFCFB
0021A210: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FCFCFCFDECFDECFCECFBECFAD7600300
0021A220: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF F6FC0AC1F6FD0CC1F6F80EC198D098C0
0021A230: FFFFFFFFFFFF 98B098A0DB00


Das ganze kann man sehr leicht für jeden anderen Call machen
und diesen unter Beobachtung stellen.
Dafür benötigen wir:

- eine Routine die wir beobachten möchten

- die ersten 4 Bytes der Routine die beobachtet werden soll AABBCCDD (ein oder zwei Befehle)

- einen 8 Byte FF Block im Flash (Adresse (16MB): EEFFGG

dann schreiben wir an die Adresse der Routine:
DAEEGGFF

und an
EEFFGG: AABBCCDD FA6104A2 ; <-- Leerzeichen nur der
Übersicht halber, müsste eigentlich so aussehen: AABBCCDDFA6104A2

natülich immer brav davor noch die originalen Werte für den undo hinschreiben.

Beispiel "Tastensperre lösen beobachten":

Routine steht an: 644FDA

; 00244FDA: 2E00E03C DA6136A2

dort standen die Bytes: 2E00E03C

; 0021A236: FFFFFFFFFFFFFFFF 2E00E03CFA6104A2

fertig.

Ist doch gar nicht so schwer oder?
Acidmrp ist offline   Mit Zitat antworten
Alt 28.11.2003, 16:23   #2
Acidmrp
Handy Gott
Benutzerbild von Acidmrp
Registriert seit: 17.11.2002
Beiträge: 2.723
Den Source will ich euch natürlich auch nicht vorenthalten:

Code:
Patch_Address    EQU 021A200h ;Free Space in Flash (CHANGE THIS)

Patch	Section Code Word At Patch_address ; Start Patch at Patch_Address
    main proc far  ; start main of patch
    	;replaced commands 
	; (make an call from beginnig of PlaySound routine to this patch)
	mov     [-r0], r8	
    	mov     r8, r12
	;main routine
    	mov [-r0], r10
	mov [-r0], r11
	mov [-r0], r12
	mov [-r0], r13
	pop r10
	pop r11
	pop r12
	pop r13
	push r13
	push r12
	push r11
	push r10
	extp    #3, #3
	mov     0C10Ah, r12
	mov     0C10Ch, r13
	mov     0C10Eh, r8
	mov r13, [r0+]
	mov r12, [r0+]
	mov r11, [r0+]
	mov r10, [r0+]
	rets
    main endp
Patch   EndS
END
Acidmrp ist offline   Mit Zitat antworten
Alt 29.11.2003, 00:47   #3
xscreamx
Gast
Beiträge: n/a
Lächeln

Hallo Acidmrp!
Ich kenn mich nur ein bischen mit dem 8051 aus. Und deshalb gleich mal 2 Fragen:
Wie ist denn der Speicherbereich beim SL45 aufgeteilt (data,idata,xdata,code)?
Und was bewirken die Befehle [-r0] , [r0+] und extp ?
  Mit Zitat antworten
Alt 29.11.2003, 16:53   #4
Acidmrp
Handy Gott
Benutzerbild von Acidmrp
Registriert seit: 17.11.2002
Beiträge: 2.723
wegen dem Speicherbereich schaust du dir am besten die Unterlagen vom C167 an.
mit r0 wird der Stack gehandelt.
Also:
mov [-r0], r10
packt r10 auf den Stack
und mov r10, [r0+]
stellt es wieder her.

extp heiß extended page. Hier wird angebenen, dass einige folgenden Befehle auf eine andere
Page zugreifen. Eine Page umfasst 0x4000 Bytes.
bei
extp #5, #1
Würde der folgende Befehl auf Page 6 zugreifen, also z.B. Adresse 0x014100
mov 014100h, r12

der 8051 ist Zum Einstieg ganz nett
Acidmrp ist offline   Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
S/ME45i v4 Flash Patching Acidmrp Patches, Know How & Anleitungen 68 10.05.2007 16:27
S65 Flash Patching Acidmrp Patches, Know How & Anleitungen 77 06.08.2005 18:09
CX65 Flash Patching Acidmrp Patches, Know How & Anleitungen 15 31.01.2005 20:05
M55 Flash Patching b@iLLi Patches, Know How & Anleitungen 106 18.06.2004 13:08
C45 Flash Patching Acidmrp Patches, Know How & Anleitungen 6 13.12.2003 19:21


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:46 Uhr.


Powered by vBulletin®, Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.