]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - client/scripts/e.lua
fix reveng memory bug + @iceman1001 s scripting
[proxmark3-svn] / client / scripts / e.lua
diff --git a/client/scripts/e.lua b/client/scripts/e.lua
new file mode 100644 (file)
index 0000000..4dd7149
--- /dev/null
@@ -0,0 +1,69 @@
+local getopt = require('getopt')
+local utils = require('utils')
+
+example = "script calculates many checksums (CRC) over the provided hex input"
+author = "Iceman"
+desc =
+[[
+This script calculates many checksums (CRS) over the provided hex input. 
+
+Arguments:
+       -b                              data in hex
+       -w                              width of the CRC algorithm. <optional> defaults to all known CRC presets.
+Examples : 
+       script run e -b 010203040506070809
+       script run e -b 010203040506070809 -w 16
+]]
+
+--- 
+-- A debug printout-function
+function dbg(args)
+       if DEBUG then
+               print("###", args)
+       end
+end 
+--- 
+-- This is only meant to be used when errors occur
+function oops(err)
+       print("ERROR: ",err)
+       return nil,err
+end
+--- 
+-- Usage help
+function help()
+       print(desc)
+       print("Example usage")
+       print(example)
+end
+--- 
+-- The main entry point
+function main(args)
+
+       local data = '01020304'
+       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 == "w" then width = a end
+       end
+
+       print('Width of CRC: '..width..'  bytes: '..data)
+       print('')
+       print('Model','CRC', 'CRC_Reverse')
+       
+       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)
+       end
+       
+       if 1 == 1 then
+        return
+       end 
+end
+
+main(args)
\ No newline at end of file
Impressum, Datenschutz