]>
Commit | Line | Data |
---|---|---|
81740aa5 | 1 | local getopt = require('getopt') |
2 | ||
3 | example = "script run remagic" | |
4 | author = "Iceman" | |
81740aa5 | 5 | desc = |
6 | [[ | |
7 | This is a script that tries to bring back a chinese magic card (1k generation1) | |
8 | from the dead when it's block 0 has been written with bad values. | |
6648776f | 9 | or mifare Ultralight magic card which answers to chinese backdoor commands |
81740aa5 | 10 | |
11 | Arguments: | |
6648776f | 12 | -h this help |
13 | -u remagic a Ultralight tag w 7 bytes UID. | |
81740aa5 | 14 | ]] |
15 | --- | |
16 | -- A debug printout-function | |
17 | function dbg(args) | |
18 | if DEBUG then | |
19 | print("###", args) | |
20 | end | |
21 | end | |
22 | --- | |
23 | -- This is only meant to be used when errors occur | |
24 | function oops(err) | |
25 | print("ERROR: ",err) | |
26 | end | |
81740aa5 | 27 | --- |
28 | -- Usage help | |
29 | function help() | |
30 | print(desc) | |
31 | print("Example usage") | |
32 | print(example) | |
33 | end | |
34 | ||
6648776f | 35 | local 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 | } | |
50 | end | |
51 | local 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 | } | |
61 | end | |
81740aa5 | 62 | --- |
63 | -- The main entry point | |
64 | function main(args) | |
65 | ||
6648776f | 66 | local i |
67 | local cmds = {} | |
68 | local isUltralight = false | |
81740aa5 | 69 | |
70 | -- Read the parameters | |
6648776f | 71 | for o, a in getopt.getopt(args, 'hu') do |
72 | if o == "h" then return help() end | |
73 | if o == "u" then isUltralight = true end | |
81740aa5 | 74 | end |
6648776f | 75 | |
81740aa5 | 76 | core.clearCommandBuffer() |
77 | ||
6648776f | 78 | if isUltralight then |
79 | cmds = cmdUltralight() | |
80 | else | |
81 | cmds = cmdClassic() | |
82 | end | |
83 | ||
84 | for i = 0, #cmds do | |
85 | if cmds[i] then | |
86 | print ( cmds[i] ) | |
87 | core.console( cmds[i] ) | |
88 | end | |
81740aa5 | 89 | end |
90 | end | |
91 | ||
92 | main(args) |