X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/d78792f51535f469f4ba55b9ff8fa874c5fd34e0..03dc174036b7258baf1ef2504e810a685163137e:/client/scripts/htmldump.lua?ds=inline diff --git a/client/scripts/htmldump.lua b/client/scripts/htmldump.lua index e9d35443..d14f8819 100644 --- a/client/scripts/htmldump.lua +++ b/client/scripts/htmldump.lua @@ -2,10 +2,11 @@ -- Have a look there for further details getopt = require('getopt') bin = require('bin') +dumplib = require('html_dumplib') -example = "script run 14araw -x 6000F57b" +example = "script run htmldump -o mifarecard_foo.html" author = "Martin Holst Swende" -usage = "script run htmldump [-f <file>]" +usage = "script run htmldump [-i <file>] [-o <file>]" desc =[[ This script takes a dumpfile and produces a html based dump, which is a bit more easily analyzed. @@ -43,29 +44,8 @@ function help() print(example) end -local function readdump(infile) - t = infile:read("*all") - --print(string.len(t)) - len = string.len(t) - local len,hex = bin.unpack(("H%d"):format(len),t) - --print(len,hex) - return hex -end -local function convert_to_js(hexdata) - if string.len(hexdata) % 32 ~= 0 then - return oops(("Bad data, length should be a multiple of 32 (was %d)"):format(string.len(hexdata))) - end - local js,i = "["; - for i = 1, string.len(hexdata),32 do - js = js .."'" ..string.sub(hexdata,i,i+31).."',\n" - end - js = js .. "]" - return js -end - local function main(args) - print(desc) local input = "dumpdata.bin" local output = os.date("%Y-%m-%d_%H%M%S.html"); for o, a in getopt.getopt(args, 'i:o:h') do @@ -73,31 +53,12 @@ local function main(args) if o == "i" then input = a end if o == "o" then output = a end end - -- Validate the parameters - - local infile = io.open(input, "r") - if infile == nil then - return ("Could not read file ", input) - end - --lokal skel = require("skel") - local dumpdata = readdump(infile) - io.close(infile) + local filename, err = dumplib.convert_bin_to_html(input,output,16) + if err then return oops(err) end - local js_code = convert_to_js(dumpdata) - --print(js_code) - local skel = require("htmlskel") - html = skel.getHTML(js_code); - - local outfile = io.open(output, "w") - if outfile == nil then - return oops("Could not write to file ", output) - end - outfile:write(html) - io.close(outfile) - print(("Wrote a HTML dump to the file %s"):format(output)) + print(("Wrote a HTML dump to the file %s"):format(filename)) end - --[[ In the future, we may implement so that scripts are invoked directly into a 'main' function, instead of being executed blindly. For future