X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/2e16354693c5b0b2ea03a7824e6f9e527c0a66e9..dc2349ae7752f9da5337c515f9f5b71292f812e7:/client/scripts/e.lua?ds=inline diff --git a/client/scripts/e.lua b/client/scripts/e.lua index 4dd71490..a20b8e47 100644 --- a/client/scripts/e.lua +++ b/client/scripts/e.lua @@ -1,15 +1,15 @@ local getopt = require('getopt') local utils = require('utils') -example = "script calculates many checksums (CRC) over the provided hex input" +example = "script calculates many different checksums (CRC) over the provided hex input" author = "Iceman" desc = [[ -This script calculates many checksums (CRS) over the provided hex input. +This script calculates many checksums (CRC) over the provided hex input. Arguments: -b data in hex - -w width of the CRC algorithm. defaults to all known CRC presets. + -w bitwidth of the CRC family of algorithm. defaults to all known CRC presets. Examples : script run e -b 010203040506070809 script run e -b 010203040506070809 -w 16 @@ -39,31 +39,34 @@ end -- The main entry point function main(args) - local data = '01020304' + local data local width = 0 -- Read the parameters for o, a in getopt.getopt(args, 'hb:w:') do if o == "h" then return help() end - if o == "b" then data = utils.ConvertHexToa end + if o == "b" then data = a end if o == "w" then width = a end end - print('Width of CRC: '..width..' bytes: '..data) - print('') - print('Model','CRC', 'CRC_Reverse') + data = data or '01020304' + print( string.rep('-',60) ) + print('Bit width of CRC | '..width) + print('Bytes | '..data) + print('') + print( ('%-20s| %-16s| %s'):format('Model','CRC', 'CRC reverse')) + print( string.rep('-',60) ) local lists = core.reveng_models(width) for _,i in pairs(lists) do - local one = core.reveng_runmodel(i, data, 0,0) - local two = core.reveng_runmodel(i, data, 1,0) - - print(i, one, two) + local a1 = core.reveng_runmodel(i, data, false, '0') + local a2 = core.reveng_runmodel(i, data, true, '0') + local a3 = core.reveng_runmodel(i, data, false, 'b') + local a4 = core.reveng_runmodel(i, data, false, 'B') + local a5 = core.reveng_runmodel(i, data, false, 'l') + local a6 = core.reveng_runmodel(i, data, false, 'L') + print( ('%-20s| %-16s| %-16s| %-16s| %-16s| %-16s| %-16s'):format(i, a1:upper(), a2:upper(),a3:upper(),a4:upper(),a5:upper(),a6:upper() ) ) end - - if 1 == 1 then - return - end end main(args) \ No newline at end of file