int main(void) { u8 *payload, *stage2; int payload_size, result; #ifdef DEBUG debug_init(); #endif DPRINTF("Stage 1.5 lan hello.\n"); result = gelic_init(); if (result != 0) goto error; payload = (void *)MKA(0x700000);//alloc(MAX_PAYLOAD_SIZE, 0x27); if (!payload) goto error; payload_size = gelic_recv_data(payload, MAX_PAYLOAD_SIZE); if (payload_size <= 0) goto error; DPRINTF("Receive data: %d\n", payload_size); stage2 = alloc(payload_size, 0x27); if (!stage2) goto error; memcpy(stage2, payload, payload_size); clear_icache(stage2, payload_size); memset(payload, 0, payload_size); //dealloc(payload, 0x27); result = gelic_deinit(); if (result != 0) goto error; /*result = mm_deinit(); if (result != 0) goto error;*/ f_desc_t desc; desc.addr = stage2; DPRINTF("Calling stage2...\n"); debug_end(); void (* stage2_func)(void) = (void *)&desc; stage2_func(); return 0; error: lv1_panic(0); return -1; }
int start(void) { int i, result; printf("mm_init()\n"); result = mm_init(); if (result != 0) goto error; printf("param_init()\n"); result = param_init(); if (result != 0) goto error; printf("gelic_init()\n"); result = gelic_init(); if (result != 0) goto error; printf("gelic_xmit_test()\n"); result = gelic_xmit_test(); if (result != 0) goto error; /* printf("gelic_recv_test()\n"); result = gelic_recv_test(); if (result != 0) goto error; */ /* printf("dump_lv2()\n"); result = dump_lv2(0x8000000000000000ULL, 64 * 1024 * 1024); if (result != 0) goto error; */ /* printf("dump_slb()\n"); result = dump_slb(); if (result != 0) goto error; */ /* printf("dump_sprg0()\n"); result = dump_sprg0(); if (result != 0) goto error; */ /* printf("dump_htab()\n"); result = dump_htab(); if (result != 0) goto error; */ /* printf("dump_stor()\n"); result = dump_stor(); if (result != 0) goto error; */ printf("dump_flash()\n"); result = dump_flash(); if (result != 0) goto error; /* printf("dump_repo_nodes()\n"); result = dump_repo_nodes(); if (result != 0) goto error; */ /* printf("dump_repo_nodes_spu()\n"); result = dump_repo_nodes_spu(); if (result != 0) goto error; */ /* printf("dump_profile()\n"); result = dump_profile(); if (result != 0) goto error; */ /* printf("decrypt_profile()\n"); result = decrypt_profile(); if (result != 0) goto error; */ /* printf("vuart_sysmgr()\n"); result = vuart_sysmgr(); if (result != 0) goto error; */ /* printf("vuart_dispmgr()\n"); result = vuart_dispmgr(); if (result != 0) goto error; */ /* printf("decrypt_usb_dongle_master_key()\n"); result = decrypt_usb_dongle_master_key(); if (result != 0) goto error; */ /* printf("update_mgr_inspect_pkg()\n"); result = update_mgr_inspect_pkg(); if (result != 0) goto error; */ /* printf("query_lpar_address()\n"); result = query_lpar_address(); if (result != 0) goto error; */ /* printf("decrypt_pkg()\n"); result = decrypt_pkg(); if (result != 0) goto error; */ return 0; error: return -1; }
int main(void) { int i, result; result = mm_init(); if (result != 0) goto error; result = param_init(); if (result != 0) goto error; result = gelic_init(); if (result != 0) goto error; patch_dispmgr(); /* result = gelic_xmit_test(); if (result != 0) goto error; */ /* result = gelic_recv_test(); if (result != 0) goto error; */ /* result = dump_lv2(0x8000000000000000ULL, 8 * 1024 * 1024); if (result != 0) goto error; */ /* result = dump_slb(); if (result != 0) goto error; */ /* result = dump_sprg0(); if (result != 0) goto error; */ /* result = dump_htab(); if (result != 0) goto error; */ /* result = dump_stor(); if (result != 0) goto error; */ /* result = dump_flash(); if (result != 0) goto error; */ /* result = dump_repo_nodes(); if (result != 0) goto error; */ /* result = dump_repo_nodes_spu(); if (result != 0) goto error; */ /* result = dump_profile(); if (result != 0) goto error; */ /* result = decrypt_profile(); if (result != 0) goto error; */ /* result = vuart_sysmgr(); if (result != 0) goto error; */ /* result = vuart_dispmgr(); if (result != 0) goto error; */ /* result = decrypt_usb_dongle_master_key(); if (result != 0) goto error; */ /* result = update_mgr_qa_flag(); if (result != 0) goto error; */ /* result = update_mgr_get_token_seed(); if (result != 0) goto error; */ /* result = update_mgr_set_token(); if (result != 0) goto error; */ /* result = update_mgr_inspect_pkg(); if (result != 0) goto error; */ /* result = query_lpar_address(); if (result != 0) goto error; */ /* result = update_mgr_calc_token(); if (result != 0) goto error; */ /* result = update_mgr_verify_token(); if (result != 0) goto error; */ /* result = decrypt_pkg(); if (result != 0) goto error; */ /* result = decrypt_self(); if (result != 0) goto error; */ /* result = dump_hvcall99_param(); if (result != 0) goto error; */ /* result = decrypt_npdrm(); if (result != 0) goto error; */ /* result = self_decrypter_hook(); if (result != 0) goto error; */ /* result = decrypt_game(); if (result != 0) goto error; */ /* result = decrypt_lv2_direct(); if (result != 0) goto error; */ /* result = decrypt_lv2_direct_355(); if (result != 0) goto error; */ /* result = usb_dongle_auth(); if (result != 0) goto error; */ /* result = product_mode_off(); if (result != 0) goto error; */ /* result = decrypt_self_direct(); if (result != 0) goto error; */ /* result = decrypt_self_direct_355(); if (result != 0) goto error; */ /* result = vuart_hook(); if (result != 0) goto error; */ /* result = stor_hook(); if (result != 0) goto error; */ /* result = hvcall209_hook(); if (result != 0) goto error; */ /* result = dump_lpar_ra(); if (result != 0) goto error; */ /* result = hv_mmap_exploit(); if (result != 0) goto error; */ /* result = dump_lv1(); if (result != 0) goto error; */ /* result = sc_mgr_read_eprom(); if (result != 0) goto error; */ /* result = sc_mgr_get_region_data(); if (result != 0) goto error; */ /* result = sc_mgr_get_sc_status(); if (result != 0) goto error; */ /* result = sc_mgr_get_srh(); if (result != 0) goto error; */ /* result = aim_get_device_type(); if (result != 0) goto error; */ /* result = aim_get_device_id(); if (result != 0) goto error; */ /* result = aim_get_ps_code(); if (result != 0) goto error; */ /* result = aim_get_open_ps_id(); if (result != 0) goto error; */ /* result = decrypt_profile_direct(); if (result != 0) goto error; */ /* result = sc_iso_sc_binary_patch(); if (result != 0) goto error; */ /* result = sc_iso_get_sc_status(); if (result != 0) goto error; */ /* result = sc_iso_get_property(); if (result != 0) goto error; */ /* result = sb_iso_get_rnd(); if (result != 0) goto error; */ /* result = sb_iso_encdec_key(); if (result != 0) goto error; */ /* result = edec_kgen1(); if (result != 0) goto error; */ /* result = store_file_on_flash(); if (result != 0) goto error; */ /* result = replace_lv2(); if (result != 0) goto error; */ result = dump_dev_flash(); if (result != 0) goto error; return 0; done: lv1_panic(0); return 0; error: lv1_panic(1); }