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) |