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.
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!