mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-21 05:43:48 -07:00
chg: need to free some
This commit is contained in:
parent
e727fe5818
commit
80a91eba11
5 changed files with 35 additions and 39 deletions
|
@ -625,7 +625,6 @@ int CmdLFfskSim(const char *Cmd) {
|
||||||
|
|
||||||
clearCommandBuffer();
|
clearCommandBuffer();
|
||||||
SendCommandNG(CMD_FSK_SIM_TAG, (uint8_t *)payload, sizeof(lf_fsksim_t) + size);
|
SendCommandNG(CMD_FSK_SIM_TAG, (uint8_t *)payload, sizeof(lf_fsksim_t) + size);
|
||||||
|
|
||||||
free(payload);
|
free(payload);
|
||||||
|
|
||||||
setClockGrid(clk, 0);
|
setClockGrid(clk, 0);
|
||||||
|
@ -717,7 +716,6 @@ int CmdLFaskSim(const char *Cmd) {
|
||||||
size = PM3_CMD_DATA_SIZE - sizeof(lf_asksim_t);
|
size = PM3_CMD_DATA_SIZE - sizeof(lf_asksim_t);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
lf_asksim_t *payload = calloc(1, sizeof(lf_asksim_t) + size);
|
lf_asksim_t *payload = calloc(1, sizeof(lf_asksim_t) + size);
|
||||||
payload->encoding = encoding;
|
payload->encoding = encoding;
|
||||||
payload->invert = invert;
|
payload->invert = invert;
|
||||||
|
@ -838,10 +836,13 @@ int CmdLFpskSim(const char *Cmd) {
|
||||||
size = PM3_CMD_DATA_SIZE;
|
size = PM3_CMD_DATA_SIZE;
|
||||||
}
|
}
|
||||||
PrintAndLogEx(DEBUG, "DEBUG: Sending DemodBuffer Length: %d", size);
|
PrintAndLogEx(DEBUG, "DEBUG: Sending DemodBuffer Length: %d", size);
|
||||||
|
|
||||||
clearCommandBuffer();
|
clearCommandBuffer();
|
||||||
SendCommandOLD(CMD_PSK_SIM_TAG, clk << 8 | carrier, invert, size, DemodBuffer, size);
|
SendCommandOLD(CMD_PSK_SIM_TAG, clk << 8 | carrier, invert, size, DemodBuffer, size);
|
||||||
PacketResponseNG resp;
|
PacketResponseNG resp;
|
||||||
WaitForResponse(CMD_PSK_SIM_TAG, &resp);
|
WaitForResponse(CMD_PSK_SIM_TAG, &resp);
|
||||||
|
|
||||||
|
PrintAndLogEx(INFO, "Done");
|
||||||
if (resp.status != PM3_EOPABORTED)
|
if (resp.status != PM3_EOPABORTED)
|
||||||
return resp.status;
|
return resp.status;
|
||||||
return PM3_SUCCESS;
|
return PM3_SUCCESS;
|
||||||
|
|
|
@ -107,17 +107,16 @@ static int sendTry(uint8_t fmtlen, uint32_t fc, uint32_t cn, uint32_t delay, uin
|
||||||
return PM3_ESOFT;
|
return PM3_ESOFT;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t clk = 50, high = 10, low = 8, invert = 1;
|
|
||||||
|
|
||||||
lf_fsksim_t *payload = calloc(1, sizeof(lf_fsksim_t) + bs_len);
|
lf_fsksim_t *payload = calloc(1, sizeof(lf_fsksim_t) + bs_len);
|
||||||
payload->fchigh = high;
|
payload->fchigh = 10;
|
||||||
payload->fclow = low;
|
payload->fclow = 8;
|
||||||
payload->separator = invert;
|
payload->separator = 1;
|
||||||
payload->clock = clk;
|
payload->clock = 50;
|
||||||
memcpy(payload->data, bits, bs_len);
|
memcpy(payload->data, bits, bs_len);
|
||||||
|
|
||||||
clearCommandBuffer();
|
clearCommandBuffer();
|
||||||
SendCommandNG(CMD_FSK_SIM_TAG, (uint8_t *)payload, sizeof(lf_fsksim_t) + bs_len);
|
SendCommandNG(CMD_FSK_SIM_TAG, (uint8_t *)payload, sizeof(lf_fsksim_t) + bs_len);
|
||||||
|
free(payload);
|
||||||
|
|
||||||
msleep(delay);
|
msleep(delay);
|
||||||
return sendPing();
|
return sendPing();
|
||||||
|
@ -186,7 +185,7 @@ static int CmdAWIDDemod(const char *Cmd) {
|
||||||
size_t size = getFromGraphBuf(bits);
|
size_t size = getFromGraphBuf(bits);
|
||||||
if (size == 0) {
|
if (size == 0) {
|
||||||
PrintAndLogEx(DEBUG, "DEBUG: Error - AWID not enough samples");
|
PrintAndLogEx(DEBUG, "DEBUG: Error - AWID not enough samples");
|
||||||
return PM3_ESOFT;
|
return PM3_ENODATA;
|
||||||
}
|
}
|
||||||
//get binary from fsk wave
|
//get binary from fsk wave
|
||||||
int waveIdx = 0;
|
int waveIdx = 0;
|
||||||
|
@ -323,8 +322,8 @@ static int CmdAWIDSim(const char *Cmd) {
|
||||||
uint8_t bs[96];
|
uint8_t bs[96];
|
||||||
memset(bs, 0x00, sizeof(bs));
|
memset(bs, 0x00, sizeof(bs));
|
||||||
|
|
||||||
char cmdp = param_getchar(Cmd, 0);
|
char cmdp = tolower(param_getchar(Cmd, 0));
|
||||||
if (strlen(Cmd) == 0 || cmdp == 'h' || cmdp == 'H') return usage_lf_awid_sim();
|
if (strlen(Cmd) == 0 || cmdp == 'h') return usage_lf_awid_sim();
|
||||||
|
|
||||||
fmtlen = param_get8(Cmd, 0);
|
fmtlen = param_get8(Cmd, 0);
|
||||||
fc = param_get32ex(Cmd, 1, 0, 10);
|
fc = param_get32ex(Cmd, 1, 0, 10);
|
||||||
|
@ -340,22 +339,20 @@ static int CmdAWIDSim(const char *Cmd) {
|
||||||
PrintAndLogEx(WARNING, "Error with tag bitstream generation.");
|
PrintAndLogEx(WARNING, "Error with tag bitstream generation.");
|
||||||
return PM3_ESOFT;
|
return PM3_ESOFT;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t clk = 50, high = 10, low = 8, invert = 1;
|
|
||||||
|
|
||||||
// AWID uses: FSK2a fcHigh: 10, fcLow: 8, clk: 50, invert: 1
|
// AWID uses: FSK2a fcHigh: 10, fcLow: 8, clk: 50, invert: 1
|
||||||
// arg1 --- fcHigh<<8 + fcLow
|
// arg1 --- fcHigh<<8 + fcLow
|
||||||
// arg2 --- Inversion and clk setting
|
// arg2 --- Inversion and clk setting
|
||||||
// 96 --- Bitstream length: 96-bits == 12 bytes
|
// 96 --- Bitstream length: 96-bits == 12 bytes
|
||||||
lf_fsksim_t *payload = calloc(1, sizeof(lf_fsksim_t) + sizeof(bs));
|
lf_fsksim_t *payload = calloc(1, sizeof(lf_fsksim_t) + sizeof(bs));
|
||||||
payload->fchigh = high;
|
payload->fchigh = 10;
|
||||||
payload->fclow = low;
|
payload->fclow = 8;
|
||||||
payload->separator = invert;
|
payload->separator = 1;
|
||||||
payload->clock = clk;
|
payload->clock = 50;
|
||||||
memcpy(payload->data, bs, sizeof(bs));
|
memcpy(payload->data, bs, sizeof(bs));
|
||||||
|
|
||||||
clearCommandBuffer();
|
clearCommandBuffer();
|
||||||
SendCommandNG(CMD_FSK_SIM_TAG, (uint8_t *)payload, sizeof(lf_fsksim_t) + sizeof(bs));
|
SendCommandNG(CMD_FSK_SIM_TAG, (uint8_t *)payload, sizeof(lf_fsksim_t) + sizeof(bs));
|
||||||
|
free(payload);
|
||||||
|
|
||||||
PacketResponseNG resp;
|
PacketResponseNG resp;
|
||||||
WaitForResponse(CMD_FSK_SIM_TAG, &resp);
|
WaitForResponse(CMD_FSK_SIM_TAG, &resp);
|
||||||
|
|
|
@ -195,9 +195,6 @@ static int CmdIOProxSim(const char *Cmd) {
|
||||||
PrintAndLogEx(INFO, "Card Number Truncated to 16-bits (IOProx): %u", cn);
|
PrintAndLogEx(INFO, "Card Number Truncated to 16-bits (IOProx): %u", cn);
|
||||||
}
|
}
|
||||||
|
|
||||||
// clock 64, FSK2a fcHIGH 10 | fcLOW 8
|
|
||||||
uint8_t clk = 64, invert = 1, high = 10, low = 8;
|
|
||||||
|
|
||||||
PrintAndLogEx(SUCCESS, "Simulating IOProx version: %u FC: %u; CN: %u\n", version, fc, cn);
|
PrintAndLogEx(SUCCESS, "Simulating IOProx version: %u FC: %u; CN: %u\n", version, fc, cn);
|
||||||
PrintAndLogEx(SUCCESS, "Press pm3-button to abort simulation or run another command");
|
PrintAndLogEx(SUCCESS, "Press pm3-button to abort simulation or run another command");
|
||||||
|
|
||||||
|
@ -210,13 +207,15 @@ static int CmdIOProxSim(const char *Cmd) {
|
||||||
// arg2 --- Invert and clk setting
|
// arg2 --- Invert and clk setting
|
||||||
// size --- 64 bits == 8 bytes
|
// size --- 64 bits == 8 bytes
|
||||||
lf_fsksim_t *payload = calloc(1, sizeof(lf_fsksim_t) + sizeof(bs));
|
lf_fsksim_t *payload = calloc(1, sizeof(lf_fsksim_t) + sizeof(bs));
|
||||||
payload->fchigh = high;
|
payload->fchigh = 10;
|
||||||
payload->fclow = low;
|
payload->fclow = 8;
|
||||||
payload->separator = invert;
|
payload->separator = 1;
|
||||||
payload->clock = clk;
|
payload->clock = 64;
|
||||||
memcpy(payload->data, bs, sizeof(bs));
|
memcpy(payload->data, bs, sizeof(bs));
|
||||||
|
|
||||||
clearCommandBuffer();
|
clearCommandBuffer();
|
||||||
SendCommandNG(CMD_FSK_SIM_TAG, (uint8_t *)payload, sizeof(lf_fsksim_t) + sizeof(bs));
|
SendCommandNG(CMD_FSK_SIM_TAG, (uint8_t *)payload, sizeof(lf_fsksim_t) + sizeof(bs));
|
||||||
|
free(payload);
|
||||||
|
|
||||||
PacketResponseNG resp;
|
PacketResponseNG resp;
|
||||||
WaitForResponse(CMD_FSK_SIM_TAG, &resp);
|
WaitForResponse(CMD_FSK_SIM_TAG, &resp);
|
||||||
|
|
|
@ -140,8 +140,10 @@ static int CmdParadoxSim(const char *Cmd) {
|
||||||
payload->separator = invert;
|
payload->separator = invert;
|
||||||
payload->clock = clk;
|
payload->clock = clk;
|
||||||
memcpy(payload->data, bs, sizeof(bs));
|
memcpy(payload->data, bs, sizeof(bs));
|
||||||
|
|
||||||
clearCommandBuffer();
|
clearCommandBuffer();
|
||||||
SendCommandNG(CMD_FSK_SIM_TAG, (uint8_t *)payload, sizeof(lf_fsksim_t) + sizeof(bs));
|
SendCommandNG(CMD_FSK_SIM_TAG, (uint8_t *)payload, sizeof(lf_fsksim_t) + sizeof(bs));
|
||||||
|
free(payload);
|
||||||
|
|
||||||
PacketResponseNG resp;
|
PacketResponseNG resp;
|
||||||
WaitForResponse(CMD_FSK_SIM_TAG, &resp);
|
WaitForResponse(CMD_FSK_SIM_TAG, &resp);
|
||||||
|
@ -150,8 +152,6 @@ static int CmdParadoxSim(const char *Cmd) {
|
||||||
if (resp.status != PM3_EOPABORTED)
|
if (resp.status != PM3_EOPABORTED)
|
||||||
return resp.status;
|
return resp.status;
|
||||||
return PM3_SUCCESS;
|
return PM3_SUCCESS;
|
||||||
|
|
||||||
// PrintAndLogEx(NORMAL, "UNFINISHED");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static command_t CommandTable[] = {
|
static command_t CommandTable[] = {
|
||||||
|
|
|
@ -199,8 +199,8 @@ static int CmdPyramidRead(const char *Cmd) {
|
||||||
|
|
||||||
static int CmdPyramidClone(const char *Cmd) {
|
static int CmdPyramidClone(const char *Cmd) {
|
||||||
|
|
||||||
char cmdp = param_getchar(Cmd, 0);
|
char cmdp = tolower(param_getchar(Cmd, 0));
|
||||||
if (strlen(Cmd) == 0 || cmdp == 'h' || cmdp == 'H') return usage_lf_pyramid_clone();
|
if (strlen(Cmd) == 0 || cmdp == 'h') return usage_lf_pyramid_clone();
|
||||||
|
|
||||||
uint32_t facilitycode = 0, cardnumber = 0, fc = 0, cn = 0;
|
uint32_t facilitycode = 0, cardnumber = 0, fc = 0, cn = 0;
|
||||||
uint32_t blocks[5];
|
uint32_t blocks[5];
|
||||||
|
@ -259,17 +259,14 @@ static int CmdPyramidClone(const char *Cmd) {
|
||||||
|
|
||||||
static int CmdPyramidSim(const char *Cmd) {
|
static int CmdPyramidSim(const char *Cmd) {
|
||||||
|
|
||||||
char cmdp = param_getchar(Cmd, 0);
|
char cmdp = tolower(param_getchar(Cmd, 0));
|
||||||
if (strlen(Cmd) == 0 || cmdp == 'h' || cmdp == 'H') return usage_lf_pyramid_sim();
|
if (strlen(Cmd) == 0 || cmdp == 'h') return usage_lf_pyramid_sim();
|
||||||
|
|
||||||
uint32_t facilitycode = 0, cardnumber = 0, fc = 0, cn = 0;
|
uint32_t facilitycode = 0, cardnumber = 0, fc = 0, cn = 0;
|
||||||
|
|
||||||
uint8_t bs[128];
|
uint8_t bs[128];
|
||||||
memset(bs, 0x00, sizeof(bs));
|
memset(bs, 0x00, sizeof(bs));
|
||||||
|
|
||||||
// Pyramid uses: fcHigh: 10, fcLow: 8, clk: 50, invert: 0
|
|
||||||
uint8_t clk = 50, invert = 0, high = 10, low = 8;
|
|
||||||
|
|
||||||
if (sscanf(Cmd, "%u %u", &fc, &cn) != 2) return usage_lf_pyramid_sim();
|
if (sscanf(Cmd, "%u %u", &fc, &cn) != 2) return usage_lf_pyramid_sim();
|
||||||
|
|
||||||
facilitycode = (fc & 0x000000FF);
|
facilitycode = (fc & 0x000000FF);
|
||||||
|
@ -282,15 +279,17 @@ static int CmdPyramidSim(const char *Cmd) {
|
||||||
|
|
||||||
PrintAndLogEx(SUCCESS, "Simulating Farpointe/Pyramid - Facility Code: %u, CardNumber: %u", facilitycode, cardnumber);
|
PrintAndLogEx(SUCCESS, "Simulating Farpointe/Pyramid - Facility Code: %u, CardNumber: %u", facilitycode, cardnumber);
|
||||||
|
|
||||||
|
// Pyramid uses: fcHigh: 10, fcLow: 8, clk: 50, invert: 0
|
||||||
lf_fsksim_t *payload = calloc(1, sizeof(lf_fsksim_t) + sizeof(bs));
|
lf_fsksim_t *payload = calloc(1, sizeof(lf_fsksim_t) + sizeof(bs));
|
||||||
payload->fchigh = high;
|
payload->fchigh = 10;
|
||||||
payload->fclow = low;
|
payload->fclow = 8;
|
||||||
payload->separator = invert;
|
payload->separator = 0;
|
||||||
payload->clock = clk;
|
payload->clock = 50;
|
||||||
memcpy(payload->data, bs, sizeof(bs));
|
memcpy(payload->data, bs, sizeof(bs));
|
||||||
|
|
||||||
clearCommandBuffer();
|
clearCommandBuffer();
|
||||||
SendCommandNG(CMD_FSK_SIM_TAG, (uint8_t *)payload, sizeof(lf_fsksim_t) + sizeof(bs));
|
SendCommandNG(CMD_FSK_SIM_TAG, (uint8_t *)payload, sizeof(lf_fsksim_t) + sizeof(bs));
|
||||||
|
free(payload);
|
||||||
|
|
||||||
PacketResponseNG resp;
|
PacketResponseNG resp;
|
||||||
WaitForResponse(CMD_FSK_SIM_TAG, &resp);
|
WaitForResponse(CMD_FSK_SIM_TAG, &resp);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue