mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2026-05-12 11:18:11 -07:00
sort mfc tools
This commit is contained in:
-11
@@ -74,21 +74,10 @@ flasher
|
||||
lua
|
||||
luac
|
||||
tools/fpga_compress/fpga_compress
|
||||
tools/mfkey/mfkey32
|
||||
tools/mfkey/mfkey64
|
||||
tools/mfkey/staticnested
|
||||
tools/nonce2key/nonce2key
|
||||
tools/cryptorf/cm
|
||||
tools/cryptorf/sm
|
||||
tools/cryptorf/sma
|
||||
tools/cryptorf/sma_multi
|
||||
tools/mf_fudan_rf08s/rf08s_nested
|
||||
tools/mf_fudan_rf08s/rf08s_nested_known
|
||||
tools/mf_fudan_rf08s/rf08s_nested_known_collision
|
||||
tools/mf_fudan_rf08s/rf08s_nested_known_match
|
||||
tools/mf_fudan_rf08s/keys*
|
||||
tools/mf_nonce_brute/mf_nonce_brute
|
||||
tools/mf_nonce_brute/mf_trace_brute
|
||||
tools/jtag_openocd/openocd_configuration
|
||||
tools/mfd_aes_brute/mfd_aes_brute
|
||||
tools/mfd_aes_brute/mfd_multi_brute
|
||||
|
||||
@@ -29,7 +29,7 @@ ifneq (,$(DESTDIR))
|
||||
endif
|
||||
endif
|
||||
|
||||
all clean install uninstall check: %: client/% bootrom/% armsrc/% recovery/% mfkey/% nonce2key/% mf_nonce_brute/% mfd_aes_brute/% fpga_compress/% cryptorf/%
|
||||
all clean install uninstall check: %: client/% bootrom/% armsrc/% recovery/% mfc_card_only/% mfc_card_reader/% mfd_aes_brute/% fpga_compress/% cryptorf/%
|
||||
# hitag2crack toolsuite is not yet integrated in "all", it must be called explicitly: "make hitag2crack"
|
||||
#all clean install uninstall check: %: hitag2crack/%
|
||||
|
||||
@@ -112,13 +112,10 @@ endif
|
||||
cryptorf/check: FORCE
|
||||
$(info [*] CHECK $(patsubst %/check,%,$@))
|
||||
$(Q)$(BASH) tools/pm3_tests.sh $(CHECKARGS) $(patsubst %/check,%,$@)
|
||||
mfkey/check: FORCE
|
||||
mfc_card_only/check: FORCE
|
||||
$(info [*] CHECK $(patsubst %/check,%,$@))
|
||||
$(Q)$(BASH) tools/pm3_tests.sh $(CHECKARGS) $(patsubst %/check,%,$@)
|
||||
nonce2key/check: FORCE
|
||||
$(info [*] CHECK $(patsubst %/check,%,$@))
|
||||
$(Q)$(BASH) tools/pm3_tests.sh $(CHECKARGS) $(patsubst %/check,%,$@)
|
||||
mf_nonce_brute/check: FORCE
|
||||
mfc_card_reader/check: FORCE
|
||||
$(info [*] CHECK $(patsubst %/check,%,$@))
|
||||
$(Q)$(BASH) tools/pm3_tests.sh $(CHECKARGS) $(patsubst %/check,%,$@)
|
||||
mfd_aes_brute/check: FORCE
|
||||
@@ -151,15 +148,12 @@ check: common/check
|
||||
cryptorf/%: FORCE
|
||||
$(info [*] MAKE $@)
|
||||
$(Q)$(MAKE) --no-print-directory -C tools/cryptorf $(patsubst cryptorf/%,%,$@) DESTDIR=$(MYDESTDIR)
|
||||
mfkey/%: FORCE
|
||||
mfc_card_only/%: FORCE
|
||||
$(info [*] MAKE $@)
|
||||
$(Q)$(MAKE) --no-print-directory -C tools/mfkey $(patsubst mfkey/%,%,$@) DESTDIR=$(MYDESTDIR)
|
||||
nonce2key/%: FORCE
|
||||
$(Q)$(MAKE) --no-print-directory -C tools/mfc/card_only $(patsubst mfc_card_only/%,%,$@) DESTDIR=$(MYDESTDIR)
|
||||
mfc_card_reader/%: FORCE
|
||||
$(info [*] MAKE $@)
|
||||
$(Q)$(MAKE) --no-print-directory -C tools/nonce2key $(patsubst nonce2key/%,%,$@) DESTDIR=$(MYDESTDIR)
|
||||
mf_nonce_brute/%: FORCE
|
||||
$(info [*] MAKE $@)
|
||||
$(Q)$(MAKE) --no-print-directory -C tools/mf_nonce_brute $(patsubst mf_nonce_brute/%,%,$@) DESTDIR=$(MYDESTDIR)
|
||||
$(Q)$(MAKE) --no-print-directory -C tools/mfc/card_reader $(patsubst mfc_card_reader/%,%,$@) DESTDIR=$(MYDESTDIR)
|
||||
mfd_aes_brute/%: FORCE
|
||||
$(info [*] MAKE $@)
|
||||
$(Q)$(MAKE) --no-print-directory -C tools/mfd_aes_brute $(patsubst mfd_aes_brute/%,%,$@) DESTDIR=$(MYDESTDIR)
|
||||
@@ -185,7 +179,7 @@ hitag2crack/%: FORCE
|
||||
$(Q)$(MAKE) --no-print-directory -C tools/hitag2crack $(patsubst hitag2crack/%,%,$@) DESTDIR=$(MYDESTDIR)
|
||||
FORCE: # Dummy target to force remake in the subdirectories, even if files exist (this Makefile doesn't know about the prerequisites)
|
||||
|
||||
.PHONY: all clean install uninstall help _test bootrom fullimage recovery client mfkey nonce2key mf_nonce_brute mfd_aes_brute hitag2crack style miscchecks release FORCE udev accessrights cleanifplatformchanged
|
||||
.PHONY: all clean install uninstall help _test bootrom fullimage recovery client mfc_card_only mfc_card_reader mfd_aes_brute hitag2crack style miscchecks release FORCE udev accessrights cleanifplatformchanged
|
||||
|
||||
help:
|
||||
@echo "Multi-OS Makefile"
|
||||
@@ -203,9 +197,8 @@ help:
|
||||
@echo
|
||||
@echo "+ client - Make only the OS-specific host client"
|
||||
@echo "+ cryptorf - Make tools/cryptorf"
|
||||
@echo "+ mfkey - Make tools/mfkey"
|
||||
@echo "+ nonce2key - Make tools/nonce2key"
|
||||
@echo "+ mf_nonce_brute - Make tools/mf_nonce_brute"
|
||||
@echo "+ mfc_card_only - Make tools/mfc/card_only"
|
||||
@echo "+ mfc_card_reader - Make tools/mfc/card_reader"
|
||||
@echo "+ mfd_aes_brute - Make tools/mfd_aes_brute"
|
||||
@echo "+ hitag2crack - Make tools/hitag2crack"
|
||||
@echo "+ fpga_compress - Make tools/fpga_compress"
|
||||
@@ -245,11 +238,9 @@ recovery: recovery/all
|
||||
|
||||
cryptorf: cryptorf/all
|
||||
|
||||
mfkey: mfkey/all
|
||||
mfc_card_only: mfc_card_only/all
|
||||
|
||||
nonce2key: nonce2key/all
|
||||
|
||||
mf_nonce_brute: mf_nonce_brute/all
|
||||
mfc_card_reader: mfc_card_reader/all
|
||||
|
||||
mfd_aes_brute: mfd_aes_brute/all
|
||||
|
||||
|
||||
+2
-2
@@ -1364,7 +1364,7 @@ void Mifare1ksim(uint16_t flags, uint8_t exitAfterNReads, uint8_t *datain, uint1
|
||||
, ar_nr_resp[i].sector
|
||||
, (ar_nr_resp[i].keytype == AUTHKEYA) ? "key A" : "key B"
|
||||
);
|
||||
Dbprintf("../tools/mfkey/mfkey32 %08x %08x %08x %08x %08x %08x",
|
||||
Dbprintf("../tools/mfc_card_reader/mfkey32 %08x %08x %08x %08x %08x %08x",
|
||||
ar_nr_resp[i].cuid, //UID
|
||||
ar_nr_resp[i].nonce, //NT
|
||||
ar_nr_resp[i].nr, //NR1
|
||||
@@ -1383,7 +1383,7 @@ void Mifare1ksim(uint16_t flags, uint8_t exitAfterNReads, uint8_t *datain, uint1
|
||||
, ar_nr_resp[i].sector
|
||||
, (ar_nr_resp[i].keytype == AUTHKEYB) ? "key A" : "key B"
|
||||
);
|
||||
Dbprintf("../tools/mfkey/mfkey32v2 %08x %08x %08x %08x %08x %08x %08x",
|
||||
Dbprintf("../tools/mfc_card_reader/mfkey32v2 %08x %08x %08x %08x %08x %08x %08x",
|
||||
ar_nr_resp[i].cuid, //UID
|
||||
ar_nr_resp[i].nonce, //NT
|
||||
ar_nr_resp[i].nr, //NR1
|
||||
|
||||
@@ -2235,7 +2235,7 @@ bool DecodeMifareData(uint8_t *cmd, uint8_t cmdsize, uint8_t *parity, bool isRes
|
||||
mf_get_paritybinstr(sat, AuthData.at_enc, AuthData.at_enc_par);
|
||||
|
||||
PrintAndLogEx(NORMAL, "Nested authentication detected!");
|
||||
PrintAndLogEx(NORMAL, "tools/mf_nonce_brute/mf_nonce_brute %x %x %s %x %x %s %x %s %s\n"
|
||||
PrintAndLogEx(NORMAL, "tools/mfc/card_reader/mf_nonce_brute %x %x %s %x %x %s %x %s %s\n"
|
||||
, AuthData.uid
|
||||
, AuthData.nt_enc
|
||||
, snt
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
MYSRCPATHS = ../../common ../../common/crapto1
|
||||
MYSRCS = crypto1.c crapto1.c bucketsort.c
|
||||
MYINCLUDES = -I../../include -I../../common
|
||||
MYCFLAGS = -O3
|
||||
MYDEFS =
|
||||
|
||||
BINS = rf08s_nested rf08s_nested_known rf08s_nested_known_collision rf08s_nested_known_match
|
||||
|
||||
INSTALLTOOLS = $(BINS)
|
||||
|
||||
include ../../Makefile.host
|
||||
|
||||
# rf08s_nested.c needs pthread support. Older glibc needs it externally
|
||||
ifneq ($(SKIPPTHREAD),1)
|
||||
MYLDLIBS += -lpthread
|
||||
endif
|
||||
|
||||
# checking platform can be done only after Makefile.host
|
||||
ifneq (,$(findstring MINGW,$(platform)))
|
||||
# Mingw uses by default Microsoft printf, we want the GNU printf (e.g. for %z)
|
||||
# and setting _ISOC99_SOURCE sets internally __USE_MINGW_ANSI_STDIO=1
|
||||
CFLAGS += -D_ISOC99_SOURCE
|
||||
endif
|
||||
|
||||
# macOS doesn't like these compiler params
|
||||
ifneq ($(platform),Darwin)
|
||||
MYCFLAGS += --param max-completely-peeled-insns=1000 --param max-completely-peel-times=10000
|
||||
endif
|
||||
|
||||
rf08s_nested : $(OBJDIR)/rf08s_nested.o $(MYOBJS)
|
||||
rf08s_nested_known : $(OBJDIR)/rf08s_nested_known.o $(MYOBJS)
|
||||
rf08s_nested_known_collision : $(OBJDIR)/rf08s_nested_known_collision.o $(MYOBJS)
|
||||
rf08s_nested_known_match : $(OBJDIR)/rf08s_nested_known_match.o $(MYOBJS)
|
||||
@@ -1,25 +0,0 @@
|
||||
MYSRCPATHS = ../../common ../../common/crapto1
|
||||
MYSRCS = crypto1.c crapto1.c bucketsort.c iso14443crc.c sleep.c util_posix.c
|
||||
MYINCLUDES = -I../../include -I../../common
|
||||
MYCFLAGS = -O3
|
||||
MYDEFS =
|
||||
MYLDLIBS =
|
||||
ifneq ($(SKIPPTHREAD),1)
|
||||
MYLDLIBS += -lpthread
|
||||
endif
|
||||
|
||||
BINS = mf_nonce_brute mf_trace_brute
|
||||
INSTALLTOOLS = $(BINS)
|
||||
|
||||
include ../../Makefile.host
|
||||
|
||||
# checking platform can be done only after Makefile.host
|
||||
ifneq (,$(findstring MINGW,$(platform)))
|
||||
# Mingw uses by default Microsoft printf, we want the GNU printf (e.g. for %z)
|
||||
# and setting _ISOC99_SOURCE sets internally __USE_MINGW_ANSI_STDIO=1
|
||||
CFLAGS += -D_ISOC99_SOURCE
|
||||
endif
|
||||
|
||||
mf_nonce_brute : $(OBJDIR)/mf_nonce_brute.o $(MYOBJS)
|
||||
|
||||
mf_trace_brute : $(OBJDIR)/mf_trace_brute.o $(MYOBJS)
|
||||
@@ -0,0 +1,13 @@
|
||||
nonce2key
|
||||
staticnested_0nt
|
||||
staticnested_1nt
|
||||
staticnested_2nt
|
||||
staticnested_2x1nt_rf08s_1key
|
||||
staticnested_2x1nt_rf08s
|
||||
nonce2key.exe
|
||||
staticnested_0nt.exe
|
||||
staticnested_1nt.exe
|
||||
staticnested_2nt.exe
|
||||
staticnested_2x1nt_rf08s_1key.exe
|
||||
staticnested_2x1nt_rf08s.exe
|
||||
keys*.dic
|
||||
@@ -0,0 +1,36 @@
|
||||
ROOTPATH = ../../..
|
||||
MYSRCPATHS = $(ROOTPATH)/common $(ROOTPATH)/common/crapto1
|
||||
MYSRCS = crypto1.c crapto1.c bucketsort.c nested_util.c
|
||||
MYINCLUDES = -I$(ROOTPATH)/include -I$(ROOTPATH)/common
|
||||
MYCFLAGS = -O3
|
||||
MYDEFS =
|
||||
|
||||
BINS = nonce2key staticnested_0nt staticnested_1nt staticnested_2nt staticnested_2x1nt_rf08s_1key staticnested_2x1nt_rf08s
|
||||
|
||||
INSTALLTOOLS = $(BINS)
|
||||
|
||||
include $(ROOTPATH)/Makefile.host
|
||||
|
||||
# nested_util.c needs pthread support. Older glibc needs it externally
|
||||
ifneq ($(SKIPPTHREAD),1)
|
||||
MYLDLIBS += -lpthread
|
||||
endif
|
||||
|
||||
# checking platform can be done only after Makefile.host
|
||||
ifneq (,$(findstring MINGW,$(platform)))
|
||||
# Mingw uses by default Microsoft printf, we want the GNU printf (e.g. for %z)
|
||||
# and setting _ISOC99_SOURCE sets internally __USE_MINGW_ANSI_STDIO=1
|
||||
CFLAGS += -D_ISOC99_SOURCE
|
||||
endif
|
||||
|
||||
# macOS doesn't like these compiler params
|
||||
ifneq ($(platform),Darwin)
|
||||
MYCFLAGS += --param max-completely-peeled-insns=1000 --param max-completely-peel-times=10000
|
||||
endif
|
||||
|
||||
nonce2key : $(OBJDIR)/nonce2key.o $(MYOBJS)
|
||||
staticnested_0nt : $(OBJDIR)/staticnested_0nt.o $(MYOBJS)
|
||||
staticnested_1nt : $(OBJDIR)/staticnested_1nt.o $(MYOBJS)
|
||||
staticnested_2nt : $(OBJDIR)/staticnested_2nt.o $(MYOBJS)
|
||||
staticnested_2x1nt_rf08s_1key : $(OBJDIR)/staticnested_2x1nt_rf08s_1key.o $(MYOBJS)
|
||||
staticnested_2x1nt_rf08s : $(OBJDIR)/staticnested_2x1nt_rf08s.o $(MYOBJS)
|
||||
@@ -13,7 +13,8 @@ int main(const int argc, const char *argv[]) {
|
||||
nr = rr = 0;
|
||||
|
||||
if (argc < 5) {
|
||||
printf("\nsyntax: %s <uid> <nt> <par> <ks>\n\n", argv[0]);
|
||||
printf("\nsyntax: %s <uid> <nt> <par> <ks>\n", argv[0]);
|
||||
printf("example: %s 92c0456b 73294ab7 a3fbfb537343eb7b 070608090e060a02\n\n", argv[0]);
|
||||
return 1;
|
||||
}
|
||||
sscanf(argv[1], "%08x", &uid);
|
||||
Executable
+9
@@ -0,0 +1,9 @@
|
||||
./staticnested_2nt 461dce03 7eef3586 ffb02eda 322bc14d ffc875ca;
|
||||
./staticnested_2nt 461dce03 7eef3586 7f21594f 322bc14d 7f815fba;
|
||||
./staticnested_2nt 461dce03 7eef3586 ff315fe7 322bc14d ffc1364d;
|
||||
./staticnested_2nt 461dce03 7eef3586 d742a617 322bc14d d7f2f337;
|
||||
./staticnested_2nt 461dce03 7eef3586 5e3e037c 322bc14d 5ef705c2;
|
||||
./staticnested_2nt 461dce03 7eef3586 5fcaebc6 322bc14d 5f72de17;
|
||||
./staticnested_2nt 461dce03 7eef3586 3fbcfb30 322bc14d 3fe4c47c;
|
||||
./staticnested_2nt 461dce03 7eef3586 1fb6b496 322bc14d 1f4eebdd;
|
||||
./staticnested_2nt 461dce03 7eef3586 7fa28c7e 322bc14d 7f62b3d6;
|
||||
+2
-2
@@ -8,7 +8,7 @@
|
||||
// * Use backdoor on the targeted sector to get the clear static nested nT for keyA and for keyB
|
||||
// * Generate 2 lists of key candidates based on clear and encrypted nT
|
||||
// * Search couples of keyA/keyB satisfying some obscure relationship
|
||||
// * Use the resulting dictionary to bruteforce the keyA (and rf08s_nested_known_match for keyB)
|
||||
// * Use the resulting dictionary to bruteforce the keyA (and staticnested_2x1nt_rf08s_1key for keyB)
|
||||
//
|
||||
// Doegox, 2024
|
||||
|
||||
@@ -69,7 +69,7 @@ static uint16_t compute_seednt16_nt32(uint32_t nt32, uint64_t key) {
|
||||
int main(int argc, char *const argv[]) {
|
||||
if (argc != 3) {
|
||||
printf("Usage:\n %s keys_<uid:08x>_<sector:02>_<nt1:08x>.dic keys_<uid:08x>_<sector:02>_<nt2:08x>.dic\n"
|
||||
" where both dict files are produced by rf08s_nested_known *for the same UID and same sector*\n",
|
||||
" where both dict files are produced by staticnested_1nt *for the same UID and same sector*\n",
|
||||
argv[0]);
|
||||
return 1;
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
mfkey32
|
||||
mfkey32v2
|
||||
mfkey64
|
||||
mf_nonce_brute
|
||||
mf_trace_brute
|
||||
mfkey32.exe
|
||||
mfkey32v2.exe
|
||||
mfkey64.exe
|
||||
mf_nonce_brute.exe
|
||||
mf_trace_brute.exe
|
||||
@@ -1,18 +1,18 @@
|
||||
MYSRCPATHS = ../../common ../../common/crapto1
|
||||
MYSRCS = crypto1.c crapto1.c bucketsort.c nested_util.c
|
||||
MYINCLUDES = -I../../include -I../../common
|
||||
ROOTPATH = ../../..
|
||||
MYSRCPATHS = $(ROOTPATH)/common $(ROOTPATH)/common/crapto1
|
||||
MYSRCS = crypto1.c crapto1.c bucketsort.c iso14443crc.c sleep.c util_posix.c
|
||||
MYINCLUDES = -I$(ROOTPATH)/include -I$(ROOTPATH)/common
|
||||
MYCFLAGS = -O3
|
||||
MYDEFS =
|
||||
MYLDLIBS =
|
||||
ifneq ($(SKIPPTHREAD),1)
|
||||
MYLDLIBS += -lpthread
|
||||
endif
|
||||
|
||||
BINS = mfkey32 mfkey32v2 mfkey64 staticnested
|
||||
BINS = mfkey32 mfkey32v2 mfkey64 mf_nonce_brute mf_trace_brute
|
||||
INSTALLTOOLS = $(BINS)
|
||||
|
||||
include ../../Makefile.host
|
||||
|
||||
# nested_util.c needs pthread support. Older glibc needs it externally
|
||||
ifneq ($(SKIPPTHREAD),1)
|
||||
MYLDLIBS += -lpthread
|
||||
endif
|
||||
include $(ROOTPATH)/Makefile.host
|
||||
|
||||
# checking platform can be done only after Makefile.host
|
||||
ifneq (,$(findstring MINGW,$(platform)))
|
||||
@@ -29,4 +29,5 @@ endif
|
||||
mfkey32 : $(OBJDIR)/mfkey32.o $(MYOBJS)
|
||||
mfkey32v2 : $(OBJDIR)/mfkey32v2.o $(MYOBJS)
|
||||
mfkey64 : $(OBJDIR)/mfkey64.o $(MYOBJS)
|
||||
staticnested : $(OBJDIR)/staticnested.o $(MYOBJS)
|
||||
mf_nonce_brute : $(OBJDIR)/mf_nonce_brute.o $(MYOBJS)
|
||||
mf_trace_brute : $(OBJDIR)/mf_trace_brute.o $(MYOBJS)
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user