#include <stdio.h>\r
#include <string.h>\r
#include <inttypes.h>\r
-#include <time.h>\r
+//#include <time.h>\r
#include "proxmark3.h"\r
#include "ui.h"\r
#include "graph.h"\r
#include "util.h"\r
#include "data.h"\r
#include "lfdemod.h"\r
-#include "../common/crc.h"\r
-#include "../common/iso14443crc.h"\r
#include "cmdhf14a.h"\r
\r
#define T55x7_CONFIGURATION_BLOCK 0x00\r
char buf[9];\r
char filename[FILE_PATH_SIZE]={0};\r
int keycnt = 0;\r
+ int c;\r
uint8_t stKeyBlock = 20;\r
- uint8_t *keyBlock = NULL, *p;\r
+ uint8_t *keyBlock = NULL, *p = NULL;\r
keyBlock = calloc(stKeyBlock, 6);\r
if (keyBlock == NULL) return 1;\r
\r
bool found = false;\r
\r
char cmdp = param_getchar(Cmd, 0);\r
- if (cmdp == 'h' || cmdp == 'H') return usage_t55xx_bruteforce();\r
+ if (cmdp == 'h' || cmdp == 'H') {\r
+ free(keyBlock);\r
+ return usage_t55xx_bruteforce();\r
+ }\r
\r
if (cmdp == 'i' || cmdp == 'I') {\r
\r
if (!p) {\r
PrintAndLog("Cannot allocate memory for defaultKeys");\r
free(keyBlock);\r
+ fclose(f);\r
return 2;\r
}\r
keyBlock = p;\r
\r
if (keycnt == 0) {\r
PrintAndLog("No keys found in file");\r
+ free(keyBlock);\r
return 1;\r
}\r
PrintAndLog("Loaded %d keys", keycnt);\r
for (uint16_t c = 0; c < keycnt; ++c ) {\r
\r
if (ukbhit()) {\r
- getchar();\r
+ c = getchar();\r
+ (void)c;\r
printf("\naborted via keyboard!\n");\r
+ free(keyBlock);\r
return 0;\r
}\r
\r
\r
if ( !AquireData(T55x7_PAGE0, T55x7_CONFIGURATION_BLOCK, TRUE, testpwd)) {\r
PrintAndLog("Aquireing data from device failed. Quitting");\r
+ free(keyBlock);\r
return 0;\r
}\r
\r
\r
if ( found ) {\r
PrintAndLog("Found valid password: [%08X]", testpwd);\r
+ free(keyBlock);\r
return 0;\r
} \r
}\r
PrintAndLog("Password NOT found.");\r
+ free(keyBlock);\r
return 0;\r
}\r
\r
start_password = param_get32ex(Cmd, 0, 0, 16);\r
end_password = param_get32ex(Cmd, 1, 0, 16);\r
\r
- if ( start_password >= end_password ) return usage_t55xx_bruteforce();\r
+ if ( start_password >= end_password ) {\r
+ free(keyBlock);\r
+ return usage_t55xx_bruteforce();\r
+ }\r
\r
PrintAndLog("Search password range [%08X -> %08X]", start_password, end_password);\r
\r
printf(".");\r
fflush(stdout);\r
if (ukbhit()) {\r
- getchar();\r
+ c = getchar();\r
+ (void)c;\r
printf("\naborted via keyboard!\n");\r
+ free(keyBlock);\r
return 0;\r
}\r
\r
if (!AquireData(T55x7_PAGE0, T55x7_CONFIGURATION_BLOCK, TRUE, i)) {\r
PrintAndLog("Aquireing data from device failed. Quitting");\r
+ free(keyBlock);\r
return 0;\r
}\r
found = tryDetectModulation();\r
PrintAndLog("Found valid password: [%08x]", i);\r
else\r
PrintAndLog("Password NOT found. Last tried: [%08x]", --i);\r
+\r
+ free(keyBlock);\r
return 0;\r
}\r
\r
};\r
\r
int CmdLFT55XX(const char *Cmd) {\r
- CmdsParse(CommandTable, Cmd);\r
- return 0;\r
+ clearCommandBuffer();\r
+ CmdsParse(CommandTable, Cmd);\r
+ return 0;\r
}\r
\r
int CmdHelp(const char *Cmd) {\r
- CmdsHelp(CommandTable);\r
- return 0;\r
+ CmdsHelp(CommandTable);\r
+ return 0;\r
}\r