]> git.zerfleddert.de Git - proxmark3-svn/commitdiff
Adjust LUA scripts to new ISO14A_NO_RATS option
authorpwpiwi <pwpiwi@users.noreply.github.com>
Wed, 4 Oct 2017 16:25:34 +0000 (18:25 +0200)
committerpwpiwi <pwpiwi@users.noreply.github.com>
Wed, 4 Oct 2017 16:28:57 +0000 (18:28 +0200)
client/lualibs/read14a.lua
client/scripts/14araw.lua
client/scripts/didump.lua
client/scripts/formatMifare.lua
client/scripts/mfkeys.lua
client/scripts/mifare_autopwn.lua
client/scripts/tnp3clone.lua
client/scripts/tnp3dump.lua

index 943a1722426d10fa8c951ebba6df0b57b458d7a2..ec227b1716a101b74505c25587542e2629c2c91e 100644 (file)
@@ -22,7 +22,8 @@ local ISO14A_COMMAND = {
        ISO14A_APPEND_CRC = 0x20,
        ISO14A_SET_TIMEOUT = 0x40,
        ISO14A_NO_SELECT = 0x80,
-       ISO14A_TOPAZMODE = 0x100
+       ISO14A_TOPAZMODE = 0x100,
+       ISO14A_NO_RATS = 0x200
 }
 
 local ISO14443a_TYPES = {}             
@@ -92,9 +93,10 @@ end
 
 -- This function does a connect and retrieves som einfo
 -- @param dont_disconnect - if true, does not disable the field
+-- @param no_rats - if true, skips ISO14443-4 select (RATS)
 -- @return if successfull: an table containing card info
 -- @return if unsuccessfull : nil, error
-local function read14443a(dont_disconnect)
+local function read14443a(dont_disconnect, no_rats)
        local command, result, info, err, data
 
        command = Command:new{cmd = cmds.CMD_READER_ISO_14443a, 
@@ -102,6 +104,9 @@ local function read14443a(dont_disconnect)
        if dont_disconnect then
                command.arg1 = command.arg1 + ISO14A_COMMAND.ISO14A_NO_DISCONNECT
        end
+       if no_rats then
+               command.arg1 = command.arg1 + ISO14A_COMMAND.ISO14A_NO_RATS
+       end
        local result,err = sendToDevice(command)
        if result then
                local count,cmd,arg0,arg1,arg2 = bin.unpack('LLLL',result)
index 0ce986565f33fe05f81b0216190d261f2aad574d..82f30fa870f51ebbef8b39b6a80b09e568e6d73e 100644 (file)
@@ -17,6 +17,8 @@ Arguments:
        -p                              stay connected - dont inactivate the field
        -x <payload>    Data to send (NO SPACES!)
        -d                              Debug flag
+       -t                              Topaz mode
+       -3                              Skip ISO14443-4 select
 
 Examples : 
 
@@ -70,6 +72,7 @@ function help()
        print(example)
 end
 
+
 --- 
 -- The main entry point
 function main(args)
@@ -83,15 +86,19 @@ function main(args)
        local stayconnected = false
        local payload = nil
        local doconnect = true
+       local topaz_mode = false
+       local no_rats = false
 
        -- Read the parameters
-       for o, a in getopt.getopt(args, 'corcpx:') do
+       for o, a in getopt.getopt(args, 'corcpxt3:') do
                if o == "o" then doconnect = false end          
                if o == "r" then ignore_response = true end
                if o == "c" then appendcrc = true end
                if o == "p" then stayconnected = true end
                if o == "x" then payload = a end
                if o == "d" then DEBUG = true end
+               if o == "t" then topaz_mode = true end
+               if o == "3" then no_rats = true end
        end
 
        -- First of all, connect
@@ -99,7 +106,7 @@ function main(args)
                dbg("doconnect")
                -- We reuse the connect functionality from a 
                -- common library
-               info, err = lib14a.read1443a(true)
+               info, err = lib14a.read1443a(true, no_rats)
 
                if err then return oops(err) end
                print(("Connected to card, uid = %s"):format(info.uid))
@@ -137,11 +144,11 @@ function showdata(usbpacket)
 end
 
 
-
 function sendRaw(rawdata, options)
        print(">> ", rawdata)
        
        local flags = lib14a.ISO14A_COMMAND.ISO14A_NO_DISCONNECT + lib14a.ISO14A_COMMAND.ISO14A_RAW
+       if topaz_mode == true then flags = flags + lib14a.ISO14A_COMMAND.ISO14A_TOPAZMODE end
 
        local command = Command:new{cmd = cmds.CMD_READER_ISO_14443a, 
                                                                        arg1 = flags, -- Send raw 
index 2386d42d9e7c3c385bc912aee301ded73c762507..124c3dc3774c5a02d577833abb161a42d7deea44 100644 (file)
@@ -406,7 +406,7 @@ function main(args)
 
        -- GET TAG UID
        
-       result, err = lib14a.read1443a(false)
+       result, err = lib14a.read1443a(false, true)
        if not result then
                return oops(err)
        end
index a14c6b78ecf591e7c2c2c4baace1245cb29d64b8..56397acd0441f91aeddcf4000f4735573bdf04d1 100644 (file)
@@ -71,7 +71,7 @@ end
 --\r
 -- Read information from a card\r
 function GetCardInfo()\r
-       result, err = lib14a.read1443a(false)\r
+       result, err = lib14a.read1443a(false, true)\r
        if not result then\r
                print(err)\r
                return\r
index c54f6e6777766182c5b03aa1d674baf995d2b78e..8e54f90844194d837f2d32112dd692cff2bbfb5b 100644 (file)
@@ -170,7 +170,7 @@ local function main( args)
 
        print(desc);
 
-       result, err = reader.read1443a()
+       result, err = reader.read1443a(false, true)
        if not result then
                print(err)
                return
index e68f7a75d188d915e142bb9b10e63341203f3b22..bede483b9f3399ab6b01de10e9f4a33f9f1646c5 100644 (file)
@@ -56,7 +56,7 @@ end
 -- @return if unsuccessfull : nil, error
 function wait_for_mifare()
        while not core.ukbhit() do
-               res, err = reader.read1443a()
+               res, err = reader.read1443a(false, true)
                if res then return res end
                -- err means that there was no response from card
        end
index e87c338ea07e36d559d71d1d6a8ae9e392075c65..2a8d2763b0401f7f583f94977baebfd8aed18c61 100644 (file)
@@ -122,7 +122,7 @@ local function main(args)
 
        
        -- find tag
-       result, err = lib14a.read1443a(false)
+       result, err = lib14a.read1443a(false, true)
        if not result then return oops(err)     end
 
        -- load keys
index 211d146fd1c4da89d200ea05d568cb1a3f0a1fa6..aca7d046e9cd259dbd8009c9fc442a69bea3918a 100644 (file)
@@ -127,7 +127,7 @@ local function main(args)
        local cmdSetDbgOff = "hf mf dbg 0"
        core.console( cmdSetDbgOff) 
        
-       result, err = lib14a.read1443a(false)
+       result, err = lib14a.read1443a(false, true)
        if not result then
                return oops(err)
        end
Impressum, Datenschutz