Пример #1
0
int main(char* argv[], int argc){

	stuff();

	if (argv[0] == "-x" || "-X") {
		exploit();
		return 1;
	}

	else if (argv[0] == "-b" || "-B") {
		device_autoboot();
		return 1;
	}

    else if (argv[0] == "-f" || "-F") {
        device_upload(argv[1]);
        return 1;
    }

    else {
    	printf("Command not found\n");
    	return -1;
    }


}
Пример #2
0
int prog_parse(char *command) {
	
	char* action = strtok(strdup(command), " ");
	
	if(! strcmp(action, "help")) {
	
		printf("Commands:\n");
		printf("\t/exit\t\t\texit from recovery console.\r\n");
		printf("\t/upload <file>\t\tupload file to device.\r\n");
		printf("\t/exploit [payload]\tsend usb exploit packet.\r\n");
		printf("\t/batch <file>\t\texecute commands from a batch file.\r\n");
		printf("\t/auto-boot\t\t\tenable auto-boot (exit recovery loop).\r\n");
		
	} else if(! strcmp(action, "exit")) {
	   
		free(action);
		return -1;
	    
	} else if(strcmp(action, "upload") == 0) {
		
		char* filename = strtok(NULL, " ");
		if(filename != NULL) 
			device_upload(filename);
		
	} else if(strcmp(action, "exploit") == 0) {
		
		char* payload = strtok(NULL, " ");
		
		if (payload != NULL)
			device_exploit(payload);
		else
		    device_exploit(NULL);
		
	} else if (! strcmp(action, "batch")) {
	
		char* filename = strtok(NULL, " ");
		
		if (filename != NULL)
			prog_batch(filename);
			   
	} else if (! strcmp(action, "auto-boot")) {
		
		device_autoboot();
		
	}
	
	free(action);
	return 0;
}
Пример #3
0
int device_exploit(char* payload) {
	
	if(payload != NULL) {
		
		if(device_upload(payload) < 0) {
		
			printf("[Device] Error uploading payload.\r\n");
			return -1;
		
		}
	}
    
	if(!libusb_control_transfer(device, 0x21, 2, 0, 0, 0, 0, 1000)) {
		
		printf("[Device] Error sending exploit.\r\n");
		return -1;
	
	}
	
	return 0;
}
Пример #4
0
void prog_handle(int argc, char *argv[]) {
	
	if (! strcmp(argv[1], "-a")) {
		
		device_autoboot();
		
	} else if (! strcmp(argv[1], "-c")) {
	
		if (argc >= 3) {
			
			if (argc > 3) {
			
				char command[0x200];
				int i = 2;
				
				for (i; i < argc; i++) {
			
					if (i > 2) strcat(command, " ");
					strcat(command, argv[i]);
				
				}
				
				argv[2] = command;
			}
				
			device_sendcmd(&argv[2]);
			
		}
		
	} else if (! strcmp(argv[1], "-r")) {	
		
		device_reset();
		
	} else if (! strcmp(argv[1], "-b")) {
	
		prog_batch(argv[2]);
		
	} else if (! strcmp(argv[1], "-u") || ! strcmp(argv[1], "-x")) {
	
		if (argc == 3) {
		
			device_upload(argv[2]);
			
			if (! strcmp(argv[1], "-x")) {
			
				device_reset();
			}
		}
	} else if(! strcmp(argv[1], "-e")) {
		
		if(argc >= 3)
			device_exploit(argv[2]);
		else
			device_exploit(NULL);
		
	} else if (! strcmp(argv[1], "-s")) {
		
		if (argc >= 3) //Logfile specified
			prog_console(argv[2]);
		else
			prog_console(NULL);
		
	} else {
	
		printf("[Program] Invalid program argument specified.\r\n");
		prog_usage();
		
	}
}