mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-19 21:03:48 -07:00
Merge branch 'master' of github.com:RfidResearchGroup/proxmark3
* 'master' of github.com:RfidResearchGroup/proxmark3: textual chg: refactor standalone mode info string add: icerun - skeleton standalone mode for ppl to use as base for their new modes.
This commit is contained in:
commit
5d6f2c641b
13 changed files with 109 additions and 53 deletions
|
@ -75,10 +75,12 @@ else
|
|||
endif
|
||||
|
||||
# Generic standalone Mode injection of source code
|
||||
|
||||
|
||||
SRC_STANDALONE =
|
||||
# WITH_STANDALONE_LF_ICERUN
|
||||
ifneq (,$(findstring WITH_STANDALONE_LF_ICERUN,$(APP_CFLAGS)))
|
||||
SRC_STANDALONE =
|
||||
SRC_STANDALONE = lf_icerun.c
|
||||
endif
|
||||
# WITH_STANDALONE_LF_SAMYRUN
|
||||
ifneq (,$(findstring WITH_STANDALONE_LF_SAMYRUN,$(APP_CFLAGS)))
|
||||
|
|
|
@ -281,6 +281,10 @@ void RAMFUNC SniffAndStore(uint8_t param) {
|
|||
}
|
||||
}
|
||||
|
||||
void ModInfo(void) {
|
||||
DbpString(" HF 14a sniff standalone with ULC/ULEV1/NTAG auth storing in flashmem - aka BogitoRun (Bogito)");
|
||||
}
|
||||
|
||||
void RunMod() {
|
||||
|
||||
StandAloneMode();
|
||||
|
|
|
@ -195,6 +195,10 @@ void WriteTagToFlash(uint8_t index, size_t size) {
|
|||
return;
|
||||
}
|
||||
|
||||
void ModInfo(void) {
|
||||
DbpString(" HF Mifare ultra fast sniff/sim/clone - aka VIGIKPWN (Colin Brigato)");
|
||||
}
|
||||
|
||||
void RunMod() {
|
||||
StandAloneMode();
|
||||
FpgaDownloadAndGo(FPGA_BITSTREAM_HF);
|
||||
|
|
|
@ -191,6 +191,10 @@ static int saMifareChkKeys(uint8_t blockNo, uint8_t keyType, bool clearTrace, ui
|
|||
return -1;
|
||||
}
|
||||
|
||||
void ModInfo(void) {
|
||||
DbpString(" HF Mifare sniff/clone - aka MattyRun (Matías A. Ré Medina)");
|
||||
}
|
||||
|
||||
void RunMod() {
|
||||
StandAloneMode();
|
||||
Dbprintf(">> Matty mifare chk/dump/sim a.k.a MattyRun Started <<");
|
||||
|
|
|
@ -18,6 +18,10 @@ typedef struct {
|
|||
} __attribute__((__packed__)) card_clone_t;
|
||||
|
||||
|
||||
void ModInfo(void) {
|
||||
DbpString(" HF Mifare sniff/simulation - (Craig Young)");
|
||||
}
|
||||
|
||||
void RunMod() {
|
||||
StandAloneMode();
|
||||
Dbprintf(">> Craig Young Mifare sniff UID/clone uid 2 magic/sim a.k.a YoungRun Started <<");
|
||||
|
|
|
@ -26,6 +26,10 @@
|
|||
//-----------------------------------------------------------------------------------
|
||||
#include "lf_hidbrute.h"
|
||||
|
||||
void ModInfo(void) {
|
||||
DbpString(" LF HID corporate 1000 bruteforce - aka Corporatebrute (Federico dotta & Maurizio Agazzini)");
|
||||
}
|
||||
|
||||
// samy's sniff and repeat routine for LF
|
||||
void RunMod() {
|
||||
StandAloneMode();
|
||||
|
|
41
armsrc/Standalone/lf_icerun.c
Normal file
41
armsrc/Standalone/lf_icerun.c
Normal file
|
@ -0,0 +1,41 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Christian Herrmann, 2019
|
||||
//
|
||||
// This code is licensed to you under the terms of the GNU GPL, version 2 or,
|
||||
// at your option, any later version. See the LICENSE.txt file for the text of
|
||||
// the license.
|
||||
//-----------------------------------------------------------------------------
|
||||
// main code for skeleton aka IceRun by Iceman
|
||||
//-----------------------------------------------------------------------------
|
||||
#include "lf_icerun.h"
|
||||
|
||||
void ModInfo(void) {
|
||||
DbpString(" LF skeleton mode - aka IceRun (iceman)");
|
||||
}
|
||||
|
||||
// samy's sniff and repeat routine for LF
|
||||
void RunMod() {
|
||||
StandAloneMode();
|
||||
Dbprintf("[=] LF skeleton code a.k.a IceRun started");
|
||||
FpgaDownloadAndGo(FPGA_BITSTREAM_LF);
|
||||
|
||||
// the main loop for your standalone mode
|
||||
for (;;) {
|
||||
WDT_HIT();
|
||||
|
||||
// exit from IceRun, send a usbcommand.
|
||||
if (usb_poll_validate_length()) break;
|
||||
|
||||
// Was our button held down or pressed?
|
||||
int button_pressed = BUTTON_HELD(1000);
|
||||
|
||||
Dbprintf("button %d", button_pressed);
|
||||
|
||||
if ( button_pressed )
|
||||
break;
|
||||
}
|
||||
|
||||
out:
|
||||
DbpString("[=] exiting");
|
||||
LEDsoff();
|
||||
}
|
17
armsrc/Standalone/lf_icerun.h
Normal file
17
armsrc/Standalone/lf_icerun.h
Normal file
|
@ -0,0 +1,17 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Iceman, Christian Herrmann, 2019
|
||||
//
|
||||
// This code is licensed to you under the terms of the GNU GPL, version 2 or,
|
||||
// at your option, any later version. See the LICENSE.txt file for the text of
|
||||
// the license.
|
||||
//-----------------------------------------------------------------------------
|
||||
// StandAlone Mod
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#ifndef __LF_ICERUN_H
|
||||
#define __LF_ICERUN_H
|
||||
|
||||
#include "standalone.h" // standalone definitions
|
||||
#include "apps.h" // debugstatements, lfops?
|
||||
|
||||
#endif /* __LF_ICERUN_H */
|
|
@ -11,6 +11,10 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
#include "lf_proxbrute.h"
|
||||
|
||||
void ModInfo(void) {
|
||||
DbpString(" LF HID ProxII bruteforce - aka Proxbrute (Brad Antoniewicz)");
|
||||
}
|
||||
|
||||
// samy's sniff and repeat routine for LF
|
||||
void RunMod() {
|
||||
StandAloneMode();
|
||||
|
|
|
@ -10,6 +10,10 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
#include "lf_samyrun.h"
|
||||
|
||||
void ModInfo(void) {
|
||||
DbpString(" LF HID26 standalone - aka SamyRun (Samy Kamkar)");
|
||||
}
|
||||
|
||||
// samy's sniff and repeat routine for LF
|
||||
void RunMod() {
|
||||
StandAloneMode();
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
This contains functionality for different StandAlone modes. The fullimage will be built given the correct compiler flags used. Build targets for these files are contained in `armsrc/Makefile`.
|
||||
|
||||
If you want to implement a new standalone mode, you need to implement the methods provided in `standalone.h`.
|
||||
Have a look at the skeleton standalone mode called IceRun, in the files `lf_icerun.c lf_icerun.h`.
|
||||
|
||||
## Implementing a standalone mode
|
||||
|
||||
|
@ -10,7 +11,11 @@ Each standalone mod needs to have its own compiler flag to be added in `armsrc\m
|
|||
|
||||
The RunMod function is your "main" function when running. You need to check for Usb commands, in order to let the pm3 client break the standalone mode. See this basic skeleton of main function RunMod().
|
||||
````
|
||||
void RunMod() {
|
||||
void ModInfo(void) {
|
||||
DbpString(" HF good description of your mode - (my name)");
|
||||
}
|
||||
|
||||
void RunMod(void) {
|
||||
// led show
|
||||
StandAloneMode();
|
||||
FpgaDownloadAndGo(FPGA_BITSTREAM_LF);
|
||||
|
@ -56,16 +61,12 @@ endif
|
|||
```
|
||||
|
||||
## Adding identification of your mode
|
||||
Do please add a identification string in the function `printStandAloneModes` inside `armsrc\appmain.c`
|
||||
Do please add a identification string in a function called `ModInfo` inside your source code file.
|
||||
This will enable an easy way to detect on client side which standalone mods has been installed on the device.
|
||||
```
|
||||
#if defined(WITH_STANDALONE_HF_COLIN)
|
||||
DbpString(" HF Mifare ultra fast sniff/sim/clone - aka VIGIKPWN (Colin Brigato)");
|
||||
#endif
|
||||
````
|
||||
|
||||
## Compiling your standalone mode
|
||||
Once all this is done, you and others can now easily compile different standalone modes by just selecting one of the standalone modes in `common/Makefile.hal`, e.g.:
|
||||
|
||||
````
|
||||
```
|
||||
PLATFORM_DEFS += -DWITH_STANDALONE_HF_COLIN
|
||||
````
|
||||
```
|
||||
|
|
|
@ -15,5 +15,6 @@
|
|||
#include <inttypes.h> // PRIu64
|
||||
|
||||
void RunMod();
|
||||
void ModInfo();
|
||||
|
||||
#endif /* __STANDALONE_H */
|
||||
|
|
|
@ -411,7 +411,15 @@ void SendStatus(void) {
|
|||
Dbprintf(" ToSendMax...............%d", ToSendMax);
|
||||
Dbprintf(" ToSendBit...............%d", ToSendBit);
|
||||
Dbprintf(" ToSend BUFFERSIZE.......%d", TOSEND_BUFFER_SIZE);
|
||||
printStandAloneModes();
|
||||
DbpString("Installed StandAlone Mode");
|
||||
ModInfo();
|
||||
|
||||
//DbpString("Running ");
|
||||
//Dbprintf(" Is Device attached to USB| %s", USB_ATTACHED() ? "Yes" : "No");
|
||||
//Dbprintf(" Is Device attached to FPC| %s", send_using_0 ? "Yes" : "No");
|
||||
//Dbprintf(" Is USB_reconnect value | %d", GetUSBreconnect() );
|
||||
//Dbprintf(" Is USB_configured value | %d", GetUSBconfigured() );
|
||||
|
||||
cmd_send(CMD_ACK, 1, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
|
@ -427,48 +435,6 @@ void StandAloneMode(void) {
|
|||
SpinDown(50);
|
||||
SpinDelay(500);
|
||||
}
|
||||
// detection of which Standalone Modes is installed
|
||||
// (iceman)
|
||||
void printStandAloneModes(void) {
|
||||
|
||||
DbpString("Installed StandAlone Mode");
|
||||
|
||||
#if defined(WITH_STANDALONE_LF_ICERUN)
|
||||
DbpString(" LF sniff/clone/simulation - aka IceRun (iceman)");
|
||||
#endif
|
||||
#if defined(WITH_STANDALONE_HF_YOUNG)
|
||||
DbpString(" HF Mifare sniff/simulation - (Craig Young)");
|
||||
#endif
|
||||
#if defined(WITH_STANDALONE_LF_SAMYRUN)
|
||||
DbpString(" LF HID26 standalone - aka SamyRun (Samy Kamkar)");
|
||||
#endif
|
||||
#if defined(WITH_STANDALONE_LF_PROXBRUTE)
|
||||
DbpString(" LF HID ProxII bruteforce - aka Proxbrute (Brad Antoniewicz)");
|
||||
#endif
|
||||
#if defined(WITH_STANDALONE_LF_HIDBRUTE)
|
||||
DbpString(" LF HID corporate 1000 bruteforce - aka Corporatebrute (Federico dotta & Maurizio Agazzini)");
|
||||
#endif
|
||||
#if defined(WITH_STANDALONE_HF_MATTYRUN)
|
||||
DbpString(" HF Mifare sniff/clone - aka MattyRun (Matías A. Ré Medina)");
|
||||
#endif
|
||||
#if defined(WITH_STANDALONE_HF_COLIN)
|
||||
DbpString(" HF Mifare ultra fast sniff/sim/clone - aka VIGIKPWN (Colin Brigato)");
|
||||
#endif
|
||||
#if defined(WITH_STANDALONE_HF_BOG)
|
||||
DbpString(" HF 14a sniff standalone with ULC/ULEV1/NTAG auth storing in flashmem - aka BogitoRun (Bogito)");
|
||||
#endif
|
||||
|
||||
//DbpString("Running ");
|
||||
//Dbprintf(" Is Device attached to USB| %s", USB_ATTACHED() ? "Yes" : "No");
|
||||
//Dbprintf(" Is Device attached to FPC| %s", 0 ? "Yes" : "No");
|
||||
//Dbprintf(" Is USB_reconnect value | %d", GetUSBreconnect() );
|
||||
//Dbprintf(" Is USB_configured value | %d", GetUSBconfigured() );
|
||||
|
||||
//.. add your own standalone detection based on with compiler directive you are used.
|
||||
// don't "reuse" the already taken ones, this will make things easier when trying to detect the different modes
|
||||
// 2017-08-06 must adapt the makefile and have individual compilation flags for all mods
|
||||
//
|
||||
}
|
||||
|
||||
/*
|
||||
OBJECTIVE
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue