mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-21 13:53:55 -07:00
CHG: syntax suger
This commit is contained in:
parent
dd79e03a1a
commit
5cc88edfaf
3 changed files with 51 additions and 56 deletions
|
@ -94,7 +94,6 @@ static uint64_t cipher_state;
|
|||
#define rotl64(x, n) ((((u64)(x))<<((n)&63))+(((u64)(x))>>((0-(n))&63)))
|
||||
|
||||
// Single bit Hitag2 functions:
|
||||
|
||||
#define i4(x,a,b,c,d) ((u32)((((x)>>(a))&1)+(((x)>>(b))&1)*2+(((x)>>(c))&1)*4+(((x)>>(d))&1)*8))
|
||||
|
||||
static const u32 ht2_f4a = 0x2C79; // 0010 1100 0111 1001
|
||||
|
@ -103,7 +102,7 @@ static const u32 ht2_f5c = 0x7907287B; // 0111 1001 0000 0111 0010 1000 0111 101
|
|||
|
||||
static u32 _f20 (const u64 x)
|
||||
{
|
||||
u32 i5;
|
||||
u32 i5;
|
||||
|
||||
i5 = ((ht2_f4a >> i4 (x, 1, 2, 4, 5)) & 1)* 1
|
||||
+ ((ht2_f4b >> i4 (x, 7,11,13,14)) & 1)* 2
|
||||
|
@ -116,8 +115,8 @@ static u32 _f20 (const u64 x)
|
|||
|
||||
static u64 _hitag2_init (const u64 key, const u32 serial, const u32 IV)
|
||||
{
|
||||
u32 i;
|
||||
u64 x = ((key & 0xFFFF) << 32) + serial;
|
||||
u32 i;
|
||||
u64 x = ((key & 0xFFFF) << 32) + serial;
|
||||
|
||||
for (i = 0; i < 32; i++)
|
||||
{
|
||||
|
@ -129,7 +128,7 @@ static u64 _hitag2_init (const u64 key, const u32 serial, const u32 IV)
|
|||
|
||||
static u64 _hitag2_round (u64 *state)
|
||||
{
|
||||
u64 x = *state;
|
||||
u64 x = *state;
|
||||
|
||||
x = (x >> 1) +
|
||||
((((x >> 0) ^ (x >> 2) ^ (x >> 3) ^ (x >> 6)
|
||||
|
@ -153,7 +152,7 @@ static u64 _hitag2_round (u64 *state)
|
|||
|
||||
static u32 _hitag2_byte (u64 * x)
|
||||
{
|
||||
u32 i, c;
|
||||
u32 i, c;
|
||||
|
||||
for (i = 0, c = 0; i < 8; i++) c += (u32) _hitag2_round (x) << (i^7);
|
||||
return c;
|
||||
|
|
|
@ -426,10 +426,11 @@ static RAMFUNC int ManchesterDecoding(int v)
|
|||
Demod.state = DEMOD_UNSYNCD;
|
||||
error = 0x88;
|
||||
}
|
||||
|
||||
|
||||
// TODO: use this error value to print? Ask Holiman.
|
||||
// 2016-01-08 iceman
|
||||
}
|
||||
error = 0;
|
||||
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
|
|
@ -89,43 +89,43 @@ int usage_lf_config(void) {
|
|||
return 0;
|
||||
}
|
||||
int usage_lf_simfsk(void) {
|
||||
PrintAndLog("Usage: lf simfsk [c <clock>] [i] [H <fcHigh>] [L <fcLow>] [d <hexdata>]");
|
||||
PrintAndLog("Options: ");
|
||||
PrintAndLog(" h This help");
|
||||
PrintAndLog(" c <clock> Manually set clock - can autodetect if using DemodBuffer");
|
||||
PrintAndLog(" i invert data");
|
||||
PrintAndLog(" H <fcHigh> Manually set the larger Field Clock");
|
||||
PrintAndLog(" L <fcLow> Manually set the smaller Field Clock");
|
||||
//PrintAndLog(" s TBD- -to enable a gap between playback repetitions - default: no gap");
|
||||
PrintAndLog(" d <hexdata> Data to sim as hex - omit to sim from DemodBuffer");
|
||||
PrintAndLog("\n NOTE: if you set one clock manually set them all manually");
|
||||
return 0;
|
||||
PrintAndLog("Usage: lf simfsk [c <clock>] [i] [H <fcHigh>] [L <fcLow>] [d <hexdata>]");
|
||||
PrintAndLog("Options: ");
|
||||
PrintAndLog(" h This help");
|
||||
PrintAndLog(" c <clock> Manually set clock - can autodetect if using DemodBuffer");
|
||||
PrintAndLog(" i invert data");
|
||||
PrintAndLog(" H <fcHigh> Manually set the larger Field Clock");
|
||||
PrintAndLog(" L <fcLow> Manually set the smaller Field Clock");
|
||||
//PrintAndLog(" s TBD- -to enable a gap between playback repetitions - default: no gap");
|
||||
PrintAndLog(" d <hexdata> Data to sim as hex - omit to sim from DemodBuffer");
|
||||
PrintAndLog("\n NOTE: if you set one clock manually set them all manually");
|
||||
return 0;
|
||||
}
|
||||
int usage_lf_simask(void) {
|
||||
PrintAndLog("Usage: lf simask [c <clock>] [i] [b|m|r] [s] [d <raw hex to sim>]");
|
||||
PrintAndLog("Options: ");
|
||||
PrintAndLog(" h This help");
|
||||
PrintAndLog(" c <clock> Manually set clock - can autodetect if using DemodBuffer");
|
||||
PrintAndLog(" i invert data");
|
||||
PrintAndLog(" b sim ask/biphase");
|
||||
PrintAndLog(" m sim ask/manchester - Default");
|
||||
PrintAndLog(" r sim ask/raw");
|
||||
PrintAndLog(" s TBD- -to enable a gap between playback repetitions - default: no gap");
|
||||
PrintAndLog(" d <hexdata> Data to sim as hex - omit to sim from DemodBuffer");
|
||||
return 0;
|
||||
PrintAndLog("Usage: lf simask [c <clock>] [i] [b|m|r] [s] [d <raw hex to sim>]");
|
||||
PrintAndLog("Options: ");
|
||||
PrintAndLog(" h This help");
|
||||
PrintAndLog(" c <clock> Manually set clock - can autodetect if using DemodBuffer");
|
||||
PrintAndLog(" i invert data");
|
||||
PrintAndLog(" b sim ask/biphase");
|
||||
PrintAndLog(" m sim ask/manchester - Default");
|
||||
PrintAndLog(" r sim ask/raw");
|
||||
PrintAndLog(" s TBD- -to enable a gap between playback repetitions - default: no gap");
|
||||
PrintAndLog(" d <hexdata> Data to sim as hex - omit to sim from DemodBuffer");
|
||||
return 0;
|
||||
}
|
||||
int usage_lf_simpsk(void) {
|
||||
PrintAndLog("Usage: lf simpsk [1|2|3] [c <clock>] [i] [r <carrier>] [d <raw hex to sim>]");
|
||||
PrintAndLog("Options: ");
|
||||
PrintAndLog(" h This help");
|
||||
PrintAndLog(" c <clock> Manually set clock - can autodetect if using DemodBuffer");
|
||||
PrintAndLog(" i invert data");
|
||||
PrintAndLog(" 1 set PSK1 (default)");
|
||||
PrintAndLog(" 2 set PSK2");
|
||||
PrintAndLog(" 3 set PSK3");
|
||||
PrintAndLog(" r <carrier> 2|4|8 are valid carriers: default = 2");
|
||||
PrintAndLog(" d <hexdata> Data to sim as hex - omit to sim from DemodBuffer");
|
||||
return 0;
|
||||
PrintAndLog("Usage: lf simpsk [1|2|3] [c <clock>] [i] [r <carrier>] [d <raw hex to sim>]");
|
||||
PrintAndLog("Options: ");
|
||||
PrintAndLog(" h This help");
|
||||
PrintAndLog(" c <clock> Manually set clock - can autodetect if using DemodBuffer");
|
||||
PrintAndLog(" i invert data");
|
||||
PrintAndLog(" 1 set PSK1 (default)");
|
||||
PrintAndLog(" 2 set PSK2");
|
||||
PrintAndLog(" 3 set PSK3");
|
||||
PrintAndLog(" r <carrier> 2|4|8 are valid carriers: default = 2");
|
||||
PrintAndLog(" d <hexdata> Data to sim as hex - omit to sim from DemodBuffer");
|
||||
return 0;
|
||||
}
|
||||
int usage_lf_find(void){
|
||||
PrintAndLog("Usage: lf search <0|1> [u]");
|
||||
|
@ -511,16 +511,15 @@ int CmdIndalaClone(const char *Cmd)
|
|||
|
||||
int CmdLFSetConfig(const char *Cmd)
|
||||
{
|
||||
|
||||
uint8_t divisor = 0;//Frequency divisor
|
||||
uint8_t bps = 0; // Bits per sample
|
||||
uint8_t decimation = 0; //How many to keep
|
||||
bool averaging = 1; // Defaults to true
|
||||
bool errors = FALSE;
|
||||
int trigger_threshold =-1;//Means no change
|
||||
int trigger_threshold = -1;//Means no change
|
||||
uint8_t unsigned_trigg = 0;
|
||||
|
||||
uint8_t cmdp =0;
|
||||
uint8_t cmdp = 0;
|
||||
while(param_getchar(Cmd, cmdp) != 0x00)
|
||||
{
|
||||
switch(param_getchar(Cmd, cmdp))
|
||||
|
@ -563,22 +562,18 @@ int CmdLFSetConfig(const char *Cmd)
|
|||
}
|
||||
if(errors) break;
|
||||
}
|
||||
if(cmdp == 0)
|
||||
{
|
||||
errors = 1;// No args
|
||||
}
|
||||
|
||||
// No args
|
||||
if (cmdp == 0) errors = 1;
|
||||
|
||||
//Validations
|
||||
if(errors)
|
||||
{
|
||||
return usage_lf_config();
|
||||
}
|
||||
if (errors) return usage_lf_config();
|
||||
|
||||
//Bps is limited to 8, so fits in lower half of arg1
|
||||
if(bps >> 8) bps = 8;
|
||||
if (bps >> 4) bps = 8;
|
||||
|
||||
sample_config config = { decimation, bps, averaging, divisor, trigger_threshold };
|
||||
|
||||
sample_config config = {
|
||||
decimation,bps,averaging,divisor,trigger_threshold
|
||||
};
|
||||
//Averaging is a flag on high-bit of arg[1]
|
||||
UsbCommand c = {CMD_SET_LF_SAMPLING_CONFIG};
|
||||
memcpy(c.d.asBytes,&config,sizeof(sample_config));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue