mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2026-05-12 11:18:11 -07:00
Merge remote-tracking branch 'upstream/master' into hf_mf_sim
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
# don't push these files to the repository
|
||||
|
||||
.history
|
||||
.bash_history
|
||||
*.log
|
||||
*.eml
|
||||
*.o
|
||||
|
||||
@@ -3,6 +3,35 @@ All notable changes to this project will be documented in this file.
|
||||
This project uses the changelog in accordance with [keepchangelog](http://keepachangelog.com/). Please use this to write notable changes, which is not the same as git commit log...
|
||||
|
||||
## [unreleased][unreleased]
|
||||
- Change - handling fault bit markers (7) and partial nibbles in hex printing (@doegox)
|
||||
- Change - printing of fault bit markers (7) using a dot (@doegox)
|
||||
- Change 'sc upgrade' - firmware file integrity check (@piwi)
|
||||
- Fix 'data rawdemod am' - last bit was missing (@doegox)
|
||||
- Fix 'hf 15 dump f' - also selects tag first (@iceman)
|
||||
- Fix 'hf iclass clone' - missing fileclose (@iceman)
|
||||
- Add 'trace list hitag' - old hitag annotations now use the new trace (@iceman)
|
||||
- Change 'lf hitag sim' - loads bin/eml/json (@iceman)
|
||||
- Change 'lf hitag reader 21' - saves in bin/eml/json (@iceman)
|
||||
- Change 'lf hitag' - refactoring (@iceman)
|
||||
- Change 'lf hitag' - refactoring (@piwi)
|
||||
- Fix 'lf hitag' - generic fix for missing clock init (@piwi)
|
||||
- Fix fsk sim operations on deviceside - avoid division by zero (@doegox)
|
||||
- Fix 'hf mf fchk' - condition always false (@doegox)
|
||||
- Fix 'lf t55xx recoverpw' - shift as u32 (@doegox)
|
||||
- Fix 'lf ti demod' - shift as u32 (@doegox)
|
||||
- Fix 'lf ti read' - shift as u32 (@doegox)
|
||||
- Fix 'lf t55xx chk' - condition always false (@doegox)
|
||||
- Change 'lf sim' - ledcontrol refactoring (@doegox)
|
||||
- Fix 'hf mf nack' - signedness bug (@doegox)
|
||||
- Fix 'hf epa cnonce' - check return value (@doegox)
|
||||
- Fix 'lf hitag write' - condition always true (@doegox)
|
||||
- Fix 'mem write' - added extra check (@doegox)
|
||||
- Fix 'iso15693' - bad string cpy (@doegox)
|
||||
- Fix 'make style' - EOF LF support (@doegox)
|
||||
- Add 'hf 14b raw' - added -t for timeout (@iceman)
|
||||
- Rename 'lf hitag snoop' - renamed to 'lf hitag sniff' (@iceman)
|
||||
- Rename 'lf snoop' - renamed to 'lf sniff' (@iceman)
|
||||
- Rename 'hf snoop' - renamed to 'hf sniff' (@iceman)
|
||||
- Fix 'hf mfp wrbl' - more blocks available (@merlokk)
|
||||
- Add 'make platform' - compile for non-rdv4 devices made simpler (@doegox)
|
||||
- Change Makefiles optimizations when recompiling (@doegox)
|
||||
|
||||
+84
-111
@@ -1,38 +1,26 @@
|
||||
"Coding styles are like assholes, everyone has one and no one likes anyone elses."
|
||||
--Eric Warmenhoven
|
||||
"Coding styles are like assholes, everyone has one and no one likes anyone elses."
|
||||
--Eric Warmenhoven
|
||||
|
||||
The Proxmark3 codebase is pretty messy and in the process of being cleaned up,
|
||||
so we don't have clear guidelines on how to place new code just yet. However,
|
||||
please don't make things worse.
|
||||
|
||||
However, we have established a set of coding style guidelines in order to
|
||||
clean up the code consistently and keep it consistent in the future. Use common
|
||||
sense and good taste. If breaking a rule leads to cleaner code, you can do so,
|
||||
but laziness is not an excuse.
|
||||
clean up the code consistently and keep it consistent in the future.
|
||||
Look around and respect the same style.
|
||||
Helper script to get some uniformity in the style:
|
||||
|
||||
$ make style
|
||||
|
||||
It makes use of "astyle" so be sure to install it first.
|
||||
|
||||
|
||||
=== INDENTATION ===
|
||||
|
||||
Use tabs for indentation, but use spaces for alignment:
|
||||
Don't use tabs, editors are messing them up too easily.
|
||||
Increment unit is four spaces.
|
||||
|
||||
if (foo(this, that, there)
|
||||
&& bar == baz)
|
||||
{
|
||||
dostuff();
|
||||
}
|
||||
|
||||
Notice it's like this (T___ for tab, S for space, for a 4-char tab setting):
|
||||
|
||||
T___if (foo(this, that, there)
|
||||
T___SSSS&& bar == baz)
|
||||
|
||||
Another example:
|
||||
|
||||
#define THIS 0x10
|
||||
#define THAT_THING 0x20
|
||||
#define SOMETHING_ELSE 0x80
|
||||
|
||||
These should look good no matter what your editor's tab setting is, so go nuts
|
||||
and pick whatever you like best.
|
||||
If you use "make style", this will be done for you.
|
||||
|
||||
=== WIDTH ===
|
||||
|
||||
@@ -65,24 +53,28 @@ use microsoft-style DWORD and the like, we're getting rid of those. Avoid char
|
||||
for buffers, uint8_t is more obvious when you're not working with strings. Use
|
||||
'const' where things are const. Try to use size_t for sizes.
|
||||
|
||||
Pointers are:
|
||||
void *ptr;
|
||||
Pointers and reference operators are attached to the variable name:
|
||||
void *ptr;
|
||||
not:
|
||||
void* ptr;
|
||||
void* ptr;
|
||||
otherwise you're tempted to write:
|
||||
void* in, out;
|
||||
void* in, out;
|
||||
and you'll fail.
|
||||
|
||||
"make style" will take care of pointers & reference operators.
|
||||
|
||||
=== EXPRESSIONS ===
|
||||
|
||||
In general, use whitespace around binary operators - no unspaced blobs of an
|
||||
expression. This rule may be broken if it makes things clearer. For example,
|
||||
expression. "make style" will take care of whitespaces around operators.
|
||||
|
||||
if (5*a < b && some_bool_var)
|
||||
For example,
|
||||
|
||||
if (5 * a < b && some_bool_var)
|
||||
|
||||
but not
|
||||
|
||||
if (5*a<b&&some_bool_var)
|
||||
if (5*a<b&&some_bool_var)
|
||||
|
||||
For equality with constants, use i == 0xF00, not 0xF00 == i. The compiler warns
|
||||
you about = vs == anyway, and you shouldn't be screwing that one up by now
|
||||
@@ -90,93 +82,73 @@ anyway.
|
||||
|
||||
=== IF / FOR / WHILE / etc. ===
|
||||
|
||||
Put the opening brace on the same line, with a space before it. Exception: if
|
||||
the if/for/while condition/whatever are split over several lines, it might be
|
||||
more appealing to put the opening brace on its own line, so use your own
|
||||
judgement there:
|
||||
|
||||
if (foo(this, that, there)
|
||||
&& bar == baz)
|
||||
{
|
||||
dostuff();
|
||||
}
|
||||
|
||||
If you do split the condition, put the binary operators that join the lines at
|
||||
the beginning of the following lines (as above), not at the end of the prior
|
||||
lines.
|
||||
|
||||
Put the opening brace on the same line, with a space before it.
|
||||
There should be a space between the construct name (if/for/whatever) and the
|
||||
opening parenthesis, and there should be a space between the closing parenthesis
|
||||
and the opening brace.
|
||||
and the opening brace, and no space between parenthesis and expression.
|
||||
"make style" will take care of all that.
|
||||
|
||||
If you do split the condition, put the binary operators that join the lines at
|
||||
the beginning of the following lines, not at the end of the prior lines.
|
||||
|
||||
For generic for() iterator variables, declare them in-line:
|
||||
|
||||
for (int i = 0; i < 10; i++) {
|
||||
...
|
||||
}
|
||||
for (int i = 0; i < 10; i++) {
|
||||
...
|
||||
}
|
||||
|
||||
Note the spaces after the semicolons.
|
||||
|
||||
if/else should be laid out as follows:
|
||||
|
||||
if (foo) {
|
||||
...
|
||||
} else if (bar) {
|
||||
...
|
||||
} else {
|
||||
...
|
||||
}
|
||||
if (foo) {
|
||||
...
|
||||
} else if (bar) {
|
||||
...
|
||||
} else {
|
||||
...
|
||||
}
|
||||
|
||||
or
|
||||
|
||||
if (foo)
|
||||
...
|
||||
else if (bar)
|
||||
...
|
||||
else
|
||||
...
|
||||
|
||||
Don't mix braces vs. no braces. If any of your bodies are > 1 line, put braces
|
||||
around them all.
|
||||
You can skip braces around 1 line statements but don't mix braces vs. no braces.
|
||||
|
||||
=== FUNCTIONS ===
|
||||
|
||||
Functions with no arguments are declared as f(void), not f(). Put the return
|
||||
type on the same line. Use static for functions that aren't exported, and put
|
||||
exported functions in a header file (one header file per source file with
|
||||
exported functions usually, no huge headers with all functions). Put a space
|
||||
after a comma in argument lists.
|
||||
Put the return type on the same line.
|
||||
Put a space after a comma in argument lists.
|
||||
Open the brace after the declaration (after a space).
|
||||
"make style" will take care of all that.
|
||||
|
||||
void foo(int a_thing, int something_else)
|
||||
{
|
||||
...
|
||||
void foo(int a_thing, int something_else) {
|
||||
...
|
||||
}
|
||||
|
||||
void baz(void)
|
||||
{
|
||||
foo(bluh, blah);
|
||||
Functions with no arguments are declared as f(void), not f().
|
||||
Use static for functions that aren't exported, and put exported functions
|
||||
in a header file (one header file per source file with exported functions
|
||||
usually, no huge headers with all functions).
|
||||
|
||||
void baz(void) {
|
||||
foo(bluh, blah);
|
||||
}
|
||||
|
||||
Function names should be separated_with_underscores(), except for standard
|
||||
functions (memcpy, etc.). It may make sense to break this rule for very common,
|
||||
generic functions that look like library functions (e.g. dprintf()).
|
||||
|
||||
Don't use single-character arguments. Exception: very short functions with one
|
||||
argument that's really obvious:
|
||||
Don't use single-character arguments.
|
||||
Exception: very short functions with one argument that's really obvious:
|
||||
|
||||
static int ascii(char c)
|
||||
{
|
||||
if (c < 0x20 || c >= 0x7f)
|
||||
return '.';
|
||||
else
|
||||
return c;
|
||||
static int ascii(char c) {
|
||||
if (c < 0x20 || c >= 0x7f)
|
||||
return '.';
|
||||
else
|
||||
return c;
|
||||
}
|
||||
|
||||
vs.
|
||||
|
||||
static void hexdump(void *buf, size_t len)
|
||||
{
|
||||
...
|
||||
static void hexdump(void *buf, size_t len) {
|
||||
...
|
||||
}
|
||||
|
||||
As a general guideline, functions shouldn't usually be much more than 30-50
|
||||
@@ -188,7 +160,7 @@ probably missing some factoring/restructuring opportunity.
|
||||
Use typedefs when defining structs. The type should be named something_t.
|
||||
|
||||
typedef struct {
|
||||
blah blah;
|
||||
blah blah;
|
||||
} prox_cmd_t;
|
||||
|
||||
You can use anonymous enums to replace lots of sequential or mostly-sequential
|
||||
@@ -199,16 +171,18 @@ You can use anonymous enums to replace lots of sequential or mostly-sequential
|
||||
Indent once for the case: labels, then again for the body. Like this:
|
||||
|
||||
switch(bar) {
|
||||
case OPTION_A:
|
||||
do_stuff();
|
||||
break;
|
||||
case OPTION_B:
|
||||
do_other_stuff();
|
||||
break;
|
||||
case OPTION_A:
|
||||
do_stuff();
|
||||
break;
|
||||
case OPTION_B:
|
||||
do_other_stuff();
|
||||
break;
|
||||
}
|
||||
|
||||
If you fall through into another case, add an explicit comment; otherwise, it
|
||||
can look confusing.
|
||||
"make style" will take care of the indentation.
|
||||
|
||||
If you fall through into another case, add an explicit comment;
|
||||
otherwise, it can look confusing.
|
||||
|
||||
If your switch() is too long or has too many cases, it should be cleaned up.
|
||||
Split off the cases into functions, break the switch() into parent and children
|
||||
@@ -218,12 +192,12 @@ the like. In other words, use common sense and your brain.
|
||||
If you need local scope variables for a case, you can add braces:
|
||||
|
||||
switch(bar) {
|
||||
case OPTION_A: {
|
||||
int baz = 5*bar;
|
||||
do_stuff(baz);
|
||||
break;
|
||||
}
|
||||
...
|
||||
case OPTION_A: {
|
||||
int baz = 5 * bar;
|
||||
do_stuff(baz);
|
||||
break;
|
||||
}
|
||||
...
|
||||
|
||||
But at that point you should probably consider using a separate function.
|
||||
|
||||
@@ -266,7 +240,7 @@ License/description header first:
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
If you modify a file in any non-trivial way (add code, etc.), add your copyright
|
||||
to the top.
|
||||
to the top with the current year.
|
||||
|
||||
=== HEADER FILES ===
|
||||
|
||||
@@ -284,8 +258,7 @@ you shouldn't use it (same for _FOOBAR_H).
|
||||
|
||||
=== WHITESPACE ===
|
||||
|
||||
Avoid trailing whitespace (no line should end in tab or space). People forget
|
||||
this all the time if their editor doesn't handle it, but don't be surprised if
|
||||
you see someone fixing it from time to time.
|
||||
|
||||
Avoid trailing whitespace (no line should end in tab or space).
|
||||
Keep a newline (blank line) at the end of each file.
|
||||
|
||||
"make style" will take care of both.
|
||||
|
||||
@@ -56,22 +56,40 @@ recovery/%: FORCE
|
||||
$(MAKE) -C recovery $(patsubst recovery/%,%,$@)
|
||||
FORCE: # Dummy target to force remake in the subdirectories, even if files exist (this Makefile doesn't know about the prerequisites)
|
||||
|
||||
.PHONY: all clean help _test flash-bootrom flash-os flash-all style FORCE
|
||||
.PHONY: all clean help _test bootrom flash-bootrom os flash-os flash-all recovery client mfkey nounce2key style FORCE
|
||||
|
||||
help:
|
||||
@echo Multi-OS Makefile, you are running on $(DETECTED_OS)
|
||||
@echo Possible targets:
|
||||
@echo + all - Make bootrom, armsrc and the OS-specific host directory
|
||||
@echo + client - Make only the OS-specific host directory
|
||||
@echo + flash-bootrom - Make bootrom and flash it
|
||||
@echo + flash-os - Make armsrc and flash os \(includes fpga\)
|
||||
@echo + flash-all - Make bootrom and armsrc and flash bootrom and os image
|
||||
@echo + mfkey - Make tools/mfkey
|
||||
@echo + nounce2key - Make tools/nounce2key
|
||||
@echo + clean - Clean in bootrom, armsrc and the OS-specific host directory
|
||||
@echo "Multi-OS Makefile"
|
||||
@echo
|
||||
@echo "Possible targets:"
|
||||
@echo "+ all - Make all targets: bootrom, armsrc and OS-specific host tools"
|
||||
@echo "+ clean - Clean in all targets"
|
||||
@echo
|
||||
@echo "+ bootrom - Make bootrom"
|
||||
@echo "+ os - Make armsrc \(includes fpga\)"
|
||||
@echo "+ flash-bootrom - Make bootrom and flash it"
|
||||
@echo "+ flash-os - Make armsrc and flash os image \(includes fpga\)"
|
||||
@echo "+ flash-all - Make bootrom and armsrc and flash bootrom and os image"
|
||||
@echo "+ recovery - Make bootrom and armsrc images for JTAG flashing"
|
||||
@echo
|
||||
@echo "+ client - Make only the OS-specific host client"
|
||||
@echo "+ mfkey - Make tools/mfkey"
|
||||
@echo "+ nounce2key - Make tools/nounce2key"
|
||||
@echo
|
||||
@echo "Possible platforms: try \"make PLATFORM=\" for more info, default is PM3RDV4"
|
||||
|
||||
client: client/all
|
||||
|
||||
bootrom: bootrom/all
|
||||
|
||||
os: armsrc/all
|
||||
|
||||
recovery: recovery/all
|
||||
|
||||
mfkey: mfkey/all
|
||||
|
||||
nonce2key: nonce2key/all
|
||||
|
||||
flash-bootrom: bootrom/obj/bootrom.elf $(FLASH_TOOL)
|
||||
$(FLASH_TOOL) $(FLASH_PORT) -b $(subst /,$(PATHSEP),$<)
|
||||
|
||||
@@ -106,8 +124,14 @@ endif
|
||||
print-%: ; @echo $* = $($*)
|
||||
|
||||
style:
|
||||
# Make sure astyle is installed
|
||||
@which astyle >/dev/null || ( echo "Please install 'astyle' package first" ; exit 1 )
|
||||
find . \( -name "*.[ch]" -or -name "*.cpp" -or -name "*.lua" -or -name "Makefile" \) -exec perl -pi -e 's/[ \t\r]+$$//' {} \;
|
||||
# Remove spaces & tabs at EOL, add LF at EOF if needed on *.c, *.h, *.cpp. *.lua, *.py, *.pl, Makefile
|
||||
find . \( -name "*.[ch]" -or -name "*.cpp" -or -name "*.lua" -or -name "*.py" -or -name "*.pl" -or -name "Makefile" \) \
|
||||
-exec perl -pi -e 's/[ \t\r]+$$//' {} \; \
|
||||
-exec sh -c "tail -c1 {} | xxd -p | tail -1 | grep -q -v 0a$$" \; \
|
||||
-exec sh -c "echo >> {}" \;
|
||||
# Apply astyle on *.c, *.h, *.cpp
|
||||
find . \( -name "*.[ch]" -or -name "*.cpp" \) -exec astyle --formatted --mode=c --suffix=none \
|
||||
--indent=spaces=4 --indent-switches --indent-preprocessor \
|
||||
--keep-one-line-blocks --max-instatement-indent=60 \
|
||||
|
||||
@@ -286,7 +286,7 @@ You will need to run these commands to make sure your rdv4 is prepared
|
||||
|
||||
### Verify sim module firmware version
|
||||
To make sure you got the latest sim module firmware.
|
||||
_Lastest version is v3.10_
|
||||
_Lastest version is v3.11_
|
||||
|
||||
pm3 --> hw status
|
||||
|
||||
@@ -298,7 +298,7 @@ Find version in the long output, look for these two lines
|
||||
This version is obselete. The following command upgrades your device sim module firmware.
|
||||
Don't not turn of your device during the execution of this command.
|
||||
|
||||
pm3 --> sc upgrade f ../tools/simmodule/SIM010.BIN
|
||||
pm3 --> sc upgrade f ../tools/simmodule/SIM011.BIN
|
||||
|
||||
You get the following output, this is a successful execution.
|
||||
|
||||
|
||||
@@ -195,47 +195,6 @@ bool RAMFUNC LogTrace(const uint8_t *btBytes, uint16_t iLen, uint32_t timestamp_
|
||||
return true;
|
||||
}
|
||||
|
||||
int LogTraceHitag(const uint8_t *btBytes, int iBits, int iSamples, uint32_t dwParity, int readerToTag) {
|
||||
/**
|
||||
Todo, rewrite the logger to use the generic functionality instead. It should be noted, however,
|
||||
that this logger takes number of bits as argument, not number of bytes.
|
||||
**/
|
||||
|
||||
if (!tracing) return false;
|
||||
|
||||
uint8_t *trace = BigBuf_get_addr();
|
||||
uint32_t iLen = nbytes(iBits);
|
||||
// Return when trace is full
|
||||
if (traceLen + sizeof(rsamples) + sizeof(dwParity) + sizeof(iBits) + iLen > BigBuf_max_traceLen()) return false;
|
||||
|
||||
//Hitag traces appear to use this traceformat:
|
||||
// 32 bits timestamp (little endian,Highest Bit used as readerToTag flag)
|
||||
// 32 bits parity
|
||||
// 8 bits size (number of bits in the trace entry, not number of bytes)
|
||||
// y Bytes data
|
||||
|
||||
rsamples += iSamples;
|
||||
trace[traceLen++] = ((rsamples >> 0) & 0xff);
|
||||
trace[traceLen++] = ((rsamples >> 8) & 0xff);
|
||||
trace[traceLen++] = ((rsamples >> 16) & 0xff);
|
||||
trace[traceLen++] = ((rsamples >> 24) & 0xff);
|
||||
|
||||
if (!readerToTag) {
|
||||
trace[traceLen - 1] |= 0x80;
|
||||
}
|
||||
|
||||
trace[traceLen++] = ((dwParity >> 0) & 0xff);
|
||||
trace[traceLen++] = ((dwParity >> 8) & 0xff);
|
||||
trace[traceLen++] = ((dwParity >> 16) & 0xff);
|
||||
trace[traceLen++] = ((dwParity >> 24) & 0xff);
|
||||
trace[traceLen++] = iBits;
|
||||
|
||||
memcpy(trace + traceLen, btBytes, iLen);
|
||||
traceLen += iLen;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// Emulator memory
|
||||
uint8_t emlSet(uint8_t *data, uint32_t offset, uint32_t length) {
|
||||
uint8_t *mem = BigBuf_get_EM_addr();
|
||||
|
||||
@@ -42,6 +42,5 @@ extern void set_tracing(bool enable);
|
||||
extern void set_tracelen(uint32_t value);
|
||||
extern bool get_tracing(void);
|
||||
extern bool RAMFUNC LogTrace(const uint8_t *btBytes, uint16_t iLen, uint32_t timestamp_start, uint32_t timestamp_end, uint8_t *parity, bool readerToTag);
|
||||
extern int LogTraceHitag(const uint8_t *btBytes, int iBits, int iSamples, uint32_t dwParity, int bReader);
|
||||
extern uint8_t emlSet(uint8_t *data, uint32_t offset, uint32_t length);
|
||||
#endif /* __BIGBUF_H */
|
||||
|
||||
+2
-2
@@ -38,7 +38,7 @@ APP_CFLAGS = $(PLATFORM_DEFS) \
|
||||
-DWITH_ISO14443a \
|
||||
-DWITH_ICLASS \
|
||||
-DWITH_FELICA \
|
||||
-DWITH_HFSNOOP \
|
||||
-DWITH_HFSNIFF \
|
||||
-DWITH_LF_SAMYRUN \
|
||||
-fno-strict-aliasing -ffunction-sections -fdata-sections
|
||||
|
||||
@@ -60,7 +60,7 @@ APP_CFLAGS = $(PLATFORM_DEFS) \
|
||||
|
||||
|
||||
SRC_LCD = fonts.c LCD.c
|
||||
SRC_LF = lfops.c hitag2.c hitagS.c lfsampling.c pcf7931.c lfdemod.c
|
||||
SRC_LF = lfops.c hitag2_crypto.c hitag2.c hitagS.c lfsampling.c pcf7931.c lfdemod.c
|
||||
SRC_ISO15693 = iso15693.c iso15693tools.c
|
||||
SRC_ISO14443a = iso14443a.c mifareutil.c mifarecmd.c epa.c mifaresim.c
|
||||
SRC_ISO14443b = iso14443b.c
|
||||
|
||||
@@ -207,7 +207,7 @@ void RunMod() {
|
||||
cjcuid = 0;
|
||||
uint8_t sectorsCnt = (MF1KSZ / MF1KSZSIZE);
|
||||
uint64_t key64; // Defines current key
|
||||
uint8_t *keyBlock = NULL; // Where the keys will be held in memory.
|
||||
uint8_t *keyBlock; // Where the keys will be held in memory.
|
||||
|
||||
/* VIGIK EXPIRED DUMP FOR STUDY
|
||||
Sector 0
|
||||
|
||||
@@ -191,7 +191,6 @@ static int saMifareChkKeys(uint8_t blockNo, uint8_t keyType, bool clearTrace, ui
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
void RunMod() {
|
||||
StandAloneMode();
|
||||
Dbprintf(">> Matty mifare chk/dump/sim a.k.a MattyRun Started <<");
|
||||
@@ -230,7 +229,7 @@ void RunMod() {
|
||||
uint8_t sectorsCnt = (mifare_size / sectorSize);
|
||||
uint8_t keyType = 2; // Keytype buffer
|
||||
uint64_t key64; // Defines current key
|
||||
uint8_t *keyBlock = NULL; // Where the keys will be held in memory.
|
||||
uint8_t *keyBlock; // Where the keys will be held in memory.
|
||||
uint8_t stKeyBlock = 20; // Set the quantity of keys in the block.
|
||||
uint8_t filled = 0; // Used to check if the memory was filled with success.
|
||||
bool keyFound = false;
|
||||
@@ -433,4 +432,4 @@ void RunMod() {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,4 +20,4 @@
|
||||
|
||||
#define OPTS 2
|
||||
|
||||
#endif /* __HF_MATTYRUN_H */
|
||||
#endif /* __HF_MATTYRUN_H */
|
||||
|
||||
@@ -259,4 +259,4 @@ void RunMod() {
|
||||
LED(selected + 1, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,4 +19,4 @@
|
||||
|
||||
#define OPTS 2
|
||||
|
||||
#endif /* __HF_YOUNG_H */
|
||||
#endif /* __HF_YOUNG_H */
|
||||
|
||||
@@ -164,7 +164,7 @@ void RunMod() {
|
||||
|
||||
Dbprintf("[=] Proxbrute - starting decrementing card number");
|
||||
|
||||
while (cardnum >= 0) {
|
||||
while (cardnum > 0) {
|
||||
|
||||
// Needed for exiting from proxbrute when button is pressed
|
||||
if (BUTTON_PRESS()) {
|
||||
|
||||
@@ -21,4 +21,4 @@
|
||||
|
||||
void hid_corporate_1000_calculate_checksum_and_set(uint32_t *high, uint32_t *low, uint32_t cardnum, uint32_t fc);
|
||||
|
||||
#endif /* __LF_HIDBRUTE_H */
|
||||
#endif /* __LF_HIDBRUTE_H */
|
||||
|
||||
@@ -164,4 +164,4 @@ void RunMod() {
|
||||
out:
|
||||
DbpString("[=] exiting");
|
||||
LEDsoff();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,4 +18,4 @@
|
||||
|
||||
#define OPTS 2
|
||||
|
||||
#endif /* __LF_PROXBRUTE_H */
|
||||
#endif /* __LF_PROXBRUTE_H */
|
||||
|
||||
@@ -138,4 +138,4 @@ void RunMod() {
|
||||
out:
|
||||
DbpString("[=] exiting");
|
||||
LEDsoff();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,4 +19,4 @@
|
||||
|
||||
#define OPTS 2
|
||||
|
||||
#endif /* __LF_SAMYRUN_H */
|
||||
#endif /* __LF_SAMYRUN_H */
|
||||
|
||||
@@ -16,4 +16,4 @@
|
||||
|
||||
extern void RunMod();
|
||||
|
||||
#endif /* __STANDALONE_H */
|
||||
#endif /* __STANDALONE_H */
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user