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?
P.S.
PER I MOD, per favore, mettete il Thread accessibile solo agli utenti registrati... altrimenti sti cinesi ci si leggono

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