chg: need to free some

This commit is contained in:
iceman1001 2019-05-24 07:22:50 -04:00
commit 80a91eba11
5 changed files with 35 additions and 39 deletions

View file

@ -625,7 +625,6 @@ int CmdLFfskSim(const char *Cmd) {
clearCommandBuffer();
SendCommandNG(CMD_FSK_SIM_TAG, (uint8_t *)payload, sizeof(lf_fsksim_t) + size);
free(payload);
setClockGrid(clk, 0);
@ -717,7 +716,6 @@ int CmdLFaskSim(const char *Cmd) {
size = PM3_CMD_DATA_SIZE - sizeof(lf_asksim_t);
}
lf_asksim_t *payload = calloc(1, sizeof(lf_asksim_t) + size);
payload->encoding = encoding;
payload->invert = invert;
@ -838,10 +836,13 @@ int CmdLFpskSim(const char *Cmd) {
size = PM3_CMD_DATA_SIZE;
}
PrintAndLogEx(DEBUG, "DEBUG: Sending DemodBuffer Length: %d", size);
clearCommandBuffer();
SendCommandOLD(CMD_PSK_SIM_TAG, clk << 8 | carrier, invert, size, DemodBuffer, size);
PacketResponseNG resp;
WaitForResponse(CMD_PSK_SIM_TAG, &resp);
PrintAndLogEx(INFO, "Done");
if (resp.status != PM3_EOPABORTED)
return resp.status;
return PM3_SUCCESS;

View file

@ -107,17 +107,16 @@ static int sendTry(uint8_t fmtlen, uint32_t fc, uint32_t cn, uint32_t delay, uin
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);
payload->fchigh = high;
payload->fclow = low;
payload->separator = invert;
payload->clock = clk;
payload->fchigh = 10;
payload->fclow = 8;
payload->separator = 1;
payload->clock = 50;
memcpy(payload->data, bits, bs_len);
clearCommandBuffer();
SendCommandNG(CMD_FSK_SIM_TAG, (uint8_t *)payload, sizeof(lf_fsksim_t) + bs_len);
free(payload);
msleep(delay);
return sendPing();
@ -186,7 +185,7 @@ static int CmdAWIDDemod(const char *Cmd) {
size_t size = getFromGraphBuf(bits);
if (size == 0) {
PrintAndLogEx(DEBUG, "DEBUG: Error - AWID not enough samples");
return PM3_ESOFT;
return PM3_ENODATA;
}
//get binary from fsk wave
int waveIdx = 0;
@ -323,8 +322,8 @@ static int CmdAWIDSim(const char *Cmd) {
uint8_t bs[96];
memset(bs, 0x00, sizeof(bs));
char cmdp = param_getchar(Cmd, 0);
if (strlen(Cmd) == 0 || cmdp == 'h' || cmdp == 'H') return usage_lf_awid_sim();
char cmdp = tolower(param_getchar(Cmd, 0));
if (strlen(Cmd) == 0 || cmdp == 'h') return usage_lf_awid_sim();
fmtlen = param_get8(Cmd, 0);
fc = param_get32ex(Cmd, 1, 0, 10);
@ -340,22 +339,20 @@ static int CmdAWIDSim(const char *Cmd) {
PrintAndLogEx(WARNING, "Error with tag bitstream generation.");
return PM3_ESOFT;
}
uint8_t clk = 50, high = 10, low = 8, invert = 1;
// AWID uses: FSK2a fcHigh: 10, fcLow: 8, clk: 50, invert: 1
// arg1 --- fcHigh<<8 + fcLow
// arg2 --- Inversion and clk setting
// 96 --- Bitstream length: 96-bits == 12 bytes
lf_fsksim_t *payload = calloc(1, sizeof(lf_fsksim_t) + sizeof(bs));
payload->fchigh = high;
payload->fclow = low;
payload->separator = invert;
payload->clock = clk;
payload->fchigh = 10;
payload->fclow = 8;
payload->separator = 1;
payload->clock = 50;
memcpy(payload->data, bs, sizeof(bs));
clearCommandBuffer();
SendCommandNG(CMD_FSK_SIM_TAG, (uint8_t *)payload, sizeof(lf_fsksim_t) + sizeof(bs));
free(payload);
PacketResponseNG resp;
WaitForResponse(CMD_FSK_SIM_TAG, &resp);

View file

@ -195,9 +195,6 @@ static int CmdIOProxSim(const char *Cmd) {
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, "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
// size --- 64 bits == 8 bytes
lf_fsksim_t *payload = calloc(1, sizeof(lf_fsksim_t) + sizeof(bs));
payload->fchigh = high;
payload->fclow = low;
payload->separator = invert;
payload->clock = clk;
payload->fchigh = 10;
payload->fclow = 8;
payload->separator = 1;
payload->clock = 64;
memcpy(payload->data, bs, sizeof(bs));
clearCommandBuffer();
SendCommandNG(CMD_FSK_SIM_TAG, (uint8_t *)payload, sizeof(lf_fsksim_t) + sizeof(bs));
free(payload);
PacketResponseNG resp;
WaitForResponse(CMD_FSK_SIM_TAG, &resp);

View file

@ -140,8 +140,10 @@ static int CmdParadoxSim(const char *Cmd) {
payload->separator = invert;
payload->clock = clk;
memcpy(payload->data, bs, sizeof(bs));
clearCommandBuffer();
SendCommandNG(CMD_FSK_SIM_TAG, (uint8_t *)payload, sizeof(lf_fsksim_t) + sizeof(bs));
free(payload);
PacketResponseNG resp;
WaitForResponse(CMD_FSK_SIM_TAG, &resp);
@ -150,8 +152,6 @@ static int CmdParadoxSim(const char *Cmd) {
if (resp.status != PM3_EOPABORTED)
return resp.status;
return PM3_SUCCESS;
// PrintAndLogEx(NORMAL, "UNFINISHED");
}
static command_t CommandTable[] = {

View file

@ -199,8 +199,8 @@ static int CmdPyramidRead(const char *Cmd) {
static int CmdPyramidClone(const char *Cmd) {
char cmdp = param_getchar(Cmd, 0);
if (strlen(Cmd) == 0 || cmdp == 'h' || cmdp == 'H') return usage_lf_pyramid_clone();
char cmdp = tolower(param_getchar(Cmd, 0));
if (strlen(Cmd) == 0 || cmdp == 'h') return usage_lf_pyramid_clone();
uint32_t facilitycode = 0, cardnumber = 0, fc = 0, cn = 0;
uint32_t blocks[5];
@ -259,17 +259,14 @@ static int CmdPyramidClone(const char *Cmd) {
static int CmdPyramidSim(const char *Cmd) {
char cmdp = param_getchar(Cmd, 0);
if (strlen(Cmd) == 0 || cmdp == 'h' || cmdp == 'H') return usage_lf_pyramid_sim();
char cmdp = tolower(param_getchar(Cmd, 0));
if (strlen(Cmd) == 0 || cmdp == 'h') return usage_lf_pyramid_sim();
uint32_t facilitycode = 0, cardnumber = 0, fc = 0, cn = 0;
uint8_t bs[128];
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();
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);
// Pyramid uses: fcHigh: 10, fcLow: 8, clk: 50, invert: 0
lf_fsksim_t *payload = calloc(1, sizeof(lf_fsksim_t) + sizeof(bs));
payload->fchigh = high;
payload->fclow = low;
payload->separator = invert;
payload->clock = clk;
payload->fchigh = 10;
payload->fclow = 8;
payload->separator = 0;
payload->clock = 50;
memcpy(payload->data, bs, sizeof(bs));
clearCommandBuffer();
SendCommandNG(CMD_FSK_SIM_TAG, (uint8_t *)payload, sizeof(lf_fsksim_t) + sizeof(bs));
free(payload);
PacketResponseNG resp;
WaitForResponse(CMD_FSK_SIM_TAG, &resp);