proxmark3/client/scripts/tracetest.lua

127 lines
2.5 KiB
Lua
Raw Normal View History

local cmds = require('commands')
local getopt = require('getopt')
local bin = require('bin')
local utils = require('utils')
local dumplib = require('html_dumplib')
example =[[
2019-03-09 17:34:43 +08:00
1. script run tracetest
]]
author = "Iceman"
usage = "script run tracetest"
desc =[[
2019-03-09 17:34:43 +08:00
This script will load several traces files in ../traces/ folder and do
"data load"
2019-03-09 17:34:43 +08:00
"lf search 1 u"
2019-03-09 17:34:43 +08:00
The following tracefiles will be loaded:
em*.pm3
m*.pm3
Arguments:
2019-03-09 17:34:43 +08:00
-h : this help
]]
local TIMEOUT = 2000 -- Shouldn't take longer than 2 seconds
local DEBUG = true -- the debug flag
2019-03-09 17:34:43 +08:00
---
-- A debug printout-function
function dbg(args)
2019-03-09 17:34:43 +08:00
if not DEBUG then
return
end
if type(args) == "table" then
2019-03-09 17:34:43 +08:00
local i = 1
while result[i] do
dbg(result[i])
i = i+1
end
else
print("###", args)
end
end
---
-- This is only meant to be used when errors occur
function oops(err)
2019-03-09 17:34:43 +08:00
print("ERROR: ",err)
end
2019-03-09 17:34:43 +08:00
---
-- Usage help
function help()
2019-03-09 17:34:43 +08:00
print(desc)
print("Example usage")
print(example)
end
--
-- Exit message
function ExitMsg(msg)
2019-03-09 17:34:43 +08:00
print( string.rep('--',20) )
print( string.rep('--',20) )
print(msg)
print()
end
local function main(args)
2019-03-09 17:34:43 +08:00
print( string.rep('--',20) )
print( string.rep('--',20) )
local cmdDataLoad = 'data load %s';
local tracesEM = "find '../traces/' -iname 'em*.pm3' -type f"
local tracesMOD = "find '../traces/' -iname 'm*.pm3' -type f"
local write2File = false
local outputTemplate = os.date("testtest_%Y-%m-%d_%H%M%S")
-- Arguments for the script
for o, arg in getopt.getopt(args, 'h') do
if o == "h" then return help() end
end
core.clearCommandBuffer()
local files = {}
-- Find a set of traces staring with EM
local p = assert( io.popen(tracesEM))
for file in p:lines() do
table.insert(files, file)
end
p.close();
-- Find a set of traces staring with MOD
p = assert( io.popen(tracesMOD) )
for file in p:lines() do
table.insert(files, file)
end
p.close();
local cmdLFSEARCH = "lf search 1 u"
-- main loop
io.write('Starting to test traces > ')
for _,file in pairs(files) do
local x = "data load "..file
dbg(x)
core.console(x)
dbg(cmdLFSEARCH)
core.console(cmdLFSEARCH)
core.clearCommandBuffer()
if core.ukbhit() then
print("aborted by user")
break
end
end
io.write('\n')
print( string.rep('--',20) )
end
2019-03-12 07:12:26 +08:00
main(args)