[Tiptoi] Mehr zu OidMain
Björn
kalle71 at online.de
Fr Nov 27 22:33:34 CET 2020
[2. Versuch ...]
Guten Abend, Matthias!
Da wir das Prinzip der GME-Binaries noch nicht verstanden haben, denke
ich, dass es einfacher wäre, erstmal das normale Hauptprogram der
Firmware (PROG) zu patchen.
Wie es aussieht, rufen in diesem diverse Routinen eine
Dummy-UART-Ausgabe auf, welche leer ist.
Wenn es nun gelänge deine Routine im Speicher unterzubringen und die
Aufrufe umzubiegen, sollten wir diverse Debug-/Tracing-Outputs sehen können.
Schönen Abend,
Björn
Am 27.11.2020 um 21:48 schrieb Matthias Weber via tiptoi:
> Guten Abend!
>
> Können wir die Binaries hinten raus bzw. allgemein noch vergrößern?
>
> Was wären denn die notwendigen Schritte dafür?
>
> Ich würde gerne folgende Funktion anspringen können (von beliebiger
> Stelle) und damit über den UART die aktuellen Prozessor-Register
> ausgeben. Bisher nur eine Idee!
>
> Man könnte eine beliebige Instruktion duch einen Sprung zu dieser
> Funktion ersetzen. Dann ggf. noch die ersetzte Instruktion vor den
> Prolog setzen.
>
> Der Gedanke ist, dass die Funktion dann erstmal alle Register auf dem
> Stack sichert, und dann über UART 'reg r15:' und den Inhalt von r15 als
> 32 bit Hexadezimalzahl ausgibt. Dabei wird "nur" Stack verwendet und
> 'reg<SP>r\0\0\0' wird als nullterminierter String auf dem Stack abgelegt?
>
> Und danach sollte alles wiederhergestellt werden...
>
> Handgeschrieben, nicht getestet:
>> push {r0, r1, r2, ..., r13, r14, r15}
>>
>> mov r4, sp
>>
>> mov r0, #0x72000000
>> push {r0}
>> orr r0, #0x00650000
>> orr r0, #0x00006700
>> orr r0, #0x00000020
>> push {r0}
>>
>> bl _bootrom_uart_init
>>
>> mov r0, sp
>> bl _bootrom_uart_puts
>>
>> mov r0, #49
>> bl _bootrom_uart_putc
>>
>> mov r0, #53
>> bl _bootrom_uart_putc
>>
>> mov r0, #58
>> bl _bootrom_uart_putc
>>
>> mov r0, r4
>> bl bootrom_uart_put_num2hex
>>
>> mov r0, #10
>> bl _bootrom_uart_putc
>>
>> ...
>>
>> pop {r0}
>> pop {r0}
>> pop {r0, r1, r2, ..., r13, r14, r15}
>
> Kann das vom Prinzip her klappen?
>
> Gruß
> Matthias
>
Mehr Informationen über die Mailingliste tiptoi