diff --git a/client/Makefile b/client/Makefile index e4e9e8ac6..c4169dd91 100644 --- a/client/Makefile +++ b/client/Makefile @@ -213,7 +213,7 @@ endif BINS = proxmark3 flasher fpga_compress WINBINS = $(patsubst %, %.exe, $(BINS)) -CLEAN = $(BINS) $(WINBINS) $(COREOBJS) $(CMDOBJS) $(ZLIBOBJS) $(QTGUIOBJS) $(MULTIARCHOBJS) $(OBJDIR)/*.o *.moc.cpp ui/ui_overlays.h lualibs/usb_cmd.lua +CLEAN = $(BINS) $(WINBINS) $(COREOBJS) $(CMDOBJS) $(ZLIBOBJS) $(QTGUIOBJS) $(MULTIARCHOBJS) $(OBJDIR)/*.o *.moc.cpp ui/ui_overlays.h lualibs/usb_cmd.lua lualibs/mf_default_keys.lua # need to assign dependancies to build these first... all: lua_build $(BINS) @@ -222,7 +222,7 @@ all-static: LDLIBS:=-static $(LDLIBS) all-static: proxmark3 flasher fpga_compress proxmark3: LDLIBS+=$(LUALIB) $(QTLDLIBS) -proxmark3: $(OBJDIR)/proxmark3.o $(COREOBJS) $(CMDOBJS) $(QTGUIOBJS) $(MULTIARCHOBJS) $(ZLIBOBJS) lualibs/usb_cmd.lua +proxmark3: $(OBJDIR)/proxmark3.o $(COREOBJS) $(CMDOBJS) $(QTGUIOBJS) $(MULTIARCHOBJS) $(ZLIBOBJS) lualibs/usb_cmd.lua lualibs/mf_default_keys.lua $(LD) $(LDFLAGS) $(OBJDIR)/proxmark3.o $(COREOBJS) $(CMDOBJS) $(QTGUIOBJS) $(MULTIARCHOBJS) $(ZLIBOBJS) $(LDLIBS) -o $@ flasher: $(OBJDIR)/flash.o $(OBJDIR)/flasher.o $(COREOBJS) @@ -241,6 +241,9 @@ ui/ui_overlays.h: ui/overlays.ui lualibs/usb_cmd.lua: ../include/usb_cmd.h awk -f usb_cmd_h2lua.awk $^ > $@ + +lualibs/mf_default_keys.lua : default_keys.dic + awk -f default_keys_dic2lua.awk $^ > $@ clean: $(RM) $(CLEAN) diff --git a/client/default_keys_dic2lua.awk b/client/default_keys_dic2lua.awk new file mode 100644 index 000000000..057d050f1 --- /dev/null +++ b/client/default_keys_dic2lua.awk @@ -0,0 +1,32 @@ +BEGIN { + print "--[[" + print "These are default_keys dictionary" + print "This file is automatically generated from default_keys.h - DON'T EDIT MANUALLY." + print "--]]" + print "local _keys = {" +} + +$1 ~ /^[A-Fa-f0-9]+/ { sub(/\r/, ""); print "'"substr($1,0,12)"'," } + +END { + print "}" + + print "---" + print "-- The keys above have just been pasted in, for completeness sake. They contain duplicates. " + print "-- We need to weed the duplicates out before we expose the list to someone who actually wants to use them" + print "-- @param list a list to do 'uniq' on" + print "" + print "local function uniq(list)" + print "" + print " local foobar = {}" + print " for _, value in pairs(list) do" + print " value = value:lower()" + print " if not foobar[value] then" + print " foobar[value] = true" + print " table.insert(foobar, value);" + print " end" + print " end" + print " return foobar" + print "end" + print "return uniq(_keys)" +} \ No newline at end of file diff --git a/client/lualibs/mf_default_keys.lua b/client/lualibs/mf_default_keys.lua deleted file mode 100644 index bcbb2e32a..000000000 --- a/client/lualibs/mf_default_keys.lua +++ /dev/null @@ -1,538 +0,0 @@ - -local _keys = { - --[[ - These keys are from the pm3 c-codebase. - --]] - 'ffffffffffff', -- Default key (first key used by program if no user defined key) - '000000000000', -- Blank key - 'a0a1a2a3a4a5', -- NFCForum MAD key - 'b0b1b2b3b4b5', - 'c0c1c2c3c4c5', - 'aabbccddeeff', - '4d3a99c351dd', - '1a982c7e459a', - 'd3f7d3f7d3f7', -- key A Wien - '5a1b85fce20a', -- key B Wien - '714c5c886e97', - '587ee5f9350f', - 'a0478cc39091', - '533cb6c723f6', - '8fd0a4f256e9', - - --[[ - The Slurp project, - Data from: https://github.com/4ZM/slurp/blob/master/res/xml/mifare_default_keys.xml - --]] - '000000000000', -- Default key - 'ffffffffffff', -- Default key - 'b0b1b2b3b4b5', -- Key from mfoc - '4d3a99c351dd', -- Key from mfoc - '1a982c7e459a', -- Key from mfoc - 'aabbccddeeff', -- Key from mfoc - '714c5c886e97', -- Key from mfoc - '587ee5f9350f', -- Key from mfoc - 'a0478cc39091', -- Key from mfoc - '533cb6c723f6', -- Key from mfoc - '8fd0a4f256e9', -- Key from mfoc - - --[[ - Data from: http://pastebin.com/wcTHXLZZ - --]] - 'a64598a77478', -- RKF SL Key A - '26940b21ff5d', -- RKF SL Key A - 'fc00018778f7', -- RKF SL Key A - '00000ffe2488', -- RKF SL Key B - '5c598c9c58b5', -- RKF SL Key B - 'e4d2770a89be', -- RKF SL Key B - - - --[[ - Data from: http://pastebin.com/svGjN30Q - --]] - '434f4d4d4f41', -- RKF JOJO GROUP Key A - '434f4d4d4f42', -- RKF JOJO GROUP Key B - '47524f555041', -- RKF JOJO GROUP Key A - '47524f555042', -- RKF JOJO GROUP Key B - '505249564141', -- RKF JOJO PRIVA Key A - '505249564142', -- RKF JOJO PRIVA Key B - - --[[ - Data from: http://pastebin.com/d7sSetef - --]] - 'fc00018778f7', -- RKF Rejskort Danmark Key A - '00000ffe2488', -- RKF Rejskort Danmark Key B - '0297927c0f77', -- RKF Rejskort Danmark Key A - 'ee0042f88840', -- RKF Rejskort Danmark Key B - '722bfcc5375f', -- RKF Rejskort Danmark Key A - 'f1d83f964314', -- RKF Rejskort Danmark Key B - - --[[ - Data from: http://pastebin.com/pvJX0xVS - --]] - '54726176656C', -- Transport Key A - '776974687573', -- Transport Key B - '4AF9D7ADEBE4', -- Directory and event log Key A - '2BA9621E0A36', -- Directory and event log Key B - - --[[ - Data from: http://pastebin.com/AK9Bftpw - --]] - '48ffe71294a0', -- Länstrafiken i Västerbotten - 'e3429281efc1', -- Länstrafiken i Västerbotten - '16f21a82ec84', -- Länstrafiken i Västerbotten - '460722122510', -- Länstrafiken i Västerbotten - - --[[ - Data from: http://pastebin.com/Dnnc5dFC - --]] - 'fc00018778f7', -- Västtrafiken Key A - '00000ffe2488', -- Västtrafiken Key B - '0297927c0f77', -- Västtrafiken Key A - 'ee0042f88840', -- Västtrafiken Key B - '54726176656c', -- Västtrafiken Key A - '776974687573', -- Västtrafiken Key B - - --[[ - Data from: http://pastebin.com/y3PDBWR1 - --]] - '000000000001', - 'a0a1a2a3a4a5', - '123456789abc', - 'b127c6f41436', - '12f2ee3478c1', - '34d1df9934c5', - '55f5a5dd38c9', - 'f1a97341a9fc', - '33f974b42769', - '14d446e33363', - 'c934fe34d934', - '1999a3554a55', - '27dd91f1fcf1', - 'a94133013401', - '99c636334433', - '43ab19ef5c31', - 'a053a292a4af', - '434f4d4d4f41', - '434f4d4d4f42', - '505249565441', - '505249565442', - - --[[ - Data from: http://pastebin.com/TUXj17K3 - --]] - 'fc0001877bf7', -- RKF ÖstgötaTrafiken Key A - '00000ffe2488', -- RKF ÖstgötaTrafiken Key B - '0297927c0f77', -- RKF ÖstgötaTrafiken Key A - 'ee0042f88840', -- RKF ÖstgötaTrafiken Key B - '54726176656c', -- RKF ÖstgötaTrafiken Key A - '776974687573', -- RKF ÖstgötaTrafiken Key B - - --[[ - Data from: https://code.google.com/p/mifare-key-cracker/downloads/list - --]] - 'bd493a3962b6', - '010203040506', - '111111111111', - '222222222222', - '333333333333', - '444444444444', - '555555555555', - '666666666666', - '777777777777', - '888888888888', - '999999999999', - 'aaaaaaaaaaaa', - 'bbbbbbbbbbbb', - 'cccccccccccc', - 'dddddddddddd', - 'eeeeeeeeeeee', - '0123456789ab', - '123456789abc', - - --[[ - Data from: https://github.com/4ZM/mfterm/blob/master/dictionary.txt - --]] - 'abcdef123456', -- Key from ladyada.net - '000000000001', - '000000000002', - '00000000000a', - '00000000000b', - '100000000000', - '200000000000', - 'a00000000000', - 'b00000000000', - - --[[ - Mifare TNP3xxx tags key A - --]] - '4b0b20107ccb', - - --[[ - Kiev metro cards - --]] - '8fe644038790', - 'f14ee7cae863', - '632193be1c3c', - '569369c5a0e5', - '9de89e070277', - 'eff603e1efe9', - '644672bd4afe', - 'b5ff67cba951', - - --[[ - hotel system cards, - http://www.proxmark.org/forum/viewtopic.php?id=2430 - --]] - '44ab09010845', - '85fed980ea5a', - - --[[ - VIGIK1 - --]] - '314B49474956', - '564c505f4d41', - - --[[ - BCARD keyB - --]] - 'f4a9ef2afc6d', - - --[[ - --]] - 'a9f953def0a3', - - --[[ - mystery Key A and B for Mifare 1k EV1 (S50) Sector 17! - --]] - '75ccb59c9bed', - '4b791bea7bcc', - - --[[ - Here be BIP keys - Data from: http://pastebin.com/QjUc66Zg - --]] - '3A42F33AF429', - '1FC235AC1309', - '6338A371C0ED', - '243F160918D1', - 'F124C2578AD0', - '9AFC42372AF1', - '32AC3B90AC13', - '682D401ABB09', - '4AD1E273EAF1', - '067DB45454A9', - 'E2C42591368A', - '15FC4C7613FE', - '2A3C347A1200', - '68D30288910A', - '16F3D5AB1139', - 'F59A36A2546D', - '937A4FFF3011', - '64E3C10394C2', - '35C3D2CAEE88', - 'B736412614AF', - '693143F10368', - '324F5DF65310', - 'A3F97428DD01', - '643FB6DE2217', - '63F17A449AF0', - '82F435DEDF01', - 'C4652C54261C', - '0263DE1278F3', - 'D49E2826664F', - '51284C3686A6', - '3DF14C8000A1', - '6A470D54127C', - - --[[ - 3dprinter - EPI Envisionte - --]] - 'AAFB06045877', - - --[[ - Fysiken - --]] - '3E65E4FB65B3', - '25094DF6F148', - - --[[ - key A - --]] - '454841585443', - - --[[ - Data from: http://phreakerclub.com/forum/showthread.php?p=41266 - --]] - '26973ea74321', - '71f3a315ad26', - '51044efb5aab', - 'ac70ca327a04', - 'eb0a8ff88ade', - - --[[ - Data from: http://pastebin.com/gQ6nk38G - --]] - 'A0A1A2A3A4A5', - 'D39BB83F5297', - 'A27D3804C259', - '85675B200017', - '528C9DFFE28C', - 'C82EC29E3235', - '3E3554AF0E12', - '491CDCFB7752', - '22C1BAE1AACD', - '5F146716E373', - '740E9A4F9AAF', - 'AC0E24C75527', - '97184D136233', - 'E444D53D359F', - '17758856B182', - 'A8966C7CC54B', - 'C6AD00254562', - 'AE3FF4EEA0DB', - '5EB8F884C8D1', - 'FEE470A4CB58', - '75D8690F21B6', - '871B8C085997', - '97D1101F18B0', - '75EDE6A84460', - 'DF27A8F1CB8E', - 'B0C9DD55DD4D', - - --[[ - Data from: http://pastebin.com/AK9Bftpw - --]] - '48ffe71294a0', - 'e3429281efc1', - '16f21a82ec84', - '460722122510', - - --[[ - Data from: http://bit.ly/1bdSbJl - --]] - 'A0B0C0D0E0F0', - 'A1B1C1D1E1F1', - - --[[ - Data from: msk three - Thanks to A. - --]] - 'ae3d65a3dad4', - 'a73f5dc1d333', - '73068F118C13', - - --[[ - Data from: msk social - Thanks to A. - --]] - 'a0a1a2a3a4a5', - '2735fc181807', - '2aba9519f574', - '84fd7f7a12b6', - '73068f118c13', - '186d8c4b93f9', - '3a4bba8adaf0', - '8765b17968a2', - '40ead80721ce', - '0db5e6523f7c', - '51119dae5216', - '83e3549ce42d', - '136bdb246cac', - '7de02a7f6025', - 'bf23a53c1f63', - 'cb9a1f2d7368', - 'c7c0adb3284f', - '2b7f3253fac5', - '9f131d8c2057', - '67362d90f973', - '6202a38f69e2', - '100533b89331', - '653a87594079', - 'd8a274b2e026', - 'b20b83cb145c', - '9afa6cb4fc3d', - --[[ - Data from: http://pastebin.com/RRJUEDCM - --]] - '0d258fe90296', - 'e55a3ca71826', - 'a4f204203f56', - 'eeb420209d0c', - '911e52fd7ce4', - '752fbb5b7b45', - '66b03aca6ee9', - '48734389edc3', - '17193709adf4', - '1acc3189578c', - 'c2b7ec7d4eb1', - '369a4663acd2', - --[[ - Data from: https://github.com/zhangjingye03/zxcardumper - zxcard Key A/B - --]] - '668770666644', - '003003003003', - --[[ - Data from: https://github.com/RadioWar/NFCGUI - --]] - '44dd5a385aaf', - '21a600056cb0', - 'b1aca33180a5', - 'dd61eb6bce22', - '1565a172770f', - '3e84d2612e2a', - 'f23442436765', - '79674f96c771', - '87df99d496cb', - 'c5132c8980bc', - 'a21680c27773', - 'f26e21edcee2', - '675557ecc92e', - 'f4396e468114', - '6db17c16b35b', - '4186562a5bb2', - '2feae851c199', - 'db1a3338b2eb', - '157b10d84c6b', - 'a643f952ea57', - 'df37dcb6afb3', - '4c32baf326e0', - '91ce16c07ac5', - '3c5d1c2bcd18', - 'c3f19ec592a2', - 'f72a29005459', - '185fa3438949', - '321a695bd266', - 'd327083a60a7', - '45635ef66ef3', - '5481986d2d62', - 'cba6ae869ad5', - '645a166b1eeb', - 'a7abbc77cc9e', - 'f792c4c76a5c', - 'bfb6796a11db', - --[[ - Data from - --]] - '8829da9daf76', - --[[ - Data from Salto A/B - --]] - '6A1987C40A21', - '7F33625BC129', - --[[ - Data from forum - --]] - '2338b4913111', - --[[ - Data from stoye - --]] - 'cb779c50e1bd', - 'a27d3804c259', - '003cc420001a', - 'f9861526130f', - '381ece050fbd', - 'a57186bdd2b9', - '48c739e21a04', - '36abf5874ed7', - '649d2abbbd20', - 'bbe8fffcf363', - 'ab4e7045e97d', - '340e40f81cd8', - 'e4f65c0ef32c', - 'd2a597d76936', - 'a920f32fe93a', - '86afd95200f7', - '9b832a9881ff', - '26643965b16e', - '0c669993c776', - 'b468d1991af9', - 'd9a37831dce5', - '2fc1f32f51b1', - '0ffbf65b5a14', - 'c5cfe06d9ea3', - 'c0dece673829', - --[[ - --]] - 'a56c2df9a26d', - --[[ - Intratone Cogelec - Data from http://bouzdeck.com/rfid/32-cloning-a-mifare-classic-1k-tag.html - --]] - '484558414354', - 'a22ae129c013', - '49fae4e3849f', - '38fcf33072e0', - '8ad5517b4b18', - '509359f131b1', - '6c78928e1317', - 'aa0720018738', - 'a6cac2886412', - '62d0c424ed8e', - 'e64a986a5d94', - '8fa1d601d0a2', - '89347350bd36', - '66d2b7dc39ef', - '6bc1e1ae547d', - '22729a9bd40f', ---[[ - Data from a oyster card ---]] - '374bf468607f', - 'bfc8e353af63', - '15cafd6159f6', - '62efd80ab715', - '987a7f7f1a35', - 'c4104fa3c526', - '4c961f23e6be', - '67546972bc69', - 'f4cd5d4c13ff', - '94414c1a07dc', - '16551d52fd20', - '9cb290282f7d', - '77a84170b574', - 'ed646c83a4f3', - 'e703589db50b', - '513c85d06cde', - '95093f0b2e22', - '543b01b27a95', - 'c6d375b99972', - 'ee4cc572b40e', - '5106ca7e4a69', - 'c96bd1ce607f', - '167a1be102e0', - 'a8d0d850a606', - 'a2abb693ce34', - '7b296c40c486', - '91f93a5564c9', - 'e10623e7a016', - 'b725f9cbf183', ---[[ - Data from forum post ---]] - "123F8888F322", - "050908080008", -} - ---- --- The keys above have just been pasted in, for completeness sake. They contain duplicates. --- We need to weed the duplicates out before we expose the list to someone who actually wants to use them --- @param list a list to do 'uniq' on - -local function uniq(list) - - local foobar = {} - --print("list length ", #list) - for _, value in pairs(list) do - value = value:lower() - if not foobar[value] then - foobar[value] = true - table.insert(foobar, value); - end - end - --print("final list length length ", #foobar) - return foobar -end - -return uniq(_keys)