Ejemplo n.º 1
0
/* send a command before reading */
int CmdLFCommandRead(const char *Cmd)
{
	static char dummy[3] = {0x20,0x00,0x00};
	UsbCommand c = {CMD_MOD_THEN_ACQUIRE_RAW_ADC_SAMPLES_125K};
	bool errors = FALSE;
	//uint8_t divisor = 95; //125khz
	uint8_t cmdp = 0;
	int strLength = 0;
	while(param_getchar(Cmd, cmdp) != 0x00)
	{
		switch(param_getchar(Cmd, cmdp))
		{
		case 'h':
			return usage_lf_cmdread();
		case 'H':
			//divisor = 88;
			dummy[1]='h';
			cmdp++;
			break;
		case 'L':
			cmdp++;
			break;
		case 'c':
			strLength = param_getstr(Cmd, cmdp+1, (char *)&c.d.asBytes);
			cmdp+=2;
			break;
		case 'd':
			c.arg[0] = param_get32ex(Cmd, cmdp+1, 0, 10);
			cmdp+=2;
			break;
		case 'z':
			c.arg[1] = param_get32ex(Cmd, cmdp+1, 0, 10);
			cmdp+=2;
			break;
		case 'o':
			c.arg[2] = param_get32ex(Cmd, cmdp+1, 0, 10);
			cmdp+=2;
			break;
		default:
			PrintAndLog("Unknown parameter '%c'", param_getchar(Cmd, cmdp));
			errors = 1;
			break;
		}
		if(errors) break;
	}
	// No args
	if(cmdp == 0) errors = 1;

	//Validations
	if(errors) return usage_lf_cmdread();
	
	// in case they specified 'H'
	strcpy((char *)&c.d.asBytes + strlen((char *)c.d.asBytes), dummy);

	clearCommandBuffer();
	SendCommand(&c);
	return 0;
}
Ejemplo n.º 2
0
int CmdLFPCF7931Config(const char *Cmd) {

    uint8_t ctmp = param_getchar(Cmd, 0);
    if ( ctmp == 0) return pcf7931_printConfig();
    if ( ctmp == 'H' || ctmp == 'h' ) return usage_pcf7931_config();
    if ( ctmp == 'R' || ctmp == 'r' ) return pcf7931_resetConfig();

    if ( param_gethex(Cmd, 0, configPcf.Pwd, 14) ) return usage_pcf7931_config();

    configPcf.InitDelay = (param_get32ex(Cmd,1,0,10) & 0xFFFF);
    configPcf.OffsetWidth = (int)(param_get32ex(Cmd,2,0,10) & 0xFFFF);
    configPcf.OffsetPosition = (int)(param_get32ex(Cmd,3,0,10) & 0xFFFF);

    pcf7931_printConfig();
    return 0;
}
Ejemplo n.º 3
0
int CmdVisa2kClone(const char *Cmd) {

	uint64_t id = 0;
	uint32_t blocks[4] = {T55x7_MODULATION_MANCHESTER | T55x7_BITRATE_RF_64 | T55x7_ST_TERMINATOR | 3 << T55x7_MAXBLOCK_SHIFT, BL0CK1, 0};

	char cmdp = param_getchar(Cmd, 0);
	if (strlen(Cmd) == 0 || cmdp == 'h' || cmdp == 'H') return usage_lf_visa2k_clone();

	id = param_get32ex(Cmd, 0, 0, 10);
	
	//Q5
	if (param_getchar(Cmd, 1) == 'Q' || param_getchar(Cmd, 1) == 'q') {
		//t5555 (Q5) BITRATE = (RF-2)/2 (iceman)
		blocks[0] = T5555_MODULATION_MANCHESTER | ((64-2)>>1) << T5555_BITRATE_SHIFT | T5555_ST_TERMINATOR | 3 << T5555_MAXBLOCK_SHIFT;
	}
Ejemplo n.º 4
0
int CmdFdxClone(const char *Cmd) {

	uint32_t countryid = 0;
	uint64_t animalid = 0;
	uint32_t blocks[5] = {T55x7_MODULATION_DIPHASE | T55x7_BITRATE_RF_32 | 4 << T55x7_MAXBLOCK_SHIFT, 0, 0, 0, 0};
	uint8_t bits[128];
	uint8_t *bs = bits;
	memset(bs, 0, sizeof(bits));
	
	char cmdp = param_getchar(Cmd, 0);
	if (strlen(Cmd) == 0 || cmdp == 'h' || cmdp == 'H') return usage_lf_fdx_clone();

	countryid = param_get32ex(Cmd, 0, 0, 10);
	animalid = param_get64ex(Cmd, 1, 0, 10);
	
	//Q5
	if (param_getchar(Cmd, 2) == 'Q' || param_getchar(Cmd, 2) == 'q') {
		//t5555 (Q5) BITRATE = (RF-2)/2 (iceman)
		blocks[0] = T5555_MODULATION_BIPHASE | T5555_INVERT_OUTPUT | ((32-2)>>1) << T5555_BITRATE_SHIFT | 4 << T5555_MAXBLOCK_SHIFT;
	}
Ejemplo n.º 5
0
int CmdHFDESDbg(const char *Cmd)
{
    int dbgMode = param_get32ex(Cmd, 0, 0, 10);
    if (dbgMode > 4) {
        PrintAndLog("Max debud mode parameter is 4 \n");
    }

    if (strlen(Cmd) < 1 || !param_getchar(Cmd, 0) || dbgMode > 4) {
        PrintAndLog("Usage:  hf des dbg  <debug level>");
        PrintAndLog(" 0 - no debug messages");
        PrintAndLog(" 1 - error messages");
        PrintAndLog(" 2 - all messages");
        PrintAndLog(" 4 - extended debug mode");
        return 0;
    }

  UsbCommand c = {CMD_MIFARE_SET_DBGMODE, {dbgMode, 0, 0}};
  SendCommand(&c);

  return 0;
}