Hola Consejero, mire por encima el software y llego a ver las diferentes partes del firmware, Preloader, uboot etc.. y lo que ocupan del firmware, pero no veo como desensamblar el código. Faltaría saber los startpoints de cada zona y con eso empezar a analizar los parches realizados por los rusos y poder realizarlos nosotros en futuras versiones de los chinos.
También se podrían analizar el preloader de los firmwares no downgradeables y buscar como poder hacerlo mas fácilmente que con el truco de puentear la zona de datos de la flash en el arranque.
Si conseguimos desemsamblar el código, parchear la activación no creo que sea difícil.
No se hasta donde estáis metidos en esto ni el interes que tenéis en ello.
Pero se podría aportar algo.
Un saludo.
Si conseguimos desemsamblar el código, parchear la activación no creo que sea difícil.
No se hasta donde estáis metidos en esto ni el interes que tenéis en ello.
Pero se podría aportar algo.
.
... parece mas que obvio que los chinos que sacan esto tienen acceso a los fuentes de Pioneer.
No puede ser! He leido en el AVSForum que eran estudiantes chines!
Hola,
Ya tengo mi bdp-140 funcionando a toda mecha.
Quiero dar las gracias a todos los que colaborais para ayudarnos a los que no sabemos, en especial quisiera dar unas GRACIAS enormes a consejero por su atención y rapidez en ayudar.
Saludos.
Capetuso al final que firm le metistes el 4.02 o el 4.03, chao.
Si conseguimos desemsamblar el código, parchear la activación no creo que sea difícil.
No se hasta donde estáis metidos en esto ni el interes que tenéis en ello.
Pero se podría aportar algo.
.
En 5.08/5.09 la activación es basicamente un fichero con el numero de serie del aparato encriptado y firmado con RSA. Como los rusos son muy listos, sencillamente generaron un keypair suyo, parchearon el soft chino con la pública y usan la privada en el activador.
Para mirar el firmware has de usar una utilidad para squashfs sobre el root file system sacado con mkpio, en el foro ruso encontrarás uno. Por cierto, el programa de control del bicho es un ejecutable monolítico de la hostia divina de 25 MB, parece mas que obvio que los chinos que sacan esto tienen acceso a los fuentes de Pioneer.
Los fuentes de Uboot estan en la web de pioneer (por tema de licencia GPL) y es jugoso porque esta todo el upgrade con "upg" por el puerto serie.
He visto que hay al final del firmware un checksum y una clave RSA (Firma).
Como el soft MTKpio permite modificar y calcular tanto el checksum como la RSAkey se podría crear ese firmware intermedio que usaríamos para poder downgradear y posteriormente meter cualquier firmware.
dday lo del squashfl no me ha quedado claro, yo suelo tirar del ida pro. No se como empezar para desemsamblar el codigo. Primero habría que saber en que zona del código (u-boot, preloader, etc) esta el upgrade normal, después saber en que dirección se ejecuta. Y entonces podremos verlo en el ida pro y saber que parchear.
.\
acfg\
bin\
cpsm\
cust_part_1\
etc\
lib\
misc\
plugins\
res\
root\
sbin\
tmp\
usr\
var\
.ash_history
build.sh
description.xml
init
initrd.image
linuxrc
#! /bin/sh
source /etc/profile
echo "=rcS Start="
mknod /dev/decry2 c 162 0
insmod /etc/decry2.ko
/etc/init.d/rcSinit
RES=$?
rm -f /etc/decry2.ko
if [ $RES -ne 0 ]; then
echo "rcSinit fail: $RES"
exit $RES
fi
if [ -e /lib/fusion.ko ]; then
insmod /lib/fusion.ko
fi
sh /etc/init.d/mtd_init.sh
#sh /etc/wifi.script/eprun.sh
echo "lircd_simulator start"
lircd_simulator &
ifconfig eth0 up
ifconfig lo up
/sbin/netinfd &
/sbin/ipcd &
hostname -F /etc/hostname
if [ -e /etc/init.d/rcS.custom ]; then
sh /etc/init.d/rcS.custom || exit $?
fi
echo "simfile_prog start"
mknod /dev/simfile c 166 0
insmod /lib/modules/2.6.27/BDP/simfile_drv.ko
simfile_prog &
loop_subfile_prog &
#drop_cache &
bdpprog
RES=$?
echo "bdpprog result:$RES"
if [ $RES -eq 2 ]; then
sh /etc/init.d/rc.shutdown
elif [ $RES -eq 3 ]; then
sh /etc/init.d/rc.reboot
elif [ $RES -eq 4 ]; then
sh /etc/init.d/upg_1.sh
elif [ $RES -eq 5 ]; then
sh /etc/init.d/rc.fast_shutdown
elif [ $RES -eq 6 ]; then
sh /etc/init.d/rc.fast_reboot
fi
echo "=rcS End="
exit 0
bdpprog 24,302,272
.text:008AF09C nfs_mount_root_path ; CODE XREF: mediacenter_lb_browser_handle_open+134p
.text:008AF09C PUSH {R4,LR}
.text:008AF09E LDR R3, =unk_17B4B68
.text:008AF0A0 MOVS R2, #1
.text:008AF0A2 SUB SP, SP, #0x20
.text:008AF0A4 STRB R2, [R3,#(byte_17B4B74 - 0x17B4B68)]
.text:008AF0A6 STRB R2, [R3,#(byte_17B4B75 - 0x17B4B68)]
.text:008AF0A8 BL nfs_get_root_path
.text:008AF0AC LDR R1, =aNfsS ; "nfs:%s"
.text:008AF0AE MOVS R2, R0
.text:008AF0B0 MOV R0, SP ; s
.text:008AF0B2 BLX j_sprintf
.text:008AF0B6 MOVS R0, #1
.text:008AF0B8 LDR R1, =0x1FF
.text:008AF0BA BLX j_vset_dbg_level
.text:008AF0BE MOV R1, SP
.text:008AF0C0 LDR R0, =aNfs_mount_root ; "nfs_mount_root_path: '%s'\n"
.text:008AF0C2 BLX j_dbg_level_printf
.text:008AF0C6 MOV R0, SP
.text:008AF0C8 BL misc_ipcmsg_update_path
.text:008AF0CC ADD SP, SP, #0x20
.text:008AF0CE POP {R4,PC}
.text:008AF0CE ; End of function nfs_mount_root_path
.text:007B42A6 MOVS R1, R6 ; mount -o loop -t udf <escapedfilename>
.text:007B42A8 BL iso_file_name_handle_r0src_r1dest ; Add escape '\' to characters that need it
.text:007B42AC MOVS R1, R6 ; src
.text:007B42AE MOVS R0, R4 ; dest
.text:007B42B0 BLX strcat
.text:007B42B4 LDR R1, =(aIrPMn+5) ; /mn
.text:007B42B6 MOVS R0, R4 ; dest
.text:007B42B8 BLX strcat
.text:007B42BC MOVS R1, R7 ; /mnt/wn
.text:007B42BE MOVS R0, R4 ; dest
.text:007B42C0 BLX strcat
.text:007B42C4 LDR R1, =aHtempi ; "htempi"
.text:007B42C6 MOVS R0, R4 ; dest
.text:007B42C8 BLX strcat ; /mnt/wnhtempi
.text:007B42CC LDR R1, =(aLiblp_so+6) ; src
.text:007B42CE MOVS R0, R4 ; dest
.text:007B42D0 BLX strcat ; /mnt/wnhtempi.so
.text:007B42D4 MOVS R0, R4 ; command
.text:007B42D6 BLX system
.text:007B42DA LDR R3, =playingISO
.text:007B42DC MOVS R2, #1
.text:007B42DE STRB R2, [R3]
.text:007B42E0 MOVS R2, #0xCD0
.text:007B42E4 ADD R2, SP
.text:007B42E6 LDR R0, [R2]
.text:007B42E8 BL pb_dfb_set_isopath
.text:007B42EC BL sub_7B3D90
.text:007B42F0 CMP R0, #0
.text:007B42F2 BNE loc_7B42F6
.text:007B42F4 B Exit
.text:007B42F6 ; ---------------------------------------------------------------------------
.text:007B42F6
.text:007B42F6 loc_7B42F6 ; CODE XREF: mediacenter_lb_browser_open_file+2EEj
.text:007B42F6 MOVS R0, #1
.text:007B42F8 BL mediacenter_play_bd_in_hdd_folder
.text:007B42FC B Exit
Aqui la razon por la que no funcionan ISOs de DVDs:
Insertar CODE, HTML o PHP:.text:007B42A6 MOVS R1, R6 ; mount -o loop -t udf <escapedfilename> .text:007B42A8 BL iso_file_name_handle_r0src_r1dest ; Add escape '\' to characters that need it .text:007B42AC MOVS R1, R6 ; src .text:007B42AE MOVS R0, R4 ; dest .text:007B42B0 BLX strcat .text:007B42B4 LDR R1, =(aIrPMn+5) ; /mn .text:007B42B6 MOVS R0, R4 ; dest .text:007B42B8 BLX strcat .text:007B42BC MOVS R1, R7 ; /mnt/wn .text:007B42BE MOVS R0, R4 ; dest .text:007B42C0 BLX strcat .text:007B42C4 LDR R1, =aHtempi ; "htempi" .text:007B42C6 MOVS R0, R4 ; dest .text:007B42C8 BLX strcat ; /mnt/wnhtempi .text:007B42CC LDR R1, =(aLiblp_so+6) ; src .text:007B42CE MOVS R0, R4 ; dest .text:007B42D0 BLX strcat ; /mnt/wnhtempi.so .text:007B42D4 MOVS R0, R4 ; command .text:007B42D6 BLX system .text:007B42DA LDR R3, =playingISO .text:007B42DC MOVS R2, #1 .text:007B42DE STRB R2, [R3] .text:007B42E0 MOVS R2, #0xCD0 .text:007B42E4 ADD R2, SP .text:007B42E6 LDR R0, [R2] .text:007B42E8 BL pb_dfb_set_isopath .text:007B42EC BL sub_7B3D90 .text:007B42F0 CMP R0, #0 .text:007B42F2 BNE loc_7B42F6 .text:007B42F4 B Exit .text:007B42F6 ; --------------------------------------------------------------------------- .text:007B42F6 .text:007B42F6 loc_7B42F6 ; CODE XREF: mediacenter_lb_browser_open_file+2EEj .text:007B42F6 MOVS R0, #1 .text:007B42F8 BL mediacenter_play_bd_in_hdd_folder .text:007B42FC B Exit
.text:007B42F8 BL mediacenter_play_bd_in_hdd_folder
Pero dday parece que sabe bastante bien de lo que habla, y lo mismo podemos hacer algo importante.
Una preguntilla, ¿la carpeta BUDA que se crea cuando pinchas algo por usb, para que sirve?, ¿se puede configurar para que no se cree dicha carpeta?. Gracias.
150-200€... Parece que tienen llaves originales de Pioneer... Y SDK...en manos de investigadores libres...chinos, rusos, españoles...
Y que no se olviden de mi BDP-440.
150-200€... Parece que tienen llaves originales de Pioneer... Y SDK...en manos de investigadores libres...chinos, rusos, españoles...