This commit is contained in:
iceman1001 2025-07-10 11:52:39 +02:00
commit 2597c7576e
50 changed files with 135 additions and 99 deletions

View file

@ -452,6 +452,7 @@ endif
ifeq ($(SWIG_LUA_FOUND),1)
PM3CFLAGS += -DHAVE_LUA_SWIG
endif
ifeq ($(SWIG_PYTHON_FOUND),1)
PM3CFLAGS += -DHAVE_PYTHON_SWIG
endif
@ -594,6 +595,7 @@ endif
ifeq ($(SWIG_LUA_FOUND),1)
$(info Lua SWIG: wrapper found)
endif
ifeq ($(SWIG_PYTHON_FOUND),1)
$(info Python SWIG: wrapper found)
endif

View file

@ -2542,7 +2542,7 @@ FAB943906E9C
# R.A.T.T transport card key A/B
AA034F342A55
456776908C48
#
# BusFacil - Brazilian public transport card for some cities
fae9b14365a9
c567dd4a6004

View file

@ -3073,7 +3073,7 @@ plot:
}
}
} while (loop && kbd_enter_pressed() == false);
} while (loop && (kbd_enter_pressed() == false));
if (verbose && found == false) {
PrintAndLogEx(FAILED, "no ISO 14443-B tag found");

View file

@ -232,8 +232,7 @@ int readHFCryptoRF(bool loop, bool verbose) {
PrintAndLogEx(SUCCESS, " UID: " _GREEN_("%s"), sprint_hex_inrow(card.uid, card.uidlen));
set_last_known_card(card);
}
} while (loop && kbd_enter_pressed() == false);
} while (loop && (kbd_enter_pressed() == false));
DropField();
return res;
}

View file

@ -348,7 +348,7 @@ int read_felica_uid(bool loop, bool verbose) {
res = PM3_SUCCESS;
}
} while (loop && kbd_enter_pressed() == false);
} while (loop && (kbd_enter_pressed() == false));
DropField();
return res;

View file

@ -199,7 +199,7 @@ int read_fudan_uid(bool loop, bool verbose) {
PrintAndLogEx(NORMAL, "");
}
} while (loop && kbd_enter_pressed() == false);
} while (loop && (kbd_enter_pressed() == false));
return PM3_SUCCESS;

View file

@ -438,7 +438,7 @@ int reader_lto(bool loop, bool verbose) {
PrintAndLogEx(INFO, "UID......... " _GREEN_("%s"), sprint_hex_inrow(serial, sizeof(serial)));
}
} while (loop && kbd_enter_pressed() == false);
} while (loop && (kbd_enter_pressed() == false));
lto_switch_off_field();
return ret;

View file

@ -623,7 +623,7 @@ int read_texkom_uid(bool loop, bool verbose) {
}
}
} while (loop && kbd_enter_pressed() == false);
} while (loop && (kbd_enter_pressed() == false));
return PM3_SUCCESS;
}

View file

@ -109,7 +109,7 @@ static int topaz_select(uint8_t *atqa, uint8_t atqa_len, uint8_t *rid_response,
}
// read all of the static memory of a selected Topaz tag.
static int topaz_rall(uint8_t *uid, uint8_t *response) {
static int topaz_rall(const uint8_t *uid, uint8_t *response) {
uint16_t resp_len = 124;
uint8_t rall_cmd[] = {TOPAZ_RALL, 0, 0, 0, 0, 0, 0, 0, 0};
@ -1180,7 +1180,7 @@ int readTopazUid(bool loop, bool verbose) {
topaz_tag.HR01[0] = rid_response[0];
topaz_tag.HR01[1] = rid_response[1];
} while (loop && kbd_enter_pressed() == false);
} while (loop && (kbd_enter_pressed() == false));
topaz_switch_off_field();
return res;

View file

@ -593,7 +593,7 @@ int read_xerox_uid(bool loop, bool verbose) {
return PM3_ESOFT;
}
} while (loop && kbd_enter_pressed() == false);
} while (loop && (kbd_enter_pressed() == false));
return PM3_SUCCESS;
}

View file

@ -129,7 +129,7 @@ static int CmdDestronReader(const char *Cmd) {
do {
lf_read(false, 16000);
demodDestron(!cm);
} while (cm && !kbd_enter_pressed());
} while (cm && (kbd_enter_pressed() == false));
return PM3_SUCCESS;
}

View file

@ -692,7 +692,7 @@ static int CmdFdxBReader(const char *Cmd) {
lf_read(false, 10000);
ret = demodFDXB(!cm); // be verbose only if not in continuous mode
} while (cm && !kbd_enter_pressed());
} while (cm && (kbd_enter_pressed() == false));
if (old_div != curr_div) {

View file

@ -132,7 +132,7 @@ static int CmdGallagherReader(const char *Cmd) {
do {
lf_read(false, 4096 * 2 + 20);
demodGallagher(!cm);
} while (cm && !kbd_enter_pressed());
} while (cm && (kbd_enter_pressed() == false));
return PM3_SUCCESS;
}

View file

@ -968,7 +968,7 @@ static int CmdLFHitagSReader(const char *Cmd) {
if (hts_get_uid(&uid)) {
PrintAndLogEx(SUCCESS, "UID.... " _GREEN_("%08X"), uid);
}
} while (cm && kbd_enter_pressed() == false);
} while (cm && (kbd_enter_pressed() == false));
return PM3_SUCCESS;
}

View file

@ -315,7 +315,7 @@ static int CmdIdteckReader(const char *Cmd) {
do {
lf_read(false, 5000);
demodIdteck(NULL, !cm);
} while (cm && !kbd_enter_pressed());
} while (cm && (kbd_enter_pressed() == false));
return PM3_SUCCESS;
}

View file

@ -632,7 +632,7 @@ static int CmdIndalaReader(const char *Cmd) {
do {
lf_read(false, 30000);
demodIndalaEx(clk, invert, max_err, !cm);
} while (cm && !kbd_enter_pressed());
} while (cm & (kbd_enter_pressed() == false));
return PM3_SUCCESS;
}

View file

@ -202,7 +202,7 @@ static int CmdIOProxReader(const char *Cmd) {
do {
lf_read(false, 12000);
demodIOProx(!cm);
} while (cm && !kbd_enter_pressed());
} while (cm && (kbd_enter_pressed() == false));
return PM3_SUCCESS;
}

View file

@ -152,7 +152,7 @@ static int CmdJablotronReader(const char *Cmd) {
do {
lf_read(false, 16000);
demodJablotron(!cm);
} while (cm && !kbd_enter_pressed());
} while (cm && (kbd_enter_pressed() == false));
return PM3_SUCCESS;
}

View file

@ -221,7 +221,7 @@ static int CmdKeriReader(const char *Cmd) {
do {
lf_read(false, 10000);
demodKeri(!cm);
} while (cm && !kbd_enter_pressed());
} while (cm && (kbd_enter_pressed() == false));
return PM3_SUCCESS;
}

View file

@ -179,7 +179,7 @@ static int CmdMotorolaReader(const char *Cmd) {
// 64 * 32 * 2 * n-ish
lf_read(false, 5000);
res = demodMotorola(!cm);
} while (cm && !kbd_enter_pressed());
} while (cm && (kbd_enter_pressed() == false));
// reset back to 125 kHz
sc.divisor = LF_DIVISOR_125;

View file

@ -296,7 +296,7 @@ static int CmdLFNedapReader(const char *Cmd) {
do {
lf_read(false, 16000);
demodNedap(!cm);
} while (cm && !kbd_enter_pressed());
} while (cm && (kbd_enter_pressed() == false));
return PM3_SUCCESS;
}

View file

@ -287,7 +287,7 @@ static int CmdNexWatchReader(const char *Cmd) {
do {
lf_read(false, 20000);
demodNexWatch(!cm);
} while (cm && !kbd_enter_pressed());
} while (cm && (kbd_enter_pressed() == false));
return PM3_SUCCESS;
}

View file

@ -150,7 +150,7 @@ static int CmdNoralsyReader(const char *Cmd) {
do {
lf_read(false, 8000);
demodNoralsy(!cm);
} while (cm && !kbd_enter_pressed());
} while (cm && (kbd_enter_pressed() == false));
return PM3_SUCCESS;
}

View file

@ -214,7 +214,7 @@ static int CmdPacReader(const char *Cmd) {
do {
lf_read(false, 4096 * 2 + 20);
demodPac(!cm);
} while (cm && !kbd_enter_pressed());
} while (cm && (kbd_enter_pressed() == false));
return PM3_SUCCESS;
}

View file

@ -285,7 +285,7 @@ static int CmdParadoxReader(const char *Cmd) {
do {
lf_read(false, 10000);
demodParadox(!cm, old);
} while (cm && !kbd_enter_pressed());
} while (cm && (kbd_enter_pressed() == false));
return PM3_SUCCESS;
}

View file

@ -84,7 +84,7 @@ static int CmdLFPCF7931Reader(const char *Cmd) {
PrintAndLogEx(WARNING, "command execution time out");
return PM3_ETIMEOUT;
}
} while (cm && !kbd_enter_pressed());
} while (cm && (kbd_enter_pressed() == false));
return PM3_SUCCESS;
}

View file

@ -160,7 +160,7 @@ static int CmdPrescoReader(const char *Cmd) {
do {
lf_read(false, 12000);
demodPresco(!cm);
} while (cm && !kbd_enter_pressed());
} while (cm && (kbd_enter_pressed() == false));
return PM3_SUCCESS;
}

View file

@ -231,7 +231,7 @@ static int CmdPyramidReader(const char *Cmd) {
do {
lf_read(false, 15000);
demodPyramid(true);
} while (cm && !kbd_enter_pressed());
} while (cm && (kbd_enter_pressed() == false));
return PM3_SUCCESS;
}

View file

@ -161,7 +161,7 @@ static int CmdSecurakeyReader(const char *Cmd) {
do {
lf_read(false, 8000);
demodSecurakey(!cm);
} while (cm && !kbd_enter_pressed());
} while (cm && (kbd_enter_pressed() == false));
return PM3_SUCCESS;
}

View file

@ -325,7 +325,7 @@ static int CmdTIReader(const char *Cmd) {
do {
clearCommandBuffer();
SendCommandNG(CMD_LF_TI_READ, NULL, 0);
} while (cm && !kbd_enter_pressed());
} while (cm && (kbd_enter_pressed() == false));
return PM3_SUCCESS;
}

View file

@ -102,7 +102,7 @@ static int CmdVikingReader(const char *Cmd) {
do {
lf_read(false, 10000);
demodViking(true);
} while (cm && !kbd_enter_pressed());
} while (cm && (kbd_enter_pressed() == false));
return PM3_SUCCESS;
}

View file

@ -185,7 +185,7 @@ static int CmdVisa2kReader(const char *Cmd) {
do {
lf_read(false, 20000);
demodVisa2k(!cm);
} while (cm && !kbd_enter_pressed());
} while (cm && (kbd_enter_pressed() == false));
return PM3_SUCCESS;
}

View file

@ -138,7 +138,7 @@ static int CmdzxReader(const char *Cmd) {
do {
lf_Zx_read();
demodzx(!cm);
} while (cm && !kbd_enter_pressed());
} while (cm && (kbd_enter_pressed() == false));
return PM3_SUCCESS;
}

View file

@ -30,12 +30,17 @@
#include "util_posix.h" // time
#include "fileutils.h"
#define MQTT_BUFFER_SIZE ( 1 << 16 )
static int CmdHelp(const char *Cmd);
static void mqtt_publish_callback(void **unused, struct mqtt_response_publish *published) {
if (published == NULL) {
return;
}
// note that published->topic_name is NOT null-terminated (here we'll change it to a c-string)
char *topic_name = (char *) calloc(published->topic_name_size + 1, 1);
memcpy(topic_name, published->topic_name, published->topic_name_size);

View file

@ -1469,7 +1469,7 @@ static int CmdPCSC(const char *Cmd) {
msleep(300);
}
} while (!kbd_enter_pressed());
} while (kbd_enter_pressed() == false);
mbedtls_net_close(&netCtx);
mbedtls_net_free(&netCtx);

View file

@ -89,6 +89,8 @@ DumpFileType_t get_filetype(const char *filename) {
o = FLIPPER;
} else if (str_endswith(s, "picopass")) {
o = FLIPPER;
} else if (str_endswith(s, "xml")) {
o = TAGINFO;
} else {
// mfd, trc, trace is binary
o = BIN;
@ -3323,6 +3325,10 @@ int pm3_load_dump(const char *fn, void **pdump, size_t *dumplen, size_t maxdumpl
}
break;
}
case TAGINFO: {
//res = loadFileXML_safe(fn, ".xml", pdump, dumplen);
break;
}
}
return res;
}

View file

@ -83,6 +83,7 @@ typedef enum {
DICTIONARY,
MCT,
FLIPPER,
TAGINFO,
} DumpFileType_t;
typedef enum {

View file

@ -39,32 +39,37 @@
#endif
bool uart_bind(void *socket, const char *bindAddrStr, const char *bindPortStr, bool isBindingIPv6) {
if (bindAddrStr == NULL && bindPortStr == NULL)
if (bindAddrStr == NULL && bindPortStr == NULL) {
return true; // no need to bind
}
struct sockaddr_storage bindSockaddr;
memset(&bindSockaddr, 0, sizeof(bindSockaddr));
int bindPort = 0; // 0: port unspecified
if (bindPortStr != NULL)
if (bindPortStr != NULL) {
bindPort = atoi(bindPortStr);
}
if (!isBindingIPv6) {
if (isBindingIPv6 == false) {
struct sockaddr_in *bindSockaddr4 = (struct sockaddr_in *)&bindSockaddr;
bindSockaddr4->sin_family = AF_INET;
bindSockaddr4->sin_port = htons(bindPort);
if (bindAddrStr == NULL)
if (bindAddrStr == NULL) {
bindSockaddr4->sin_addr.s_addr = INADDR_ANY;
else
} else {
bindSockaddr4->sin_addr.s_addr = inet_addr(bindAddrStr);
}
} else {
struct sockaddr_in6 *bindSockaddr6 = (struct sockaddr_in6 *)&bindSockaddr;
bindSockaddr6->sin6_family = AF_INET6;
bindSockaddr6->sin6_port = htons(bindPort);
if (bindAddrStr == NULL)
if (bindAddrStr == NULL) {
bindSockaddr6->sin6_addr = in6addr_any;
else
} else {
inet_pton(AF_INET6, bindAddrStr, &(bindSockaddr6->sin6_addr));
}
}
#ifdef _WIN32
int res = bind(*(SOCKET *)socket, (struct sockaddr *)&bindSockaddr, sizeof(bindSockaddr));
#else

View file

@ -73,6 +73,7 @@ int kbd_enter_pressed(void) {
c = getchar();
ret |= c == '\n';
} while (c != EOF);
//blocking
flags &= ~O_NONBLOCK;
if (fcntl(STDIN_FILENO, F_SETFL, flags) < 0) {

View file

@ -27,12 +27,14 @@ static CrcType_t current_crc_type = CRC_NONE;
void init_table(CrcType_t crctype) {
// same crc algo, and initialised already
if (crctype == current_crc_type && crc_table_init)
if (crctype == current_crc_type && crc_table_init) {
return;
}
// not the same crc algo. reset table.
if (crctype != current_crc_type)
if (crctype != current_crc_type) {
reset_table();
}
current_crc_type = crctype;
@ -68,23 +70,29 @@ void init_table(CrcType_t crctype) {
void generate_table(uint16_t polynomial, bool refin) {
for (uint16_t i = 0; i < 256; i++) {
uint16_t c, crc = 0;
if (refin)
if (refin) {
c = reflect8(i) << 8;
else
} else {
c = i << 8;
}
for (uint16_t j = 0; j < 8; j++) {
if ((crc ^ c) & 0x8000)
if ((crc ^ c) & 0x8000) {
crc = (crc << 1) ^ polynomial;
else
} else {
crc = crc << 1;
}
c = c << 1;
}
if (refin)
if (refin) {
crc = reflect16(crc);
}
crc_table[i] = crc;
}
@ -102,21 +110,25 @@ uint16_t crc16_fast(uint8_t const *d, size_t n, uint16_t initval, bool refin, bo
// fast lookup table algorithm without augmented zero bytes, e.g. used in pkzip.
// only usable with polynom orders of 8, 16, 24 or 32.
if (n == 0)
if (n == 0) {
return (~initval);
}
uint16_t crc = initval;
if (refin)
if (refin) {
crc = reflect16(crc);
}
if (!refin)
if (refin == false) {
while (n--) crc = (crc << 8) ^ crc_table[((crc >> 8) ^ *d++) & 0xFF ];
else
} else {
while (n--) crc = (crc >> 8) ^ crc_table[(crc & 0xFF) ^ *d++];
}
if (refout ^ refin)
if (refout ^ refin) {
crc = reflect16(crc);
}
return crc;
}
@ -143,8 +155,9 @@ uint16_t update_crc16(uint16_t crc, uint8_t c) {
// two ways. msb or lsb loop.
uint16_t Crc16(uint8_t const *d, size_t bitlength, uint16_t remainder, uint16_t polynomial, bool refin, bool refout) {
if (bitlength == 0)
if (bitlength == 0) {
return (~remainder);
}
uint8_t offset = 8 - (bitlength % 8);
// front padding with 0s won't change the CRC result
@ -153,7 +166,9 @@ uint16_t Crc16(uint8_t const *d, size_t bitlength, uint16_t remainder, uint16_t
uint8_t c = prebits | d[i] >> offset;
prebits = d[i] << (8 - offset);
if (refin) c = reflect8(c);
if (refin) {
c = reflect8(c);
}
// xor in at msb
remainder ^= (c << 8);
@ -167,8 +182,10 @@ uint16_t Crc16(uint8_t const *d, size_t bitlength, uint16_t remainder, uint16_t
}
}
}
if (refout)
if (refout) {
remainder = reflect16(remainder);
}
return remainder;
}

View file

@ -12363,7 +12363,7 @@
"--addr <str> MQTT server address",
"-p, --port <str> MQTT server port",
"--topic <str> MQTT topic",
"-f, --file <fn> file to send"
"-f, --file <fn> file name to use for received files"
],
"usage": "mqtt receive [-h] [--addr <str>] [-p <str>] [--topic <str>] [-f <fn>]"
},
@ -13413,6 +13413,6 @@
"metadata": {
"commands_extracted": 770,
"extracted_by": "PM3Help2JSON v1.00",
"extracted_on": "2025-07-08T19:08:23"
"extracted_on": "2025-07-10T05:07:28"
}
}