Pagina 3 di 8

Re: L.O.T.F.C.B. project 'aka' reverse engineering the Game

Inviato: 03/11/2014, 21:21
da calippo
Contenuto di RcS (snippet interessante per noi)

Codice: Seleziona tutto

cd  /sdcard
if [ -e ./xhidev ]; then
	./xhidev
	echo "Vertical version."
elif [ -e ./xhideh ]; then
	./xhideh
	echo "Horizontal version."
fi
su -l
cd  /sdcard
./run.sh
reboot
Contenuto run.sh
#! /bin/sh
./xrunmh

Codice: Seleziona tutto

$ file -L xrunmh 
xrunmh: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.27, not stripped[/img]
Facedo un pò di elementare static binary analysis...
$ strings xhideh | grep reboot
reboot
rm /tmp/reboot
ln -s /bin/busybox /tmp/reboot
Failed ! Please reboot and retry.
Press 1P_START to reboot.
needto_reboot

$ strings xrunmh | grep xhideh
cd /sdcard ; ./xhideh ab12

$ strings xhideh | grep xle
xhidemh V1.946 384 xlevel hv 2&3 setupflip emu19.
./xlevel
cd /sdcard; ./xlevel
_ZN2ll10lemon_menu31handle_run_with_sdl_quit_xlevelEv

$ strings xlevel | grep reboot
reboot
Failed ! Please reboot and retry.
rm /tmp/reboot
ln -s /bin/busybox /tmp/reboot
Press 1P_START to reboot.
Non ho ancora usato IDA Pro... comunque sembra che i controlli vengano efettuati in runtime degli eseguibili qui sopra... es. xhideh
Mi incuriosisce il fatto che chiamino...
rm /tmp/reboot
ln -s /bin/busybox /tmp/reboot
Per chi non lo sapesse busybox è un insieme di utility base per sistemi embedded come nel nostro caso...
Cosi a nasello si potrebbe ipotizzare che i cinesini invece di chiamare /sbin/reboot (che altro non era un simlink a /sbin/busybox) ora creano /tmp/reboot al boot e lo chiamano... a questo punto sarei curioso di vedere cosa succede se rinominiamo nell SD /bin/busybox in /bin/busybox_fuffa.

Il top, onde evitare problemi con altri software che utilizzano busybox... sarebbe di cross-compilare busybox ex-novo, eliminando l'opzione/comando di reboot.
Qualcuno mi stà seguendo ancora? O vi siete persi? 8-)


P.S. PER I MOD, per favore, mettete il Thread accessibile solo agli utenti registrati... altrimenti sti cinesi ci si leggono <-bluto-> 8)

Re: L.O.T.F.C.B. project 'aka' reverse engineering the Game

Inviato: 03/11/2014, 21:40
da apiso
Rinominare busybox fa bloccare la scheda alla visualizzazione dei toads ì, l unica come dici te e ricompilare busybox ma io non ho le competenxe necessarie, oppure trovare l algoritmo che produce il file game.bin in base al contenuto del game.conf ma questo mi sa che e ancora piu difficile, calippo siamo nelle tue mani.

Re: L.O.T.F.C.B. project 'aka' reverse engineering the Game

Inviato: 03/11/2014, 21:42
da calippo
Aspetta questo me l'ero perso... c'è anche un game.bin che bisogna modificare per aggiungere rom?
Questa non la ricordavo.
Volo a guardarmi game.bin.

Re: L.O.T.F.C.B. project 'aka' reverse engineering the Game

Inviato: 03/11/2014, 21:45
da calippo
Qualcuno può provare una immagine SD 512 con sn.bin aggiornato... con la GAME ELF 619?

Perchè a questo punto potrebbe bastare sostituire gli elf files (eseguibili) della 619 con quelli della 512... se proprio avremo sfiga nel ricompilare busybox alleggerito di reboot ;)

Re: L.O.T.F.C.B. project 'aka' reverse engineering the Game

Inviato: 03/11/2014, 21:48
da apiso
Game.bin non va modificato nelle vecchie versioni,ma da quello che ho letto se vede che il game.conf e' modificato chiama il reboot, per questo bisognava rinominarlo.

Re: L.O.T.F.C.B. project 'aka' reverse engineering the Game

Inviato: 03/11/2014, 21:55
da zonatar
In effetti visto che con la 1.9 se si mette la scheda della 619 poi non si può + hackerare sarebbe da provare il contrario, solo che non ho un'immagine della 512, sennò provavo al volo!

Re: L.O.T.F.C.B. project 'aka' reverse engineering the Game

Inviato: 03/11/2014, 21:57
da motoschifo
Io non possiedo quelle schede ma faccio una domanda stupida: nella sd c'è tutto il sistema oppure solo la parte giochi? Cioè se io messo una copia della sd in un emulatore arm, questa parte? Es. con qemu.
Se è così, una volta capiti i giri degli script e dove sta il blocco, non dovrebbe essere impossibile da aggirare.
Nel caso, dove trovo l'immagine della scheda?
Non ho molto tempo però la cosa si sta facendo interessante... :)

Invece per togliere il reboot non basta sostituirglielo prima di chiamare i vari script o cambiare i byte interessati in busybox? Ma credo che il problema non sia il reboot...

Sono tutte ipotesi, non ho mai nemmeno provato una scheda simile e non mi sono mai documentato in giro.

Re: L.O.T.F.C.B. project 'aka' reverse engineering the Game

Inviato: 03/11/2014, 21:59
da zonatar

Re: L.O.T.F.C.B. project 'aka' reverse engineering the Game

Inviato: 03/11/2014, 22:01
da calippo
Con probabilità abbiamo trovato il candidato da patchare...

Codice: Seleziona tutto

$ strings xrunmh | grep   -A 20 -B 20 games
__bss_start__
__bss_end__
__end__
/home/lilxc/nfsroot/SDL/lib
_ZTIN2ll9bad_lemonE
GCC_3.5
GLIBCXX_3.4.9
CXXABI_ARM_1.3.3
CXXABI_1.3
GLIBCXX_3.4.11
GLIBCXX_3.4
GLIBC_2.4
llll
UUUU
VUUU
UUUU
N2ll9bad_lemonE
/dev/fb0
Error : Can not open framebuffer device
Error reading variable information
/sdcard/xrun/games.conf
/sdcard/xrun/games.bin
/sdcard/xrun/gamescn.conf
/sdcard/xrun/gamescn.bin
Mix_OpenAudio error. 
./xrun/bg.mp3
./xrun/coin.wav
./xrun/menu.wav
./xrun/page.wav
/dev/mixer
xrunmh V2.712 384 setupflip emu19
gamelist
reboot
/tmp/BIT8
/tmp/BIT2
./xrunmv
/tmp/HV
/tmp/BIT1
/tmp/BIT4
/tmp/BOOTOVER
/tmp/VERT
echo 0 >> /tmp/BOOTOVER
cd /sdcard ; ./xrunmv 
./xrun
--
main_loop: starting render loop
exit
down
pgup
pgdown
reload
showhide
select
back
alphamod
Into get_single_run_game_index
Into get_single_run_game_index, 
./showroms.lst
./showroms.lst file open error .
title
params
emu0
sorted
game
menu
gamescn.conf
games.conf
load_menus: file error, using defaults
load_menus: parse error
Arcade Games
 --------------
-->add rom : 
handle_show_hide: changing hidden status
rotate
snapshot_delay
lemon_menu::lemon_menu
./xrun/xrun384240cn.conf
./xrun/xrun384240.conf
./xrun/xrun320240cn.conf
./xrun/xrun320240.conf
./xrun/xrun320240v12.conf
./xrun/xrun640480cn.conf
./xrun/xrun640480.conf
./xrun/xrun640480v12.conf
load_menus();
get_single_run_game_index();
OS/2 
....

Re: L.O.T.F.C.B. project 'aka' reverse engineering the Game

Inviato: 03/11/2014, 22:02
da calippo
E' la tua o quella disponibile su arcade-museum?

Re: L.O.T.F.C.B. project 'aka' reverse engineering the Game

Inviato: 03/11/2014, 22:02
da zonatar
nono, sempre quella del tizio di arcade-museum.

Re: L.O.T.F.C.B. project 'aka' reverse engineering the Game

Inviato: 03/11/2014, 22:09
da zonatar
Ma, domanda, visto che le rom ce l'ho già, apiso potrebbe fare un'immagine della sua sd senza le rom, così pesa il giusto x poterla uppare da qualche parte, così che la scarico, ci copio le mie rom, e guardo se va?

Re: L.O.T.F.C.B. project 'aka' reverse engineering the Game

Inviato: 03/11/2014, 22:12
da calippo
Primo post aggiornato con le idee e le info recuperate fin'ora. ;)

@Zonatar In effetti non sarebbe scema come cosa :)

@Motoschifo. In teoria potresti benissimo monstare tutto il FS in una VM di qemu ed eseguire i tool :)
O anche una semplice Raspberry ;)
O raspberry con qemu :D
http://xecdesign.com/qemu-emulating-ras ... -easy-way/

Per croscompilare serve una ARM toolchain tipo...
http://www.elinux.org/ARMCompilers

Re: L.O.T.F.C.B. project 'aka' reverse engineering the Game

Inviato: 03/11/2014, 22:18
da zonatar
:)

Cmq a questo punto, l'hw dovrebbe essere proprio lo stesso, almeno, sembrerebbe :S

Re: L.O.T.F.C.B. project 'aka' reverse engineering the Game

Inviato: 03/11/2014, 22:46
da apiso
zonatar ha scritto:Ma, domanda, visto che le rom ce l'ho già, apiso potrebbe fare un'immagine della sua sd senza le rom, così pesa il giusto x poterla uppare da qualche parte, così che la scarico, ci copio le mie rom, e guardo se va?
Consigliatemi un posto dove metterla, quando ho tempo provo senza rom al momento la mia connessione e penosa.

Re: L.O.T.F.C.B. project 'aka' reverse engineering the Game

Inviato: 03/11/2014, 22:47
da calippo
Sicuramente ti consiglio MEGA!
http://mega.co.nz/

Ti devi registrare... ma ne vale la pena. 50 GB aggratis e piu sicuro di Dropbox

Re: L.O.T.F.C.B. project 'aka' reverse engineering the Game

Inviato: 04/11/2014, 14:30
da calippo

Codice: Seleziona tutto

$ strings /bin/setdefault | grep sn.bin
/tmp/mmcp2/sn.bin
cp -vf /tmp/mmcp2/sn.bin /tmp/mmcp1/boot
/tmp/mmcp1/boot/sn.bin
/tmp/mmcp1/boot/sn.bin
cp -avf /tmp/mmcp1/boot/sn.bin /sdcard
cp -vf /tmp/mmcp1/boot/sn.bin /tmp/mmcp1/boot/en.bin 
/sdcard/sn.bin

Codice: Seleziona tutto

...
combuf clear. !!!
Checksum OK.
snbuf checksum FAILED.
xor = %02x , snbuf[64]=%02x .
sum = %02x , snbuf[65]=%02x .
/tmp/mmcp2/sn.bin
cp -vf /tmp/mmcp2/sn.bin /tmp/mmcp1/boot
/tmp/mmcp1/boot/sn.bin
...
E qui sembra di capire che setdefault sia l'ELF che controlla sn.bin...

Re: L.O.T.F.C.B. project 'aka' reverse engineering the Game

Inviato: 04/11/2014, 14:31
da calippo
Comunque secondo me se si usa la img 512 con giusto sn.bin in una 619... tutto funziona... si sono ottimista :D

Qualcuno uppi una 512 SD img! Va bene anche quella che c'era su MEGA shared by arcade-museum...
Sadly... non ce l'ho più quella img.... :(

Re: L.O.T.F.C.B. project 'aka' reverse engineering the Game

Inviato: 04/11/2014, 14:42
da zonatar
io su mega vidi solo quella della 619...

Re: L.O.T.F.C.B. project 'aka' reverse engineering the Game

Inviato: 04/11/2014, 14:49
da calippo
mesi fa qualcuno postò anche la 512... :(