USB Post Sniffer usando PIC18F2455

Dando una giro me encontre este proyectico interesante, quien lo pueda traducir el ingles no es lo mio:
Fuente
Descarga del proyecto(codigo fuente incluido)
Aqui una muestra de un log capturado
    binary          hex          description                        time
     
    01010000        50      S_LOAD_UPDATE_1                    2:08:36 AM
    01110000        70      S_INIT_BOOT_ANIMATION              2:08:36 AM
    01110010        72      S_INIT_SHADOWBOOT                  2:08:36 AM
    01110000        70      S_INIT_BOOT_ANIMATION              2:08:36 AM
    00110000        30      S_VERIFY_OFFSET_4BL                2:08:36 AM
    00000000        0                                          2:08:36 AM
    11111111        FF      E_FATAL                            2:08:36 AM
    00000000        0                                          2:08:36 AM
    00010000        10                                         2:08:37 AM
    00010100        14      W1_S_FSB_CONFIG_TX_CREDITS         2:08:37 AM
    00010101        15      W1_S_FETCH_OFFSET                  2:08:37 AM
    00010110        16      W1_S_FETCH_HEADER                  2:08:37 AM
    00010111        17      W1_S_VERIFY_HEADER                 2:08:37 AM
    00011000        18      W1_S_FETCH_CONTENTS                2:08:37 AM
    00011001        19      W1_S_HMACSHA_COMPUTE               2:08:37 AM
    00011010        1A      W1_S_RC4_INITIALIZE                2:08:37 AM
    00011011        1B      W1_S_RC4_DECRYPT                   2:08:37 AM
    00011100        1C      W1_S_SHA_COMPUTE                   2:08:37 AM
    00011101        1D      W1_S_SIG_VERIFY                    2:08:37 AM
    00011110        1E      W1_S_BRANCH                        2:08:37 AM
    11010000        D0      Load_Addresses_From_CB             2:08:37 AM
    11010001        D1      Load_Fuses_To_Mem                  2:08:37 AM
    11010011        D3      Copy_header_CBB_data?              2:08:37 AM
    11010100        D4      Check_CBB_header                   2:08:37 AM
    11010101        D5      Copy_CB_B_from_NAND?               2:08:37 AM
    11010110        D6      XeCryptHmacShaInit                 2:08:37 AM
    11010111        D7      W1_S_RC4_INITIALIZE                2:08:37 AM
    11011000        D8      W1_S_RC4_DECRYPT                   2:08:37 AM
    11011001        D9      W1_S_SHA_COMPUTE                   2:08:38 AM
    11011010        DA      W1_S_SIG_VERIFY                    2:08:39 AM
    11110010        F2      Hash_Compare_Fail                  2:08:39 AM
    00000000        0                                          2:08:42 AM
    00010000        10                                         2:08:42 AM
    00010100        14      W1_S_FSB_CONFIG_TX_CREDITS         2:08:42 AM
    00010101        15      W1_S_FETCH_OFFSET                  2:08:42 AM
    00010110        16      W1_S_FETCH_HEADER                  2:08:42 AM
    00010111        17      W1_S_VERIFY_HEADER                 2:08:42 AM
    00011000        18      W1_S_FETCH_CONTENTS                2:08:42 AM
    00011001        19      W1_S_HMACSHA_COMPUTE               2:08:42 AM
    00011010        1A      W1_S_RC4_INITIALIZE                2:08:42 AM
    00011011        1B      W1_S_RC4_DECRYPT                   2:08:42 AM
    00011100        1C      W1_S_SHA_COMPUTE                   2:08:42 AM
    00011101        1D      W1_S_SIG_VERIFY                    2:08:42 AM
    00011110        1E      W1_S_BRANCH                        2:08:43 AM
    11010000        D0      Load_Addresses_From_CB             2:08:43 AM
    11010001        D1      Load_Fuses_To_Mem                  2:08:43 AM
    11010011        D3      Copy_header_CBB_data?              2:08:43 AM
    11010100        D4      Check_CBB_header                   2:08:43 AM
    11010101        D5      Copy_CB_B_from_NAND?               2:08:43 AM
    11010110        D6      XeCryptHmacShaInit                 2:08:43 AM
    11010111        D7      W1_S_RC4_INITIALIZE                2:08:43 AM
    11011000        D8      W1_S_RC4_DECRYPT                   2:08:43 AM
    11011001        D9      W1_S_SHA_COMPUTE                   2:08:43 AM
    11011011        DB      Hash_Check_Pass-Jump_to_CBB        2:08:44 AM
    11011010        DA      W1_S_SIG_VERIFY                    2:08:44 AM
    11011011        DB      Hash_Check_Pass-Jump_to_CBB        2:08:44 AM
    00100000        20      S_BEGIN                            2:08:44 AM
    00100001        21      S_INIT_SECOTP                      2:08:44 AM
    00100010        22      S_INIT_SECENG                      2:08:44 AM
    00101111        2F      S_RELOCATE                         2:08:45 AM
    00101110        2E      S_HWINIT                           2:08:45 AM
    00110011        33      S_FETCH_CONTENTS_4BL               2:08:46 AM
    00110100        34      S_HMACSHA_COMPUTE_4BL              2:08:46 AM
    00110101        35      S_RC4_INITIALIZE_4BL               2:08:46 AM
    00110110        36      S_RC4_DECRYPT_4BL                  2:08:46 AM
    00110111        37      S_SHA_COMPUTE_4BL                  2:08:46 AM
    10101101        AD      E_SHA_VERIFY_4BL                   2:08:46 AM
    00111011        3B                                         2:08:46 AM
    00111010        3A      S_BRANCH                           2:08:46 AM
    01000000        40      S_BEGIN                            2:08:46 AM
    01000010        42      S_FETCH_HEADER                     2:08:46 AM
    01000100        44      S_FETCH_CONTENTS                   2:08:46 AM
    01000101        45      S_HMACSHA_COMPUTE                  2:08:46 AM
    01000110        46      S_RC4_INITIALIZE                   2:08:46 AM
    01000111        47      S_RC4_DECRYPT                      2:08:46 AM
    01001000        48      S_SHA_COMPUTE                      2:08:46 AM
    01001011        4B      S_LZX_EXPAND                       2:08:46 AM
    01001101        4D      S_DECODE_FUSES                     2:08:46 AM
    01010011        53                                         2:08:46 AM
    01001110        4E      S_FETCH_OFFSET_6BL                 2:08:46 AM
    01001111        4F      S_VERIFY_OFFSET_6BL                2:08:46 AM
    01010000        50      S_LOAD_UPDATE_1                    2:08:46 AM
    01010010        52      S_BRANCH                           2:08:47 AM
    01011000        58      S_INIT_HYPERVISOR                  2:08:47 AM
    01011001        59                                         2:08:47 AM
    01011010        5A                                         2:08:47 AM
    01011011        5B                                         2:08:47 AM
    01011100        5C                                         2:08:47 AM
    01011111        5F                                         2:08:47 AM
    01100001        61      S_INIT_HAL_PHASE_0                 2:08:47 AM
    01100010        62      S_INIT_PROCESS_OBJECTS             2:08:47 AM
    01100011        63      S_INIT_KERNEL_DEBUGGER             2:08:47 AM
    01100100        64      S_INIT_MEMORY_MANAGER              2:08:47 AM
    01100101        65      S_INIT_STACKS                      2:08:47 AM
    01100110        66      S_INIT_OBJECT_SYSTEM               2:08:47 AM
    01100111        67      S_INIT_PHASE1_THREAD               2:08:47 AM
    01101000        68      S_INIT_PROCESSORS                  2:08:47 AM
    01101001        69      S_INIT_HAL_PHASE_1                 2:08:47 AM
    01101010        6A      S_INIT_SFC_DRIVER                  2:08:47 AM
    01101011        6B      S_INIT_KEY_VAULT                   2:08:47 AM
    01101100        6C      S_INIT_SETTINGS                    2:08:47 AM
    01101101        6D      S_INIT_POWER_MODE                  2:08:47 AM
    01101110        6E      S_INIT_VIDEO_DRIVER                2:08:47 AM
    01101111        6F      S_INIT_AUDIO_DRIVER                2:08:47 AM
    01110000        70      S_INIT_BOOT_ANIMATION              2:08:47 AM
    01110001        71      S_INIT_SATA_DRIVER                 2:08:47 AM
    01110010        72      S_INIT_SHADOWBOOT                  2:08:47 AM
    01110011        73      S_INIT_DUMP_SYSTEM                 2:08:47 AM
    01110101        75      S_INIT_OTHER_DRIVERS               2:08:47 AM
    01110110        76      S_INIT_STFS_DRIVER                 2:08:47 AM
    01110111        77      S_LOAD_XAM                         2:08:47 AM
    01111000        78      S_INIT_STFS_DRIVER                 2:08:47 AM
    01111001        79      S_LOAD_XAM                         2:08:47 AM
    00000000        0                                          2:08:50 AM
Pic18F2455 Xbox 360 Post Sniffer v2.2b

Lista de partes: http://tiny.cc/o3hhh

Pic18F2450, Pic18F4455 y Pic18F4450 deberian funcioar.

Programa el PicXBoot.hex al Pic via la interfaz Art2003 o ICSP, consultar referencia de los pines (paginas 4 y 5 ): http://tiny.cc/e5s01
Construye un circuito con el diagram proveido Diagram.bmp
Conectalo a la PC via USB, Instala el Driver e utiliza PDFSUSB ( en carpeta de Program) para programar "Post Sniffer.hex"
Conecta los cables al Xbox 360 (ver diagrama Diagram.bmp, Nota: La consolas debe ser aterrizada), conecta la consola.
Concecta a la PC y ejecuta el Post Sniffer.exe
Le das click en Connect y prendes el Xbox360.

Si desas utilizar la funcion de USB SPI, Habilita el Jumper, Conecta a la PC via USB y programa el Pic on PICFLASH.hex.
presiona Reset, desconecta de la PC, Deshabilita el Jumper, Conecta al Xbox 360 (ver Diagram.bmp), instalar el driver USB nandpro


Disfrutalo :)


Creado por by Tydye81, Ayuda con el software en PC por Ameel.

--- Translation to Spanish by nknave ---
Muy buen proyecto, ya lo he probado... de hecho uso algo así, aunque con algunas modificaciones :)
Lo elegante es que se aprovecha un hardware que la mayoría ya tiene, que es el programador SPI o nandflasher basado en PIC (normalmente es un PIC18F2455) solo hay que programarlo con el codigo adecuado y listo ! (en este caso el codigo sería el PostSniffer.hex) por supuesto que hay que agregarle algunas cosas, por el problema de los niveles de voltaje de POST BUS.

Agregar que se puede saltar la parte del programar con el Art2003 o ICSP, eso solo es en caso de que el PIC esté en blanco.
Si tenemos un programador operativo ya está el bootloader en el, solo hay que poner el jumper o puente para activarlo, conectar a la PC, instalar el driver, y usar el programa PDFSUSB para programarlo con el código que se desee (xxxxx.hex) luego, quitar el jumper y ya lo tenemos preparado para su nueva función.

Estos PIC son potentisimos, y muy flexibles, aparte de esta función como programador o nandflasher que ya es vieja en la scene de 360, hace un tiempo atrás también se usaron mucho en la scene de PS3 para hacer una versión casera del Jailbreak.

De hecho ya tengo preparado todo para utilizarlos también en mi proyecto GlitchSpeed, cuaquiera que tenga un programador de estos, sea casero o de fabrica (como el del team Matrix) puede reprogramarlo para utilizarlo para medir los tiempos de arranque. Con esto se hace compatible el proyecto con todas las versiones de windows, así como deja de ser dependiente de que la PC tenga puerto paralelo (LPT) ya que todo sería vía USB .... el procedimiento para ponerlo a punto sería hacer estos mismos pasos, solo que programando otro código. Por supuesto, siempre se puede volver a programar el codigo PICFLASH.HEX con lo cual ya tendríamos de nuevo nuestro programador operativo nuevamente.

Así que en vez de un simple nandflasher realmente tenemos un dispositivo muy flexible, capaz de programarse para hacer muchas más cosas útiles ... :)

Saludos !
Da gusto ver cosas así de interesantes! seguid así!

Un saludo
Buenas chicos
¿para qué sirve y que función tiene?
Perdonad mi ignorancia pero no sé qué es un USB Port Sniffer.
Saludos
luisdlahuerta escribió:Buenas chicos
¿para qué sirve y que función tiene?
Perdonad mi ignorancia pero no sé qué es un USB Port Sniffer.
Saludos

+1
sento01 escribió:
luisdlahuerta escribió:Buenas chicos
¿para qué sirve y que función tiene?
Perdonad mi ignorancia pero no sé qué es un USB Port Sniffer.
Saludos

+1

+1, sniffer me suena a algo que hacía el xlink kay y xbslink, no se si tendrá que ver.
Por lo que veo en el código seria algo como un usb con un pic que registre todo lo que esta haciendo la consola , con solo conectarla a un usb.

corregirme si me equivoco .
no el usb es para conectarlo al pc a la consola van esa pila cablesitos soldados, ose es para monitorear la consola pero por puerto usb
Y que tipo de informacion se obtiene? o monitorear te refieres a sacar video???
Es para ver la información de depuración del CPU, que va haciendo el procesador en cada etapa del proceso de booteo. Lo mismo que ve el chip de rgh a través del post out pero desde el PC usando dicha interfaz de hardware
sento01 escribió:Y que tipo de informacion se obtiene? o monitorear te refieres a sacar video???


sento paletilla jajaja , monitorear no suele ser captura de vídeo , creo que se refiere a procesos que se ejecutan en el kernel de la xbox , aunque esto es mas fácil pudiéndolo hacer con un devkit .
11 respuestas