mirror of
https://github.com/Proxmark/proxmark3.git
synced 2025-08-20 05:13:22 -07:00
cleanup cmdlfem4x.h - add chip detection to ...
... lf search
This commit is contained in:
parent
0a85edf471
commit
d0b0586411
2 changed files with 47 additions and 18 deletions
|
@ -1078,9 +1078,29 @@ int CmdVchDemod(const char *Cmd)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//by marshmellow
|
||||||
|
int CheckChipType(char cmdp) {
|
||||||
|
uint32_t wordData = 0;
|
||||||
|
|
||||||
|
//check for em4x05/em4x69 chips first
|
||||||
|
save_restoreGB(1);
|
||||||
|
if ((!offline && (cmdp != '1')) && EM4x05Block0Test(&wordData)) {
|
||||||
|
PrintAndLog("\nValid EM4x05/EM4x69 Chip Found\nTry lf em 4x05... commands\n");
|
||||||
|
save_restoreGB(0);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO check for t55xx chip...
|
||||||
|
|
||||||
|
save_restoreGB(0);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
//by marshmellow
|
//by marshmellow
|
||||||
int CmdLFfind(const char *Cmd)
|
int CmdLFfind(const char *Cmd)
|
||||||
{
|
{
|
||||||
|
uint32_t wordData = 0;
|
||||||
int ans=0;
|
int ans=0;
|
||||||
size_t minLength = 1000;
|
size_t minLength = 1000;
|
||||||
char cmdp = param_getchar(Cmd, 0);
|
char cmdp = param_getchar(Cmd, 0);
|
||||||
|
@ -1116,6 +1136,11 @@ int CmdLFfind(const char *Cmd)
|
||||||
if (graphJustNoise(GraphBuffer, testLen)) {
|
if (graphJustNoise(GraphBuffer, testLen)) {
|
||||||
// only run these tests if we are in online mode
|
// only run these tests if we are in online mode
|
||||||
if (!offline && (cmdp != '1')) {
|
if (!offline && (cmdp != '1')) {
|
||||||
|
// test for em4x05 in reader talk first mode.
|
||||||
|
if (EM4x05Block0Test(&wordData)) {
|
||||||
|
PrintAndLog("\nValid EM4x05/EM4x69 Chip Found\nUse lf em 4x05readword/dump commands to read\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
ans=CmdLFHitagReader("26");
|
ans=CmdLFHitagReader("26");
|
||||||
if (ans==0) {
|
if (ans==0) {
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -1132,49 +1157,49 @@ int CmdLFfind(const char *Cmd)
|
||||||
ans=CmdFSKdemodIO("");
|
ans=CmdFSKdemodIO("");
|
||||||
if (ans>0) {
|
if (ans>0) {
|
||||||
PrintAndLog("\nValid IO Prox ID Found!");
|
PrintAndLog("\nValid IO Prox ID Found!");
|
||||||
return 1;
|
return CheckChipType(cmdp);
|
||||||
}
|
}
|
||||||
|
|
||||||
ans=CmdFSKdemodPyramid("");
|
ans=CmdFSKdemodPyramid("");
|
||||||
if (ans>0) {
|
if (ans>0) {
|
||||||
PrintAndLog("\nValid Pyramid ID Found!");
|
PrintAndLog("\nValid Pyramid ID Found!");
|
||||||
return 1;
|
return CheckChipType(cmdp);
|
||||||
}
|
}
|
||||||
|
|
||||||
ans=CmdFSKdemodParadox("");
|
ans=CmdFSKdemodParadox("");
|
||||||
if (ans>0) {
|
if (ans>0) {
|
||||||
PrintAndLog("\nValid Paradox ID Found!");
|
PrintAndLog("\nValid Paradox ID Found!");
|
||||||
return 1;
|
return CheckChipType(cmdp);
|
||||||
}
|
}
|
||||||
|
|
||||||
ans=CmdFSKdemodAWID("");
|
ans=CmdFSKdemodAWID("");
|
||||||
if (ans>0) {
|
if (ans>0) {
|
||||||
PrintAndLog("\nValid AWID ID Found!");
|
PrintAndLog("\nValid AWID ID Found!");
|
||||||
return 1;
|
return CheckChipType(cmdp);
|
||||||
}
|
}
|
||||||
|
|
||||||
ans=CmdFSKdemodHID("");
|
ans=CmdFSKdemodHID("");
|
||||||
if (ans>0) {
|
if (ans>0) {
|
||||||
PrintAndLog("\nValid HID Prox ID Found!");
|
PrintAndLog("\nValid HID Prox ID Found!");
|
||||||
return 1;
|
return CheckChipType(cmdp);
|
||||||
}
|
}
|
||||||
|
|
||||||
ans=CmdAskEM410xDemod("");
|
ans=CmdAskEM410xDemod("");
|
||||||
if (ans>0) {
|
if (ans>0) {
|
||||||
PrintAndLog("\nValid EM410x ID Found!");
|
PrintAndLog("\nValid EM410x ID Found!");
|
||||||
return 1;
|
return CheckChipType(cmdp);
|
||||||
}
|
}
|
||||||
|
|
||||||
ans=CmdG_Prox_II_Demod("");
|
ans=CmdG_Prox_II_Demod("");
|
||||||
if (ans>0) {
|
if (ans>0) {
|
||||||
PrintAndLog("\nValid G Prox II ID Found!");
|
PrintAndLog("\nValid G Prox II ID Found!");
|
||||||
return 1;
|
return CheckChipType(cmdp);
|
||||||
}
|
}
|
||||||
|
|
||||||
ans=CmdFDXBdemodBI("");
|
ans=CmdFDXBdemodBI("");
|
||||||
if (ans>0) {
|
if (ans>0) {
|
||||||
PrintAndLog("\nValid FDX-B ID Found!");
|
PrintAndLog("\nValid FDX-B ID Found!");
|
||||||
return 1;
|
return CheckChipType(cmdp);
|
||||||
}
|
}
|
||||||
|
|
||||||
ans=EM4x50Read("", false);
|
ans=EM4x50Read("", false);
|
||||||
|
@ -1186,24 +1211,25 @@ int CmdLFfind(const char *Cmd)
|
||||||
ans=CmdVikingDemod("");
|
ans=CmdVikingDemod("");
|
||||||
if (ans>0) {
|
if (ans>0) {
|
||||||
PrintAndLog("\nValid Viking ID Found!");
|
PrintAndLog("\nValid Viking ID Found!");
|
||||||
return 1;
|
return CheckChipType(cmdp);
|
||||||
}
|
}
|
||||||
|
|
||||||
ans=CmdIndalaDecode("");
|
ans=CmdIndalaDecode("");
|
||||||
if (ans>0) {
|
if (ans>0) {
|
||||||
PrintAndLog("\nValid Indala ID Found!");
|
PrintAndLog("\nValid Indala ID Found!");
|
||||||
return 1;
|
return CheckChipType(cmdp);
|
||||||
}
|
}
|
||||||
|
|
||||||
ans=CmdPSKNexWatch("");
|
ans=CmdPSKNexWatch("");
|
||||||
if (ans>0) {
|
if (ans>0) {
|
||||||
PrintAndLog("\nValid NexWatch ID Found!");
|
PrintAndLog("\nValid NexWatch ID Found!");
|
||||||
return 1;
|
return CheckChipType(cmdp);
|
||||||
}
|
}
|
||||||
|
|
||||||
PrintAndLog("\nNo Known Tags Found!\n");
|
PrintAndLog("\nNo Known Tags Found!\n");
|
||||||
if (testRaw=='u' || testRaw=='U'){
|
if (testRaw=='u' || testRaw=='U'){
|
||||||
//test unknown tag formats (raw mode)
|
ans=CheckChipType(cmdp);
|
||||||
|
//test unknown tag formats (raw mode)0
|
||||||
PrintAndLog("\nChecking for Unknown tags:\n");
|
PrintAndLog("\nChecking for Unknown tags:\n");
|
||||||
ans=AutoCorrelate(4000, FALSE, FALSE);
|
ans=AutoCorrelate(4000, FALSE, FALSE);
|
||||||
if (ans > 0) PrintAndLog("Possible Auto Correlation of %d repeating samples",ans);
|
if (ans > 0) PrintAndLog("Possible Auto Correlation of %d repeating samples",ans);
|
||||||
|
|
|
@ -18,11 +18,14 @@ int CmdEM410xWatch(const char *Cmd);
|
||||||
int CmdEM410xWatchnSpoof(const char *Cmd);
|
int CmdEM410xWatchnSpoof(const char *Cmd);
|
||||||
int CmdEM410xWrite(const char *Cmd);
|
int CmdEM410xWrite(const char *Cmd);
|
||||||
int CmdEM4x50Read(const char *Cmd);
|
int CmdEM4x50Read(const char *Cmd);
|
||||||
int CmdLFEM4X(const char *Cmd);
|
|
||||||
int CmdReadWord(const char *Cmd);
|
|
||||||
int CmdReadWordPWD(const char *Cmd);
|
|
||||||
int CmdWriteWord(const char *Cmd);
|
|
||||||
int CmdWriteWordPWD(const char *Cmd);
|
|
||||||
int EM4x50Read(const char *Cmd, bool verbose);
|
int EM4x50Read(const char *Cmd, bool verbose);
|
||||||
|
int CmdLFEM4X(const char *Cmd);
|
||||||
|
bool EM4x05Block0Test(uint32_t *wordData);
|
||||||
|
int CmdEM4x05info(const char *Cmd);
|
||||||
|
int CmdEM4x05WriteWord(const char *Cmd);
|
||||||
|
int CmdEM4x05dump(const char *Cmd);
|
||||||
|
int CmdEM4x05ReadWord(const char *Cmd);
|
||||||
|
int EM4x05ReadWord_ext(uint8_t addr, uint32_t pwd, bool usePwd, uint32_t *wordData);
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue