lf em 4x70 writepin --> lf em 4x70 setpin

This commit is contained in:
Henry Gabryjelski 2024-03-13 09:25:43 -07:00
commit ba83ac065e
8 changed files with 26 additions and 26 deletions

View file

@ -1249,7 +1249,7 @@ static void PacketReceived(PacketCommandNG *packet) {
em4x70_auth((em4x70_data_t *)packet->data.asBytes, true); em4x70_auth((em4x70_data_t *)packet->data.asBytes, true);
break; break;
} }
case CMD_LF_EM4X70_WRITEPIN: { case CMD_LF_EM4X70_SETPIN: {
em4x70_write_pin((em4x70_data_t *)packet->data.asBytes, true); em4x70_write_pin((em4x70_data_t *)packet->data.asBytes, true);
break; break;
} }

View file

@ -879,7 +879,7 @@ void em4x70_write_pin(const em4x70_data_t *etd, bool ledcontrol) {
StopTicks(); StopTicks();
lf_finalize(ledcontrol); lf_finalize(ledcontrol);
reply_ng(CMD_LF_EM4X70_WRITEPIN, status, tag.data, sizeof(tag.data)); reply_ng(CMD_LF_EM4X70_SETPIN, status, tag.data, sizeof(tag.data));
} }
void em4x70_write_key(const em4x70_data_t *etd, bool ledcontrol) { void em4x70_write_key(const em4x70_data_t *etd, bool ledcontrol) {

View file

@ -126,10 +126,10 @@ typedef struct _em4x70_cmd_output_auth_t {
ID48LIB_GRN grn; ID48LIB_GRN grn;
} em4x70_cmd_output_auth_t; } em4x70_cmd_output_auth_t;
typedef struct _em4x70_cmd_input_writepin_t { typedef struct _em4x70_cmd_input_setpin_t {
uint8_t use_parity; uint8_t use_parity;
uint8_t pin[4]; uint8_t pin[4];
} em4x70_cmd_input_writepin_t; } em4x70_cmd_input_setpin_t;
typedef struct _em4x70_cmd_input_writekey_t { typedef struct _em4x70_cmd_input_writekey_t {
uint8_t use_parity; uint8_t use_parity;
@ -369,7 +369,7 @@ static int unlock_em4x70(const em4x70_cmd_input_unlock_t *opts, em4x70_tag_info_
return PM3_ESOFT; return PM3_ESOFT;
} }
static int writepin_em4x70(const em4x70_cmd_input_writepin_t *opts, em4x70_tag_info_t *data_out) { static int setpin_em4x70(const em4x70_cmd_input_setpin_t *opts, em4x70_tag_info_t *data_out) {
memset(data_out, 0, sizeof(em4x70_tag_info_t)); memset(data_out, 0, sizeof(em4x70_tag_info_t));
// TODO: change firmware to use per-cmd structures // TODO: change firmware to use per-cmd structures
@ -378,10 +378,10 @@ static int writepin_em4x70(const em4x70_cmd_input_writepin_t *opts, em4x70_tag_i
etd.pin = BYTES2UINT32(opts->pin); etd.pin = BYTES2UINT32(opts->pin);
clearCommandBuffer(); clearCommandBuffer();
SendCommandNG(CMD_LF_EM4X70_WRITEPIN, (uint8_t *)&etd, sizeof(etd)); SendCommandNG(CMD_LF_EM4X70_SETPIN, (uint8_t *)&etd, sizeof(etd));
PacketResponseNG resp; PacketResponseNG resp;
if (!WaitForResponseTimeout(CMD_LF_EM4X70_WRITEPIN, &resp, TIMEOUT)) { if (!WaitForResponseTimeout(CMD_LF_EM4X70_SETPIN, &resp, TIMEOUT)) {
return PM3_ETIMEOUT; return PM3_ETIMEOUT;
} }
if (resp.status) { if (resp.status) {
@ -724,12 +724,12 @@ int CmdEM4x70Auth(const char *Cmd) {
return result; return result;
} }
int CmdEM4x70WritePIN(const char *Cmd) { int CmdEM4x70SetPIN(const char *Cmd) {
CLIParserContext *ctx; CLIParserContext *ctx;
CLIParserInit(&ctx, "lf em 4x70 writepin", CLIParserInit(&ctx, "lf em 4x70 setpin",
"Write PIN\n", "Write new PIN\n",
"lf em 4x70 writepin -p 11223344 -> Write PIN\n" "lf em 4x70 setpin -p 11223344 -> Write new PIN\n"
"lf em 4x70 writepin -p 11223344 --par -> Write PIN using parity commands\n" "lf em 4x70 setpin -p 11223344 --par -> Write new PIN using parity commands\n"
); );
void *argtable[] = { void *argtable[] = {
arg_param_begin, arg_param_begin,
@ -739,7 +739,7 @@ int CmdEM4x70WritePIN(const char *Cmd) {
}; };
CLIExecWithReturn(ctx, Cmd, argtable, true); CLIExecWithReturn(ctx, Cmd, argtable, true);
em4x70_cmd_input_writepin_t opts = { em4x70_cmd_input_setpin_t opts = {
.use_parity = arg_get_lit(ctx, 1), .use_parity = arg_get_lit(ctx, 1),
.pin = {0}, // hex value macro exits function, so cannot be initialized here .pin = {0}, // hex value macro exits function, so cannot be initialized here
}; };
@ -755,7 +755,7 @@ int CmdEM4x70WritePIN(const char *Cmd) {
// Client command line parsing and validation complete ... now use the helper function // Client command line parsing and validation complete ... now use the helper function
em4x70_tag_info_t info; em4x70_tag_info_t info;
int result = writepin_em4x70(&opts, &info); int result = setpin_em4x70(&opts, &info);
if (result == PM3_ETIMEOUT) { if (result == PM3_ETIMEOUT) {
PrintAndLogEx(WARNING, "Timeout while waiting for reply."); PrintAndLogEx(WARNING, "Timeout while waiting for reply.");
} else if (result == PM3_SUCCESS) { } else if (result == PM3_SUCCESS) {
@ -1392,9 +1392,9 @@ static command_t CommandTable[] = {
{"write", CmdEM4x70Write, IfPm3EM4x70, "Write EM4x70"}, {"write", CmdEM4x70Write, IfPm3EM4x70, "Write EM4x70"},
{"unlock", CmdEM4x70Unlock, IfPm3EM4x70, "Unlock EM4x70 for writing"}, {"unlock", CmdEM4x70Unlock, IfPm3EM4x70, "Unlock EM4x70 for writing"},
{"auth", CmdEM4x70Auth, IfPm3EM4x70, "Authenticate EM4x70"}, {"auth", CmdEM4x70Auth, IfPm3EM4x70, "Authenticate EM4x70"},
{"writepin", CmdEM4x70WritePIN, IfPm3EM4x70, "Write PIN"}, {"setpin", CmdEM4x70SetPIN, IfPm3EM4x70, "Write PIN"},
{"writekey", CmdEM4x70WriteKey, IfPm3EM4x70, "Write key"}, {"writekey", CmdEM4x70WriteKey, IfPm3EM4x70, "Write key"},
{"recover", CmdEM4x70Recover, IfPm3EM4x70, "Recover remaining key from partial key"}, {"recover", CmdEM4x70Recover, AlwaysAvailable, "Recover remaining key from partial key"},
{"autorecover", CmdEM4x70AutoRecover, IfPm3EM4x70, "Recover entire key from writable tag"}, {"autorecover", CmdEM4x70AutoRecover, IfPm3EM4x70, "Recover entire key from writable tag"},
{NULL, NULL, NULL, NULL} {NULL, NULL, NULL, NULL}
}; };

View file

@ -29,7 +29,7 @@ int CmdEM4x70Write(const char *Cmd);
int CmdEM4x70Brute(const char *Cmd); int CmdEM4x70Brute(const char *Cmd);
int CmdEM4x70Unlock(const char *Cmd); int CmdEM4x70Unlock(const char *Cmd);
int CmdEM4x70Auth(const char *Cmd); int CmdEM4x70Auth(const char *Cmd);
int CmdEM4x70WritePIN(const char *Cmd); int CmdEM4x70SetPIN(const char *Cmd);
int CmdEM4x70WriteKey(const char *Cmd); int CmdEM4x70WriteKey(const char *Cmd);
int CmdEM4x70Recover(const char *Cmd); int CmdEM4x70Recover(const char *Cmd);

View file

@ -613,7 +613,7 @@ const static vocabulary_t vocabulary[] = {
{ 0, "lf em 4x70 write" }, { 0, "lf em 4x70 write" },
{ 0, "lf em 4x70 unlock" }, { 0, "lf em 4x70 unlock" },
{ 0, "lf em 4x70 auth" }, { 0, "lf em 4x70 auth" },
{ 0, "lf em 4x70 writepin" }, { 0, "lf em 4x70 setpin" },
{ 0, "lf em 4x70 writekey" }, { 0, "lf em 4x70 writekey" },
{ 0, "lf em 4x70 recover" }, { 0, "lf em 4x70 recover" },
{ 0, "lf em 4x70 autorecover" }, { 0, "lf em 4x70 autorecover" },

View file

@ -8982,12 +8982,12 @@
], ],
"usage": "lf em 4x70 writekey [-h] [--par] -k <hex>" "usage": "lf em 4x70 writekey [-h] [--par] -k <hex>"
}, },
"lf em 4x70 writepin": { "lf em 4x70 setpin": {
"command": "lf em 4x70 writepin", "command": "lf em 4x70 setpin",
"description": "Write PIN", "description": "Write PIN",
"notes": [ "notes": [
"lf em 4x70 writepin -p 11223344 -> Write PIN", "lf em 4x70 setpin -p 11223344 -> Write new PIN",
"lf em 4x70 writepin -p 11223344 --par -> Write PIN using parity commands" "lf em 4x70 setpin -p 11223344 --par -> Write new PIN using parity commands"
], ],
"offline": false, "offline": false,
"options": [ "options": [
@ -8995,7 +8995,7 @@
"--par Add parity bit when sending commands", "--par Add parity bit when sending commands",
"-p, --pin <hex> pin, 4 bytes" "-p, --pin <hex> pin, 4 bytes"
], ],
"usage": "lf em 4x70 writepin [-h] [--par] -p <hex>" "usage": "lf em 4x70 setpin [-h] [--par] -p <hex>"
}, },
"lf em help": { "lf em help": {
"command": "lf em help", "command": "lf em help",

View file

@ -960,8 +960,8 @@ Check column "offline" for their availability.
|`lf em 4x70 write `|N |`Write EM4x70` |`lf em 4x70 write `|N |`Write EM4x70`
|`lf em 4x70 unlock `|N |`Unlock EM4x70 for writing` |`lf em 4x70 unlock `|N |`Unlock EM4x70 for writing`
|`lf em 4x70 auth `|N |`Authenticate EM4x70` |`lf em 4x70 auth `|N |`Authenticate EM4x70`
|`lf em 4x70 writepin `|N |`Write PIN` |`lf em 4x70 setpin `|N |`Write new PIN`
|`lf em 4x70 writekey `|N |`Write key` |`lf em 4x70 writekey `|N |`Write new key`
|`lf em 4x70 recover `|N |`Recover remaining key from partial key` |`lf em 4x70 recover `|N |`Recover remaining key from partial key`
|`lf em 4x70 autorecover `|N |`Recover entire key from writable tag` |`lf em 4x70 autorecover `|N |`Recover entire key from writable tag`

View file

@ -527,7 +527,7 @@ typedef struct {
#define CMD_LF_EM4X70_WRITE 0x0261 #define CMD_LF_EM4X70_WRITE 0x0261
#define CMD_LF_EM4X70_UNLOCK 0x0262 #define CMD_LF_EM4X70_UNLOCK 0x0262
#define CMD_LF_EM4X70_AUTH 0x0263 #define CMD_LF_EM4X70_AUTH 0x0263
#define CMD_LF_EM4X70_WRITEPIN 0x0264 #define CMD_LF_EM4X70_SETPIN 0x0264
#define CMD_LF_EM4X70_WRITEKEY 0x0265 #define CMD_LF_EM4X70_WRITEKEY 0x0265
#define CMD_LF_EM4X70_BRUTE 0x0266 #define CMD_LF_EM4X70_BRUTE 0x0266
// Sampling configuration for LF reader/sniffer // Sampling configuration for LF reader/sniffer