mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-20 05:13:46 -07:00
CHG: 'standalone bogitorun' - adapted some ledshow from Kigiv mode and increased time for user to stop pressing button after triggering the mode..
This commit is contained in:
parent
5a03ea7135
commit
078196773c
5 changed files with 86 additions and 74 deletions
|
@ -57,10 +57,9 @@ void EraseMemory() {
|
||||||
SpinDelay(100);
|
SpinDelay(100);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This is actually copied from SniffIso14443a
|
||||||
void RAMFUNC SniffAndStore(uint8_t param) {
|
void RAMFUNC SniffAndStore(uint8_t param) {
|
||||||
|
|
||||||
/* This is actually copied from SniffIso14443a */
|
|
||||||
|
|
||||||
iso14443a_setup(FPGA_HF_ISO14443A_SNIFFER);
|
iso14443a_setup(FPGA_HF_ISO14443A_SNIFFER);
|
||||||
|
|
||||||
// Allocate memory from BigBuf for some buffers
|
// Allocate memory from BigBuf for some buffers
|
||||||
|
@ -269,7 +268,16 @@ void RAMFUNC SniffAndStore(uint8_t param) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void RunMod() {
|
void RunMod() {
|
||||||
Dbprintf("Sniffing started");
|
|
||||||
|
Dbprintf(">> Bogiton 14a Sniff UL/UL-EV1/NTAG a.k.a BogitoRun Started <<");
|
||||||
|
Dbprintf("Starting to sniff");
|
||||||
|
|
||||||
|
SpinDown(50);
|
||||||
|
SpinOff(50);
|
||||||
|
SpinUp(50);
|
||||||
|
SpinOff(50);
|
||||||
|
SpinDown(50);
|
||||||
|
SpinDelay(500);
|
||||||
|
|
||||||
// param:
|
// param:
|
||||||
// bit 0 - trigger from first card answer
|
// bit 0 - trigger from first card answer
|
||||||
|
@ -277,4 +285,5 @@ void RunMod() {
|
||||||
SniffAndStore(0);
|
SniffAndStore(0);
|
||||||
LEDsoff();
|
LEDsoff();
|
||||||
SpinDelay(300);
|
SpinDelay(300);
|
||||||
|
Dbprintf("- [ End ] -> You can take shell back ...");
|
||||||
}
|
}
|
||||||
|
|
|
@ -87,74 +87,6 @@ void cjPrintKey(uint64_t key, uint8_t *foundKey, uint16_t sectorNo, uint8_t type
|
||||||
DbprintfEx(FLAG_NOLOG, "SEC: %02x | KEY : %s | TYP: %d", sectorNo, tosendkey, type);
|
DbprintfEx(FLAG_NOLOG, "SEC: %02x | KEY : %s | TYP: %d", sectorNo, tosendkey, type);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpinOff(uint32_t pause)
|
|
||||||
{
|
|
||||||
LED_A_OFF();
|
|
||||||
LED_B_OFF();
|
|
||||||
LED_C_OFF();
|
|
||||||
LED_D_OFF();
|
|
||||||
SpinDelay(pause);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 0=A, 1=B, 2=C, 3=D
|
|
||||||
void SpinErr(uint8_t led, uint32_t speed, uint8_t times)
|
|
||||||
{
|
|
||||||
SpinOff(speed);
|
|
||||||
NTIME(times)
|
|
||||||
{
|
|
||||||
switch (led)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
LED_A_INV();
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
LED_B_INV();
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
LED_C_INV();
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
LED_D_INV();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
SpinDelay(speed);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void SpinDown(uint32_t speed)
|
|
||||||
{
|
|
||||||
SpinOff(speed);
|
|
||||||
LED_D_ON();
|
|
||||||
SpinDelay(speed);
|
|
||||||
LED_D_OFF();
|
|
||||||
LED_C_ON();
|
|
||||||
SpinDelay(speed);
|
|
||||||
LED_C_OFF();
|
|
||||||
LED_B_ON();
|
|
||||||
SpinDelay(speed);
|
|
||||||
LED_B_OFF();
|
|
||||||
LED_A_ON();
|
|
||||||
SpinDelay(speed);
|
|
||||||
LED_A_OFF();
|
|
||||||
}
|
|
||||||
|
|
||||||
void SpinUp(uint32_t speed)
|
|
||||||
{
|
|
||||||
SpinOff(speed);
|
|
||||||
LED_A_ON();
|
|
||||||
SpinDelay(speed);
|
|
||||||
LED_A_OFF();
|
|
||||||
LED_B_ON();
|
|
||||||
SpinDelay(speed);
|
|
||||||
LED_B_OFF();
|
|
||||||
LED_C_ON();
|
|
||||||
SpinDelay(speed);
|
|
||||||
LED_C_OFF();
|
|
||||||
LED_D_ON();
|
|
||||||
SpinDelay(speed);
|
|
||||||
LED_D_OFF();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ReadLastTagFromFlash()
|
void ReadLastTagFromFlash()
|
||||||
{
|
{
|
||||||
SpinOff(0);
|
SpinOff(0);
|
||||||
|
|
|
@ -38,8 +38,6 @@
|
||||||
#define _WHITE_ "\x1b[0m"
|
#define _WHITE_ "\x1b[0m"
|
||||||
#define _ORANGE_ _YELLOW_
|
#define _ORANGE_ _YELLOW_
|
||||||
|
|
||||||
#define NTIME(n) for (int _index = 0; _index < n; _index++)
|
|
||||||
|
|
||||||
int cjat91_saMifareChkKeys(uint8_t blockNo, uint8_t keyType, bool clearTrace, uint8_t keyCount, uint8_t *datain, uint64_t *key);
|
int cjat91_saMifareChkKeys(uint8_t blockNo, uint8_t keyType, bool clearTrace, uint8_t keyCount, uint8_t *datain, uint64_t *key);
|
||||||
void e_MifareECardLoad(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *datain);
|
void e_MifareECardLoad(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *datain);
|
||||||
void saMifareMakeTag(void);
|
void saMifareMakeTag(void);
|
||||||
|
|
|
@ -154,6 +154,70 @@ void LED(int led, int ms) {
|
||||||
LED_D_OFF();
|
LED_D_OFF();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SpinOff(uint32_t pause) {
|
||||||
|
LED_A_OFF();
|
||||||
|
LED_B_OFF();
|
||||||
|
LED_C_OFF();
|
||||||
|
LED_D_OFF();
|
||||||
|
SpinDelay(pause);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 0=A, 1=B, 2=C, 3=D
|
||||||
|
void SpinErr(uint8_t led, uint32_t speed, uint8_t times) {
|
||||||
|
SpinOff(speed);
|
||||||
|
NTIME(times)
|
||||||
|
{
|
||||||
|
switch (led) {
|
||||||
|
case 0:
|
||||||
|
LED_A_INV();
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
LED_B_INV();
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
LED_C_INV();
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
LED_D_INV();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
SpinDelay(speed);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void SpinDown(uint32_t speed) {
|
||||||
|
SpinOff(speed);
|
||||||
|
LED_D_ON();
|
||||||
|
SpinDelay(speed);
|
||||||
|
LED_D_OFF();
|
||||||
|
LED_C_ON();
|
||||||
|
SpinDelay(speed);
|
||||||
|
LED_C_OFF();
|
||||||
|
LED_B_ON();
|
||||||
|
SpinDelay(speed);
|
||||||
|
LED_B_OFF();
|
||||||
|
LED_A_ON();
|
||||||
|
SpinDelay(speed);
|
||||||
|
LED_A_OFF();
|
||||||
|
}
|
||||||
|
|
||||||
|
void SpinUp(uint32_t speed) {
|
||||||
|
SpinOff(speed);
|
||||||
|
LED_A_ON();
|
||||||
|
SpinDelay(speed);
|
||||||
|
LED_A_OFF();
|
||||||
|
LED_B_ON();
|
||||||
|
SpinDelay(speed);
|
||||||
|
LED_B_OFF();
|
||||||
|
LED_C_ON();
|
||||||
|
SpinDelay(speed);
|
||||||
|
LED_C_OFF();
|
||||||
|
LED_D_ON();
|
||||||
|
SpinDelay(speed);
|
||||||
|
LED_D_OFF();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Determine if a button is double clicked, single clicked,
|
// Determine if a button is double clicked, single clicked,
|
||||||
// not clicked, or held down (for ms || 1sec)
|
// not clicked, or held down (for ms || 1sec)
|
||||||
// In general, don't use this function unless you expect a
|
// In general, don't use this function unless you expect a
|
||||||
|
|
|
@ -39,6 +39,10 @@
|
||||||
# define ARRAYLEN(x) (sizeof(x)/sizeof((x)[0]))
|
# define ARRAYLEN(x) (sizeof(x)/sizeof((x)[0]))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef NTIME
|
||||||
|
# define NTIME(n) for (int _index = 0; _index < n; _index++)
|
||||||
|
#endif
|
||||||
|
|
||||||
size_t nbytes(size_t nbits);
|
size_t nbytes(size_t nbits);
|
||||||
|
|
||||||
extern uint32_t reflect(uint32_t v, int b); // used in crc.c ...
|
extern uint32_t reflect(uint32_t v, int b); // used in crc.c ...
|
||||||
|
@ -53,7 +57,12 @@ int32_t le24toh (uint8_t data[3]);
|
||||||
uint8_t hex2int(char hexchar);
|
uint8_t hex2int(char hexchar);
|
||||||
|
|
||||||
void LED(int led, int ms);
|
void LED(int led, int ms);
|
||||||
void LEDsoff();
|
void LEDsoff(void);
|
||||||
|
void SpinOff(uint32_t pause);
|
||||||
|
void SpinErr(uint8_t led, uint32_t speed, uint8_t times);
|
||||||
|
void SpinDown(uint32_t speed);
|
||||||
|
void SpinUp(uint32_t speed);
|
||||||
|
|
||||||
int BUTTON_CLICKED(int ms);
|
int BUTTON_CLICKED(int ms);
|
||||||
int BUTTON_HELD(int ms);
|
int BUTTON_HELD(int ms);
|
||||||
void FormatVersionInformation(char *dst, int len, const char *prefix, void *version_information);
|
void FormatVersionInformation(char *dst, int len, const char *prefix, void *version_information);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue