Пример #1
0
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;
}
Пример #2
0
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;
}
Пример #3
0
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);
}