X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/c6e2bfcda1d13453fe6bf1192422f0974a412dbb..4df3eb3f739af80b6fdc8f737fc906d254ebd0b5:/client/scripts/writeraw.lua diff --git a/client/scripts/writeraw.lua b/client/scripts/writeraw.lua new file mode 100644 index 00000000..25250864 --- /dev/null +++ b/client/scripts/writeraw.lua @@ -0,0 +1,46 @@ +local cmds = require('commands') +local desc = +[[ + +This script is a work in progress, not yet functional. It is an attempt to use the raw-writing +capabilities already present within the devices + +]] + +print(desc) + +-- Some raw data +local rawdata = "6000F57b" --mf_auth +local TIMEOUT = 2000 -- Shouldn't take longer than 2 seconds + +function show(usbpacket) + if usbpacket then + local response = Command.parse(usbpacket) + print(response) + end +end + +-- Want to do both connect and send raw, so we should AND the two commands +-- ISO14A_COMMAND.ISO14A_RAW and ISO14A_CONNECT. However, we don't have a +-- bitlib yet, so we'll do it manually, 1 & 8 == 9 +-- ISO14A_NO_DISCONNECT = 2 + +print(string.len(rawdata)) +local command = Command:new{cmd = cmds.CMD_READER_ISO_14443a, + arg1 = 9, + arg2 = string.len(rawdata), + data = rawdata} +core.clearCommandBuffer() +print("Sending") +print(command) +local err = core.SendCommand(command:getBytes()) +if err then + print(err) + return nil, err +end +local cardselect = core.WaitForResponseTimeout(cmds.CMD_ACK,TIMEOUT) +print("Card select:") +show(cardselect) +local response = core.WaitForResponseTimeout(cmds.CMD_ACK,TIMEOUT) +print("Raw response:") +show(response)