mirror of
https://github.com/Proxmark/proxmark3.git
synced 2025-02-24 15:44:47 +08:00
Added em410xread, em410xsim, em410xread, bitstream, manmod, detectclock commands. Added an offline mode. Improved manchester demod routine, auto-detect clock rate in various routines.
This commit is contained in:
parent
e6b13a5718
commit
9760414b96
4 changed files with 741 additions and 231 deletions
File diff suppressed because it is too large
Load diff
|
@ -33,7 +33,6 @@ void dbp(char *str, ...)
|
|||
|
||||
int GraphBuffer[MAX_GRAPH_TRACE_LEN];
|
||||
int GraphTraceLen;
|
||||
int offline; // Whether the GUI operates in Offline mode.
|
||||
|
||||
HPEN GreyPen, GreenPen, WhitePen, YellowPen;
|
||||
HBRUSH GreenBrush, YellowBrush;
|
||||
|
@ -384,7 +383,7 @@ static void SetCommandEditTo(char *str)
|
|||
SendMessage(CommandEdit, EM_SETSEL, strlen(str), strlen(str));
|
||||
}
|
||||
|
||||
void ShowGui(void)
|
||||
void ShowGui()
|
||||
{
|
||||
WNDCLASSEX wc;
|
||||
memset(&wc, 0, sizeof(wc));
|
||||
|
@ -505,9 +504,11 @@ void ShowGui(void)
|
|||
}
|
||||
}
|
||||
|
||||
UsbCommand c;
|
||||
if(ReceiveCommandPoll(&c)) {
|
||||
UsbCommandReceived(&c);
|
||||
if (!offline)
|
||||
{
|
||||
UsbCommand c;
|
||||
if(ReceiveCommandPoll(&c))
|
||||
UsbCommandReceived(&c);
|
||||
}
|
||||
|
||||
Sleep(10);
|
||||
|
|
|
@ -13,6 +13,7 @@ extern "C" {
|
|||
#define OUR_VID 0x9ac4
|
||||
#define OUR_PID 0x4b8f
|
||||
|
||||
int offline = 0;
|
||||
HANDLE UsbHandle;
|
||||
|
||||
static void ShowError(void)
|
||||
|
@ -326,30 +327,35 @@ static void LoadFlashFromSRecords(char *file, int addr)
|
|||
int main(int argc, char **argv)
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
|
||||
if(argc < 2) {
|
||||
printf("Usage: %s bootrom file.s19\n", argv[0]);
|
||||
printf(" %s load osimage.s19\n", argv[0]);
|
||||
printf(" %s fpga fpgaimg.s19\n", argv[0]);
|
||||
printf(" %s gui\n", argv[0]);
|
||||
printf(" %s offline\n", argv[0]);
|
||||
return -1;
|
||||
}
|
||||
|
||||
for(;;) {
|
||||
if(UsbConnect()) {
|
||||
break;
|
||||
|
||||
// Only do this if NOT in offline mode
|
||||
if (strcmp(argv[1], "offline"))
|
||||
{
|
||||
for(;;) {
|
||||
if(UsbConnect()) {
|
||||
break;
|
||||
}
|
||||
if(i == 0) {
|
||||
printf("...no device connected, polling for it now\n");
|
||||
}
|
||||
if(i > 50000) {
|
||||
printf("Could not connect to USB device; exiting.\n");
|
||||
return -1;
|
||||
}
|
||||
i++;
|
||||
Sleep(5);
|
||||
}
|
||||
if(i == 0) {
|
||||
printf("...no device connected, polling for it now\n");
|
||||
}
|
||||
if(i > 50000) {
|
||||
printf("Could not connect to USB device; exiting.\n");
|
||||
return -1;
|
||||
}
|
||||
i++;
|
||||
Sleep(5);
|
||||
}
|
||||
|
||||
|
||||
if(strcmp(argv[1], "bootrom")==0 || strcmp(argv[1], "load")==0 || strcmp(argv[1], "fpga")==0) {
|
||||
if(argc != 3) {
|
||||
printf("Need filename.\n");
|
||||
|
@ -364,6 +370,9 @@ int main(int argc, char **argv)
|
|||
}
|
||||
} else if(strcmp(argv[1], "gui")==0) {
|
||||
ShowGui();
|
||||
} else if(strcmp(argv[1], "offline")==0) {
|
||||
offline = 1;
|
||||
ShowGui();
|
||||
} else if(strcmp(argv[1], "cmd")==0) {
|
||||
if(argc != 3) {
|
||||
printf("Need command.\n");
|
||||
|
|
|
@ -9,7 +9,7 @@ BOOL ReceiveCommandPoll(UsbCommand *c);
|
|||
void SendCommand(UsbCommand *c, BOOL wantAck);
|
||||
|
||||
// gui.cpp
|
||||
void ShowGui(void);
|
||||
void ShowGui();
|
||||
void HideGraphWindow(void);
|
||||
void ShowGraphWindow(void);
|
||||
void RepaintGraphWindow(void);
|
||||
|
@ -19,13 +19,82 @@ extern int GraphBuffer[MAX_GRAPH_TRACE_LEN];
|
|||
extern int GraphTraceLen;
|
||||
extern double CursorScaleFactor;
|
||||
extern int CommandFinished;
|
||||
extern int offline; // Set to 1 if the proxmark is offline
|
||||
|
||||
extern int offline;
|
||||
|
||||
// command.cpp
|
||||
static void GetFromBigBuf(BYTE *dest, int bytes);
|
||||
static void CmdReset(char *str);
|
||||
static void CmdQuit(char *str);
|
||||
static void CmdEM410xread(char *str);
|
||||
static void CmdEM410xwatch(char *str);
|
||||
static void ChkBitstream(char *str);
|
||||
int GetClock(char *str, int peak);
|
||||
static void CmdHIDdemodFSK(char *str);
|
||||
static void Cmdmanchestermod(char *str);
|
||||
static void CmdTune(char *str);
|
||||
static void CmdHi15read(char *str);
|
||||
static void CmdHi14read(char *str);
|
||||
static void CmdSri512read(char *str);
|
||||
static void CmdHi14areader(char *str);
|
||||
static void CmdHi15reader(char *str);
|
||||
static void CmdHi15tag(char *str);
|
||||
static void CmdHi14read_sim(char *str);
|
||||
static void CmdHi14readt(char *str);
|
||||
static void CmdHisimlisten(char *str);
|
||||
static void CmdHi14sim(char *str);
|
||||
static void CmdHi14asim(char *str);
|
||||
static void CmdHi14snoop(char *str);
|
||||
static void CmdHi14asnoop(char *str);
|
||||
static void CmdFPGAOff(char *str);
|
||||
int CmdClearGraph(int redraw);
|
||||
static void CmdAppendGraph(int redraw, int clock, int bit);
|
||||
static void CmdEM410xsim(char *str);
|
||||
static void CmdLosim(char *str);
|
||||
static void CmdLoread(char *str);
|
||||
static void CmdLosamples(char *str);
|
||||
static void CmdBitsamples(char *str);
|
||||
static void CmdHisamples(char *str);
|
||||
static int CmdHisamplest(char *str, int nrlow);
|
||||
static void CmdHexsamples(char *str);
|
||||
static void CmdHisampless(char *str);
|
||||
static WORD Iso15693Crc(BYTE *v, int n);
|
||||
static void CmdHi14bdemod(char *str);
|
||||
static void CmdHi14list(char *str);
|
||||
static void CmdHi14alist(char *str);
|
||||
static void CmdHi15demod(char *str);
|
||||
static void CmdTiread(char *str);
|
||||
static void CmdTibits(char *str);
|
||||
static void CmdTidemod(char *cmdline);
|
||||
static void CmdNorm(char *str);
|
||||
static void CmdDec(char *str);
|
||||
static void CmdHpf(char *str);
|
||||
static void CmdZerocrossings(char *str);
|
||||
static void CmdLtrim(char *str);
|
||||
static void CmdAutoCorr(char *str);
|
||||
static void CmdVchdemod(char *str);
|
||||
static void CmdIndalademod(char *str);
|
||||
static void CmdFlexdemod(char *str);
|
||||
static void Cmdaskdemod(char *str);
|
||||
static void Cmddetectclockrate(char *str);
|
||||
int detectclock(int peak);
|
||||
static void Cmdbitstream(char *str);
|
||||
static void Cmdmanchesterdemod(char *str);
|
||||
static void CmdHiddemod(char *str);
|
||||
static void CmdPlot(char *str);
|
||||
static void CmdHide(char *str);
|
||||
static void CmdScale(char *str);
|
||||
static void CmdSave(char *str);
|
||||
static void CmdLoad(char *str);
|
||||
static void CmdHIDsimTAG(char *str);
|
||||
static void CmdLcdReset(char *str);
|
||||
static void CmdLcd(char *str);
|
||||
static void CmdTest(char *str);
|
||||
static void CmdSetDivisor(char *str);
|
||||
static void CmdSweepLF(char *str);
|
||||
void CommandReceived(char *cmd);
|
||||
void UsbCommandReceived(UsbCommand *c);
|
||||
|
||||
|
||||
// cmdline.cpp
|
||||
void ShowCommandline(void);
|
||||
void ExecCmd(char *cmd);
|
||||
|
|
Loading…
Reference in a new issue