CHG: added the possibility to "remagic" the new found Mifare Ultralight tags, which answers to chinese backdoor commands for uid change.

The script now deals with to different kind of tags.  Mifare Classic 1k gen1  and  Mifare Ultralight gen1 (7bytes uid)

-Classic will get    UID: 01 02 03 04
-Ultralight will get UID: 53 80 71 02 00 D9 80
This commit is contained in:
iceman1001 2016-05-15 19:27:04 +02:00
parent 8fd9bfb0e3
commit 6648776f2a

View file

@ -2,14 +2,15 @@ local getopt = require('getopt')
example = "script run remagic"
author = "Iceman"
desc =
[[
This is a script that tries to bring back a chinese magic card (1k generation1)
from the dead when it's block 0 has been written with bad values.
or mifare Ultralight magic card which answers to chinese backdoor commands
Arguments:
-h this help
-u remagic a Ultralight tag w 7 bytes UID.
]]
---
-- A debug printout-function
@ -23,7 +24,6 @@ end
function oops(err)
print("ERROR: ",err)
end
---
-- Usage help
function help()
@ -32,31 +32,60 @@ function help()
print(example)
end
---
-- The main entry point
function main(args)
-- Read the parameters
for o, a in getopt.getopt(args, 'h') do
if o == "h" then help() return end
end
local _cmds = {
local function cmdUltralight()
return {
--[[
--]]
[0] = "hf 14a raw -p -a -b 7 40",
[1] = "hf 14a raw -p -a 43",
[2] = "hf 14a raw -c -a A2005380712A",
[3] = "hf 14a raw -p -a -b 7 40",
[4] = "hf 14a raw -p -a 43",
[5] = "hf 14a raw -c -a A2010200D980",
[6] = "hf 14a raw -p -a -b 7 40",
[7] = "hf 14a raw -p -a 43",
[8] = "hf 14a raw -c -a A2025B480000",
[9] = "hf 14a raw -c -a 5000",
}
end
local function cmdClassic()
return {
--[[
--]]
[0] = "hf 14a raw -p -a -b 7 40",
[1] = "hf 14a raw -p -a 43",
[2] = "hf 14a raw -c -p -a A000",
[3] = "hf 14a raw -c -p -a 01 02 03 04 04 98 02 00 00 00 00 00 00 00 10 01",
[3] = "hf 14a raw -c -p -a 01020304049802000000000000001001",
[4] = "hf 14a raw -c -a 5000",
}
core.clearCommandBuffer()
end
---
-- The main entry point
function main(args)
local i
--for _,c in pairs(_cmds) do
for i = 0, 3 do
print ( _cmds[i] )
core.console( _cmds[i] )
local cmds = {}
local isUltralight = false
-- Read the parameters
for o, a in getopt.getopt(args, 'hu') do
if o == "h" then return help() end
if o == "u" then isUltralight = true end
end
core.clearCommandBuffer()
if isUltralight then
cmds = cmdUltralight()
else
cmds = cmdClassic()
end
for i = 0, #cmds do
if cmds[i] then
print ( cmds[i] )
core.console( cmds[i] )
end
end
end