mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-21 05:43:48 -07:00
scripts: Add mfc_hammerlite and ntag_hammertime
This commit is contained in:
parent
1a749d77ed
commit
35d5896012
2 changed files with 271 additions and 0 deletions
82
client/luascripts/mfc_hammerlite.lua
Normal file
82
client/luascripts/mfc_hammerlite.lua
Normal file
|
@ -0,0 +1,82 @@
|
|||
local getopt = require('getopt')
|
||||
local lib14a = require('read14a')
|
||||
local cmds = require('commands')
|
||||
local ansicolors = require('ansicolors')
|
||||
|
||||
copyright = 'Copyright 2020 A. Ozkal, released under GPLv2+.'
|
||||
author = 'Ave'
|
||||
version = 'v0.1.1'
|
||||
desc = [[
|
||||
This script writes a bunch of random blocks to a Mifare Classic card
|
||||
]]
|
||||
example = [[
|
||||
script run mfc_hammerlite -w 1000 -k FFFFFFFFFFFF
|
||||
]]
|
||||
usage = [[
|
||||
script run mfc_hammerlite [-h] [-w <writecount>] [-k <key>]
|
||||
]]
|
||||
arguments = [[
|
||||
-h : This help
|
||||
-w <writeroundcount> : Amount of write rounds to be done to each block (optional, default: 100)
|
||||
-k <key> : A key for the sectors
|
||||
]]
|
||||
|
||||
local function help()
|
||||
print(author)
|
||||
print(version)
|
||||
print(desc)
|
||||
print(ansicolors.cyan..'Usage'..ansicolors.reset)
|
||||
print(usage)
|
||||
print(ansicolors.cyan..'Arguments'..ansicolors.reset)
|
||||
print(arguments)
|
||||
print(ansicolors.cyan..'Example usage'..ansicolors.reset)
|
||||
print(example)
|
||||
end
|
||||
|
||||
function randhex(len)
|
||||
result = ""
|
||||
for i = 1,len,1
|
||||
do
|
||||
-- 48-57 numbers, 65-70 a-f
|
||||
hex = math.random(0, 15)
|
||||
if hex >= 10 then
|
||||
hex = hex + 7
|
||||
end
|
||||
result = result..string.char(48 + hex)
|
||||
end
|
||||
return result
|
||||
end
|
||||
|
||||
---
|
||||
-- The main entry point
|
||||
function main(args)
|
||||
-- param defaults
|
||||
loopcount = 100
|
||||
verifyevery = 10
|
||||
key = "FFFFFFFFFFFF"
|
||||
|
||||
-- Read the parameters
|
||||
for o, a in getopt.getopt(args, 'hw:k:') do
|
||||
if o == 'h' then return help() end
|
||||
if o == 'w' then loopcount = tonumber(a) end
|
||||
if o == 'k' then key = a end
|
||||
end
|
||||
|
||||
starttime = os.time()
|
||||
|
||||
for i = 1,loopcount,1
|
||||
do
|
||||
for a = 1,63,1
|
||||
do
|
||||
if ((a + 1) % 4 ~= 0) and a ~= 0 then -- :)
|
||||
data = randhex(32)
|
||||
-- core.console('hf mf rdbl '..a..' A FFFFFFFFFFFF')
|
||||
core.console('hf mf wrbl '..a..' A '..key..' '..data)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
print("Hammering complete.")
|
||||
end
|
||||
|
||||
main(args)
|
Loading…
Add table
Add a link
Reference in a new issue