Reversare i programmi per Palm OS

By PaStOrE (pastore1@freemail.it)

05/06/2001

 

INTRODUZIONE

Ed eccoci qua…a scrivere il mio primo tutorial trattante  programmi per Palm OS!

La necessità di reversare programmi per palmare mi è venuta naturalmente da quando ho comprato il Palmare qualche giorno fa…  :-)

Ok, partiamo!

Questi tipi di palmari usano memoria flash, dove vengono memorizzati programmi e dati; questo oltretutto li rende molto più versatili di quelli che montano Winzozz CE o Pocket PC (chiusa parentesi  :) ).

Il chip che montano è un Motorola DragonBall 68000, quindi ci troveremo davanti all’assembly Motorola (non molto diverso da quello dell’ 8088). Oltretutto, a qualcuno il numero 68000 non dovrebbe essere nuovo (era usato dal mitico AMIGA, questo DragonBall deve essere un parente… :-) ).

Il codice va studiato quasi esclusivamente in “death assembler”, cioè con il listato già disassemblato, in quanto non esistono debugger run-time (come il mitico S-Ice); l’unico programma che può fare questa funzione è “Debuffer”, il debugger con il quale si può steppare run-time su programmi caricati sull’emulatore; questo argomento lo tratteremo in seguito.

TOOLS NECESSARI

PilotDis :  un disassemblatore sotto Dos. (il più usato..potete usare anche IDA, ma io

                 preferisco questo).

Prc2Bin:   separa le varie funzioni del programma in files (“resource” in inglese)

                 Serve per individuare form (come quelle che visualizzano il messaggio “codice

                 non valido”,etc etc) e di conseguenza i punti dove vengono richiamate.

POSE:      l’emulatore per Palm OS (ci servirà per testare i programmi, se l’abbiamo patchati

                correttamente, etc etc.). Molto utile anche per chi non ha il palmare, ma vuole reversare

                ugualmente :-)

Debuffer: Debugger run-time per il POSE.

Per far funzionare l’emulatore ci vuole una rom.. se non avete un palmare dovete scaricarvi la mia!