mod 'hf list' (#881)
[proxmark3-svn] / client / scripts / 14araw.lua
index 0ce986565f33fe05f81b0216190d261f2aad574d..e253092960c2c2d92a48b45d47e6a32c450a5433 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, 'orcpx:dt3') 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.read14443a(true, no_rats)
 
                if err then return oops(err) end
                print(("Connected to card, uid = %s"):format(info.uid))
@@ -107,7 +114,7 @@ function main(args)
 
        -- The actual raw payload, if any
        if payload then
-               res,err = sendRaw(payload,{ignore_response = ignore_response})
+               res,err = sendRaw(payload,{ignore_response = ignore_response, topaz_mode = topaz_mode})
                if err then return oops(err) end
        
                if not ignoreresponse then 
@@ -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 options.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 
Impressum, Datenschutz