]> git.zerfleddert.de Git - proxmark3-svn/blame - client/scripts/remagic.lua
ADD: 'script runt remagic' - the Mifare Classic s50 (1k) magic tag restores now also...
[proxmark3-svn] / client / scripts / remagic.lua
CommitLineData
81740aa5 1local getopt = require('getopt')
2
3example = "script run remagic"
4author = "Iceman"
81740aa5 5desc =
6[[
7This is a script that tries to bring back a chinese magic card (1k generation1)
8from the dead when it's block 0 has been written with bad values.
6648776f 9or mifare Ultralight magic card which answers to chinese backdoor commands
81740aa5 10
11Arguments:
6648776f 12 -h this help
13 -u remagic a Ultralight tag w 7 bytes UID.
81740aa5 14]]
15---
16-- A debug printout-function
17function dbg(args)
18 if DEBUG then
19 print("###", args)
20 end
21end
22---
23-- This is only meant to be used when errors occur
24function oops(err)
25 print("ERROR: ",err)
26end
81740aa5 27---
28-- Usage help
29function help()
30 print(desc)
31 print("Example usage")
32 print(example)
33end
34
6648776f 35local function cmdUltralight()
36 return {
37 --[[
38 --]]
39 [0] = "hf 14a raw -p -a -b 7 40",
40 [1] = "hf 14a raw -p -a 43",
41 [2] = "hf 14a raw -c -a A2005380712A",
42 [3] = "hf 14a raw -p -a -b 7 40",
43 [4] = "hf 14a raw -p -a 43",
44 [5] = "hf 14a raw -c -a A2010200D980",
45 [6] = "hf 14a raw -p -a -b 7 40",
46 [7] = "hf 14a raw -p -a 43",
47 [8] = "hf 14a raw -c -a A2025B480000",
48 [9] = "hf 14a raw -c -a 5000",
49 }
50end
51local function cmdClassic()
52 return {
53 --[[
54 --]]
55 [0] = "hf 14a raw -p -a -b 7 40",
56 [1] = "hf 14a raw -p -a 43",
57 [2] = "hf 14a raw -c -p -a A000",
58 [3] = "hf 14a raw -c -p -a 01020304049802000000000000001001",
59 [4] = "hf 14a raw -c -a 5000",
60 }
61end
dd015c59 62local function cmdRestoreST()
63 local arr = {}
64 for i = 0, 15 do
65 local blk = 3 + (4*i)
66 arr[i] = "hf mf csetbl "..blk.." FFFFFFFFFFFFFF078000FFFFFFFFFFFF"
67 end
68 return arr
69end
70local function sendCmds( cmds )
71 for i = 0, #cmds do
72 if cmds[i] then
73 print ( cmds[i] )
74 core.console( cmds[i] )
75 end
76 end
77end
81740aa5 78---
79-- The main entry point
80function main(args)
81
6648776f 82 local i
83 local cmds = {}
84 local isUltralight = false
81740aa5 85
86 -- Read the parameters
6648776f 87 for o, a in getopt.getopt(args, 'hu') do
88 if o == "h" then return help() end
89 if o == "u" then isUltralight = true end
81740aa5 90 end
6648776f 91
81740aa5 92 core.clearCommandBuffer()
93
6648776f 94 if isUltralight then
dd015c59 95 sendCmds ( cmdUltralight() )
6648776f 96 else
dd015c59 97 sendCmds( cmdClassic() )
98 sendCmds( cmdRestoreST() )
81740aa5 99 end
100end
101
102main(args)
Impressum, Datenschutz