mirror of
https://github.com/wh201906/Proxmark3GUI.git
synced 2025-04-20 11:41:07 +08:00
EM410x clone support
This commit is contained in:
parent
f86cba8d56
commit
1e728c891c
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +1,2 @@
|
|||||||
/build*
|
/build*
|
||||||
|
/data
|
@ -191,5 +191,15 @@
|
|||||||
"cmd": "lf config q <divisor> b <bits per sample> d <decimation> a <averaging> t <trigger threshold> s <samples to skip>",
|
"cmd": "lf config q <divisor> b <bits per sample> d <decimation> a <averaging> t <trigger threshold> s <samples to skip>",
|
||||||
"divisor cmd": "hw setlfdivisor <divisor>"
|
"divisor cmd": "hw setlfdivisor <divisor>"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"t55xx":{
|
||||||
|
"clone em410x":{
|
||||||
|
"read":"lf search",
|
||||||
|
"successful read flag":"Valid EM410x ID",
|
||||||
|
"pattern":"EM TAG ID\\s*:\\s\\K[0-9a-fA-F]{10}",
|
||||||
|
"clone cmd":"lf em 410xwrite <id> <type>",
|
||||||
|
"t5555 flag":"0",
|
||||||
|
"t55x7 flag":"1"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -199,5 +199,15 @@
|
|||||||
"cmd": "lf config --divisor <divisor> --bps <bits per sample> --dec <decimation> --avg <averaging> --trig <trigger threshold> --skip <samples to skip>",
|
"cmd": "lf config --divisor <divisor> --bps <bits per sample> --dec <decimation> --avg <averaging> --trig <trigger threshold> --skip <samples to skip>",
|
||||||
"divisor cmd": "hw setlfdivisor -d <divisor>"
|
"divisor cmd": "hw setlfdivisor -d <divisor>"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"t55xx":{
|
||||||
|
"clone em410x":{
|
||||||
|
"read":"lf em 410x reader",
|
||||||
|
"successful read flag":"EM 410x ID",
|
||||||
|
"pattern":"EM 410x ID\\s*\\K[0-9a-fA-F]{10}",
|
||||||
|
"clone cmd":"lf em 410x clone --id <id> <type>",
|
||||||
|
"t5555 flag":"--q5",
|
||||||
|
"t55x7 flag":""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -78,7 +78,13 @@ QString Util::execCMDWithOutput(const QString& cmd, ReturnTrigger trigger, bool
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
isRequiringOutput = false;
|
isRequiringOutput = false;
|
||||||
return (isResultFound || trigger.expectedOutputs.isEmpty() || rawOutput ? *requiredOutput : "");
|
|
||||||
|
// For functions without expected outputs in the return trigger, the result is the raw output.
|
||||||
|
// For functions with expected outputs in the return trigger,
|
||||||
|
// if rawOutput=true, the result is the raw output,
|
||||||
|
// otherwise, if the raw output contains one of the expected outputs, the result is the raw output,
|
||||||
|
// otherwise, the result is empty(as a failed flag).
|
||||||
|
return (trigger.expectedOutputs.isEmpty() || isResultFound || rawOutput ? *requiredOutput : "");
|
||||||
}
|
}
|
||||||
|
|
||||||
void Util::delay(unsigned int msec)
|
void Util::delay(unsigned int msec)
|
||||||
|
@ -536,7 +536,7 @@ It could make the whole sector blocked irreversibly!</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="914"/>
|
<location filename="../ui/mainwindow.ui" line="914"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="835"/>
|
<location filename="../ui/mainwindow.cpp" line="838"/>
|
||||||
<source>About UID Card</source>
|
<source>About UID Card</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@ -738,6 +738,7 @@ or the communication between a tag and a reader.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="1883"/>
|
<location filename="../ui/mainwindow.ui" line="1883"/>
|
||||||
|
<location filename="../ui/mainwindow.cpp" line="44"/>
|
||||||
<source>T55xx</source>
|
<source>T55xx</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@ -939,7 +940,7 @@ or the communication between a tag and a reader.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="2570"/>
|
<location filename="../ui/mainwindow.ui" line="2570"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="267"/>
|
<location filename="../ui/mainwindow.cpp" line="270"/>
|
||||||
<source>History:</source>
|
<source>History:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@ -1054,46 +1055,46 @@ or the communication between a tag and a reader.</source>
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="80"/>
|
<location filename="../ui/mainwindow.cpp" line="83"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="129"/>
|
<location filename="../ui/mainwindow.cpp" line="132"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="370"/>
|
<location filename="../ui/mainwindow.cpp" line="373"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="596"/>
|
<location filename="../ui/mainwindow.cpp" line="599"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="616"/>
|
<location filename="../ui/mainwindow.cpp" line="619"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="629"/>
|
<location filename="../ui/mainwindow.cpp" line="632"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="648"/>
|
<location filename="../ui/mainwindow.cpp" line="651"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="661"/>
|
<location filename="../ui/mainwindow.cpp" line="664"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="688"/>
|
<location filename="../ui/mainwindow.cpp" line="691"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="701"/>
|
<location filename="../ui/mainwindow.cpp" line="704"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="893"/>
|
<location filename="../ui/mainwindow.cpp" line="896"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="918"/>
|
<location filename="../ui/mainwindow.cpp" line="921"/>
|
||||||
<source>Info</source>
|
<source>Info</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="129"/>
|
<location filename="../ui/mainwindow.cpp" line="132"/>
|
||||||
<source>Plz choose a port first</source>
|
<source>Plz choose a port first</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="201"/>
|
<location filename="../ui/mainwindow.cpp" line="204"/>
|
||||||
<source>Connected</source>
|
<source>Connected</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="207"/>
|
<location filename="../ui/mainwindow.cpp" line="210"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1003"/>
|
<location filename="../ui/mainwindow.cpp" line="1006"/>
|
||||||
<source>Not Connected</source>
|
<source>Not Connected</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="648"/>
|
<location filename="../ui/mainwindow.cpp" line="651"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="661"/>
|
<location filename="../ui/mainwindow.cpp" line="664"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="893"/>
|
<location filename="../ui/mainwindow.cpp" line="896"/>
|
||||||
<source>Failed to open</source>
|
<source>Failed to open</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="370"/>
|
<location filename="../ui/mainwindow.cpp" line="373"/>
|
||||||
<source>Continue?</source>
|
<source>Continue?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@ -1113,194 +1114,194 @@ or the communication between a tag and a reader.</source>
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="80"/>
|
<location filename="../ui/mainwindow.cpp" line="83"/>
|
||||||
<source>Failed to load config file</source>
|
<source>Failed to load config file</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="370"/>
|
<location filename="../ui/mainwindow.cpp" line="373"/>
|
||||||
<source>Some of the data and key will be cleared.</source>
|
<source>Some of the data and key will be cleared.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="483"/>
|
<location filename="../ui/mainwindow.cpp" line="486"/>
|
||||||
<source>Plz select the font of data widget and key widget</source>
|
<source>Plz select the font of data widget and key widget</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="596"/>
|
<location filename="../ui/mainwindow.cpp" line="599"/>
|
||||||
<source>Data must consists of 32 Hex symbols(Whitespace is allowed)</source>
|
<source>Data must consists of 32 Hex symbols(Whitespace is allowed)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="616"/>
|
<location filename="../ui/mainwindow.cpp" line="619"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="629"/>
|
<location filename="../ui/mainwindow.cpp" line="632"/>
|
||||||
<source>Key must consists of 12 Hex symbols(Whitespace is allowed)</source>
|
<source>Key must consists of 12 Hex symbols(Whitespace is allowed)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="641"/>
|
<location filename="../ui/mainwindow.cpp" line="644"/>
|
||||||
<source>Plz select the data file:</source>
|
<source>Plz select the data file:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="642"/>
|
<location filename="../ui/mainwindow.cpp" line="645"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="682"/>
|
<location filename="../ui/mainwindow.cpp" line="685"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="686"/>
|
<location filename="../ui/mainwindow.cpp" line="689"/>
|
||||||
<source>Binary Data Files(*.bin *.dump)</source>
|
<source>Binary Data Files(*.bin *.dump)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="642"/>
|
<location filename="../ui/mainwindow.cpp" line="645"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="655"/>
|
<location filename="../ui/mainwindow.cpp" line="658"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="880"/>
|
<location filename="../ui/mainwindow.cpp" line="883"/>
|
||||||
<source>All Files(*.*)</source>
|
<source>All Files(*.*)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="654"/>
|
<location filename="../ui/mainwindow.cpp" line="657"/>
|
||||||
<source>Plz select the key file:</source>
|
<source>Plz select the key file:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="681"/>
|
<location filename="../ui/mainwindow.cpp" line="684"/>
|
||||||
<source>Plz select the location to save data file:</source>
|
<source>Plz select the location to save data file:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="688"/>
|
<location filename="../ui/mainwindow.cpp" line="691"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="701"/>
|
<location filename="../ui/mainwindow.cpp" line="704"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="918"/>
|
<location filename="../ui/mainwindow.cpp" line="921"/>
|
||||||
<source>Failed to save to</source>
|
<source>Failed to save to</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="694"/>
|
<location filename="../ui/mainwindow.cpp" line="697"/>
|
||||||
<source>Plz select the location to save key file:</source>
|
<source>Plz select the location to save key file:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="655"/>
|
<location filename="../ui/mainwindow.cpp" line="658"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="695"/>
|
<location filename="../ui/mainwindow.cpp" line="698"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="699"/>
|
<location filename="../ui/mainwindow.cpp" line="702"/>
|
||||||
<source>Binary Key Files(*.bin *.dump)</source>
|
<source>Binary Key Files(*.bin *.dump)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="642"/>
|
<location filename="../ui/mainwindow.cpp" line="645"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="682"/>
|
<location filename="../ui/mainwindow.cpp" line="685"/>
|
||||||
<source>Text Data Files(*.txt *.eml)</source>
|
<source>Text Data Files(*.txt *.eml)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="820"/>
|
<location filename="../ui/mainwindow.cpp" line="823"/>
|
||||||
<source> Normally, the Block 0 of a typical Mifare card, which contains the UID, is locked during the manufacture. Users cannot write anything to Block 0 or set a new UID to a normal Mifare card.</source>
|
<source> Normally, the Block 0 of a typical Mifare card, which contains the UID, is locked during the manufacture. Users cannot write anything to Block 0 or set a new UID to a normal Mifare card.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="821"/>
|
<location filename="../ui/mainwindow.cpp" line="824"/>
|
||||||
<source> Chinese Magic Cards(aka UID Cards) are some special cards whose Block 0 are writeable. And you can change UID by writing to it.</source>
|
<source> Chinese Magic Cards(aka UID Cards) are some special cards whose Block 0 are writeable. And you can change UID by writing to it.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="823"/>
|
<location filename="../ui/mainwindow.cpp" line="826"/>
|
||||||
<source>There are two versions of Chinese Magic Cards, the Gen1 and the Gen2.</source>
|
<source>There are two versions of Chinese Magic Cards, the Gen1 and the Gen2.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="824"/>
|
<location filename="../ui/mainwindow.cpp" line="827"/>
|
||||||
<source> Gen1:</source>
|
<source> Gen1:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="824"/>
|
<location filename="../ui/mainwindow.cpp" line="827"/>
|
||||||
<source> also called UID card in China. It responses to some backdoor commands so you can access any blocks without password. The Proxmark3 has a bunch of related commands(csetblk, cgetblk, ...) to deal with this type of card, and my GUI also support these commands.</source>
|
<source> also called UID card in China. It responses to some backdoor commands so you can access any blocks without password. The Proxmark3 has a bunch of related commands(csetblk, cgetblk, ...) to deal with this type of card, and my GUI also support these commands.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="825"/>
|
<location filename="../ui/mainwindow.cpp" line="828"/>
|
||||||
<source> Gen2:</source>
|
<source> Gen2:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="825"/>
|
<location filename="../ui/mainwindow.cpp" line="828"/>
|
||||||
<source> doesn't response to the backdoor commands, which means that a reader cannot detect whether it is a Chinese Magic Card or not by sending backdoor commands.</source>
|
<source> doesn't response to the backdoor commands, which means that a reader cannot detect whether it is a Chinese Magic Card or not by sending backdoor commands.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="827"/>
|
<location filename="../ui/mainwindow.cpp" line="830"/>
|
||||||
<source>There are some types of Chinese Magic Card Gen2.</source>
|
<source>There are some types of Chinese Magic Card Gen2.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="828"/>
|
<location filename="../ui/mainwindow.cpp" line="831"/>
|
||||||
<source> CUID Card:</source>
|
<source> CUID Card:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="828"/>
|
<location filename="../ui/mainwindow.cpp" line="831"/>
|
||||||
<source> the Block 0 is writeable, you can write to this block repeatedly by normal wrbl command.</source>
|
<source> the Block 0 is writeable, you can write to this block repeatedly by normal wrbl command.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="829"/>
|
<location filename="../ui/mainwindow.cpp" line="832"/>
|
||||||
<source> (hf mf wrbl 0 A FFFFFFFFFFFF <the data you want to write>)</source>
|
<source> (hf mf wrbl 0 A FFFFFFFFFFFF <the data you want to write>)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="830"/>
|
<location filename="../ui/mainwindow.cpp" line="833"/>
|
||||||
<source> FUID Card:</source>
|
<source> FUID Card:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="830"/>
|
<location filename="../ui/mainwindow.cpp" line="833"/>
|
||||||
<source> you can only write to Block 0 once. After that, it seems like a typical Mifare card(Block 0 cannot be written to).</source>
|
<source> you can only write to Block 0 once. After that, it seems like a typical Mifare card(Block 0 cannot be written to).</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="831"/>
|
<location filename="../ui/mainwindow.cpp" line="834"/>
|
||||||
<source> (some readers might try changing the Block 0, which could detect the CUID Card. In that case, you should use FUID card.)</source>
|
<source> (some readers might try changing the Block 0, which could detect the CUID Card. In that case, you should use FUID card.)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="832"/>
|
<location filename="../ui/mainwindow.cpp" line="835"/>
|
||||||
<source> UFUID Card:</source>
|
<source> UFUID Card:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="832"/>
|
<location filename="../ui/mainwindow.cpp" line="835"/>
|
||||||
<source> It behaves like a CUID card(or UID card? I'm not sure) before you send some special command to lock it. Once it is locked, you cannot change its Block 0(just like a typical Mifare card).</source>
|
<source> It behaves like a CUID card(or UID card? I'm not sure) before you send some special command to lock it. Once it is locked, you cannot change its Block 0(just like a typical Mifare card).</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="834"/>
|
<location filename="../ui/mainwindow.cpp" line="837"/>
|
||||||
<source> Seemingly, these Chinese Magic Cards are more easily to be compromised by Nested Attack(it takes little time to get an unknown key).</source>
|
<source> Seemingly, these Chinese Magic Cards are more easily to be compromised by Nested Attack(it takes little time to get an unknown key).</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="879"/>
|
<location filename="../ui/mainwindow.cpp" line="882"/>
|
||||||
<source>Plz select the trace file:</source>
|
<source>Plz select the trace file:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="903"/>
|
<location filename="../ui/mainwindow.cpp" line="906"/>
|
||||||
<source>Plz select the location to save trace file:</source>
|
<source>Plz select the location to save trace file:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="880"/>
|
<location filename="../ui/mainwindow.cpp" line="883"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="904"/>
|
<location filename="../ui/mainwindow.cpp" line="907"/>
|
||||||
<source>Trace Files(*.trc)</source>
|
<source>Trace Files(*.trc)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1004"/>
|
<location filename="../ui/mainwindow.cpp" line="1007"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1176"/>
|
<location filename="../ui/mainwindow.cpp" line="1179"/>
|
||||||
<source>Idle</source>
|
<source>Idle</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1006"/>
|
<location filename="../ui/mainwindow.cpp" line="1009"/>
|
||||||
<source>Stop</source>
|
<source>Stop</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@ -1326,27 +1327,27 @@ or the communication between a tag and a reader.</source>
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1113"/>
|
<location filename="../ui/mainwindow.cpp" line="1116"/>
|
||||||
<source>HW Version:</source>
|
<source>HW Version:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1115"/>
|
<location filename="../ui/mainwindow.cpp" line="1118"/>
|
||||||
<source>PM3:</source>
|
<source>PM3:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1117"/>
|
<location filename="../ui/mainwindow.cpp" line="1120"/>
|
||||||
<source>State:</source>
|
<source>State:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1172"/>
|
<location filename="../ui/mainwindow.cpp" line="1175"/>
|
||||||
<source>Running</source>
|
<source>Running</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1299"/>
|
<location filename="../ui/mainwindow.cpp" line="1302"/>
|
||||||
<source>Actural Freq: </source>
|
<source>Actural Freq: </source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@ -1354,58 +1355,96 @@ or the communication between a tag and a reader.</source>
|
|||||||
<context>
|
<context>
|
||||||
<name>Mifare</name>
|
<name>Mifare</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="643"/>
|
<location filename="../module/mifare.cpp" line="642"/>
|
||||||
<source>Success!</source>
|
<source>Success!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="209"/>
|
<location filename="../module/mifare.cpp" line="208"/>
|
||||||
<location filename="../module/mifare.cpp" line="643"/>
|
<location filename="../module/mifare.cpp" line="642"/>
|
||||||
<location filename="../module/mifare.cpp" line="647"/>
|
<location filename="../module/mifare.cpp" line="646"/>
|
||||||
<location filename="../module/mifare.cpp" line="671"/>
|
<location filename="../module/mifare.cpp" line="670"/>
|
||||||
<location filename="../module/mifare.cpp" line="710"/>
|
<location filename="../module/mifare.cpp" line="709"/>
|
||||||
<location filename="../module/mifare.cpp" line="723"/>
|
<location filename="../module/mifare.cpp" line="722"/>
|
||||||
<location filename="../module/mifare.cpp" line="774"/>
|
<location filename="../module/mifare.cpp" line="773"/>
|
||||||
<source>Info</source>
|
<source>Info</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="209"/>
|
<location filename="../module/mifare.cpp" line="208"/>
|
||||||
<source>Plz provide at least one known key</source>
|
<source>Plz provide at least one known key</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="468"/>
|
<location filename="../module/mifare.cpp" line="467"/>
|
||||||
<location filename="../module/mifare.cpp" line="647"/>
|
<location filename="../module/mifare.cpp" line="646"/>
|
||||||
<source>Failed!</source>
|
<source>Failed!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="672"/>
|
<location filename="../module/mifare.cpp" line="671"/>
|
||||||
<source>The Access Bits is invalid!
|
<source>The Access Bits is invalid!
|
||||||
It could make the whole sector blocked irreversibly!
|
It could make the whole sector blocked irreversibly!
|
||||||
Continue to write?</source>
|
Continue to write?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="710"/>
|
<location filename="../module/mifare.cpp" line="709"/>
|
||||||
<source>Successful!</source>
|
<source>Successful!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="723"/>
|
<location filename="../module/mifare.cpp" line="722"/>
|
||||||
<source>Failed to write to these blocks:</source>
|
<source>Failed to write to these blocks:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="727"/>
|
<location filename="../module/mifare.cpp" line="726"/>
|
||||||
<source>Select them?</source>
|
<source>Select them?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="774"/>
|
<location filename="../module/mifare.cpp" line="773"/>
|
||||||
<source>Failed to read card.</source>
|
<source>Failed to read card.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>T55xxTab</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/t55xxtab.ui" line="17"/>
|
||||||
|
<source>Clone to T55xx</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/t55xxtab.ui" line="25"/>
|
||||||
|
<source>Target Type:</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/t55xxtab.ui" line="32"/>
|
||||||
|
<source>T5555</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/t55xxtab.ui" line="39"/>
|
||||||
|
<source>T55x7</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/t55xxtab.ui" line="64"/>
|
||||||
|
<source>EM410x</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/t55xxtab.ui" line="70"/>
|
||||||
|
<source>Read</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/t55xxtab.ui" line="80"/>
|
||||||
|
<source>Clone</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
Binary file not shown.
@ -500,7 +500,7 @@ It could make the whole sector blocked irreversibly!</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="914"/>
|
<location filename="../ui/mainwindow.ui" line="914"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="835"/>
|
<location filename="../ui/mainwindow.cpp" line="838"/>
|
||||||
<source>About UID Card</source>
|
<source>About UID Card</source>
|
||||||
<translation>关于UID卡</translation>
|
<translation>关于UID卡</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -708,6 +708,7 @@ or the communication between a tag and a reader.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="1883"/>
|
<location filename="../ui/mainwindow.ui" line="1883"/>
|
||||||
|
<location filename="../ui/mainwindow.cpp" line="44"/>
|
||||||
<source>T55xx</source>
|
<source>T55xx</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
@ -909,7 +910,7 @@ or the communication between a tag and a reader.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="2570"/>
|
<location filename="../ui/mainwindow.ui" line="2570"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="267"/>
|
<location filename="../ui/mainwindow.cpp" line="270"/>
|
||||||
<source>History:</source>
|
<source>History:</source>
|
||||||
<translation>命令历史:</translation>
|
<translation>命令历史:</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -1064,46 +1065,46 @@ or the communication between a tag and a reader.</source>
|
|||||||
<translation>图形化界面</translation>
|
<translation>图形化界面</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="80"/>
|
<location filename="../ui/mainwindow.cpp" line="83"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="129"/>
|
<location filename="../ui/mainwindow.cpp" line="132"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="370"/>
|
<location filename="../ui/mainwindow.cpp" line="373"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="596"/>
|
<location filename="../ui/mainwindow.cpp" line="599"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="616"/>
|
<location filename="../ui/mainwindow.cpp" line="619"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="629"/>
|
<location filename="../ui/mainwindow.cpp" line="632"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="648"/>
|
<location filename="../ui/mainwindow.cpp" line="651"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="661"/>
|
<location filename="../ui/mainwindow.cpp" line="664"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="688"/>
|
<location filename="../ui/mainwindow.cpp" line="691"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="701"/>
|
<location filename="../ui/mainwindow.cpp" line="704"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="893"/>
|
<location filename="../ui/mainwindow.cpp" line="896"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="918"/>
|
<location filename="../ui/mainwindow.cpp" line="921"/>
|
||||||
<source>Info</source>
|
<source>Info</source>
|
||||||
<translation>信息</translation>
|
<translation>信息</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="129"/>
|
<location filename="../ui/mainwindow.cpp" line="132"/>
|
||||||
<source>Plz choose a port first</source>
|
<source>Plz choose a port first</source>
|
||||||
<translation>请先选择端口</translation>
|
<translation>请先选择端口</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="201"/>
|
<location filename="../ui/mainwindow.cpp" line="204"/>
|
||||||
<source>Connected</source>
|
<source>Connected</source>
|
||||||
<translation>已连接</translation>
|
<translation>已连接</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="207"/>
|
<location filename="../ui/mainwindow.cpp" line="210"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1003"/>
|
<location filename="../ui/mainwindow.cpp" line="1006"/>
|
||||||
<source>Not Connected</source>
|
<source>Not Connected</source>
|
||||||
<translation>未连接</translation>
|
<translation>未连接</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="648"/>
|
<location filename="../ui/mainwindow.cpp" line="651"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="661"/>
|
<location filename="../ui/mainwindow.cpp" line="664"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="893"/>
|
<location filename="../ui/mainwindow.cpp" line="896"/>
|
||||||
<source>Failed to open</source>
|
<source>Failed to open</source>
|
||||||
<translation>无法打开</translation>
|
<translation>无法打开</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="370"/>
|
<location filename="../ui/mainwindow.cpp" line="373"/>
|
||||||
<source>Continue?</source>
|
<source>Continue?</source>
|
||||||
<translation>确定?</translation>
|
<translation>确定?</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -1123,82 +1124,82 @@ or the communication between a tag and a reader.</source>
|
|||||||
<translation>检查更新</translation>
|
<translation>检查更新</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="80"/>
|
<location filename="../ui/mainwindow.cpp" line="83"/>
|
||||||
<source>Failed to load config file</source>
|
<source>Failed to load config file</source>
|
||||||
<translation>无法打开配置文件</translation>
|
<translation>无法打开配置文件</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="370"/>
|
<location filename="../ui/mainwindow.cpp" line="373"/>
|
||||||
<source>Some of the data and key will be cleared.</source>
|
<source>Some of the data and key will be cleared.</source>
|
||||||
<translation>部分数据和密码将被清除</translation>
|
<translation>部分数据和密码将被清除</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="483"/>
|
<location filename="../ui/mainwindow.cpp" line="486"/>
|
||||||
<source>Plz select the font of data widget and key widget</source>
|
<source>Plz select the font of data widget and key widget</source>
|
||||||
<translation>请选择数据窗口和密钥窗口的字体</translation>
|
<translation>请选择数据窗口和密钥窗口的字体</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="596"/>
|
<location filename="../ui/mainwindow.cpp" line="599"/>
|
||||||
<source>Data must consists of 32 Hex symbols(Whitespace is allowed)</source>
|
<source>Data must consists of 32 Hex symbols(Whitespace is allowed)</source>
|
||||||
<translation>数据必须由32个十六进制字符组成(中间可含有空格)</translation>
|
<translation>数据必须由32个十六进制字符组成(中间可含有空格)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="616"/>
|
<location filename="../ui/mainwindow.cpp" line="619"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="629"/>
|
<location filename="../ui/mainwindow.cpp" line="632"/>
|
||||||
<source>Key must consists of 12 Hex symbols(Whitespace is allowed)</source>
|
<source>Key must consists of 12 Hex symbols(Whitespace is allowed)</source>
|
||||||
<translation>密钥必须由12个十六进制字符组成(中间可含有空格)</translation>
|
<translation>密钥必须由12个十六进制字符组成(中间可含有空格)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="641"/>
|
<location filename="../ui/mainwindow.cpp" line="644"/>
|
||||||
<source>Plz select the data file:</source>
|
<source>Plz select the data file:</source>
|
||||||
<translation>请选择数据文件:</translation>
|
<translation>请选择数据文件:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="642"/>
|
<location filename="../ui/mainwindow.cpp" line="645"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="682"/>
|
<location filename="../ui/mainwindow.cpp" line="685"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="686"/>
|
<location filename="../ui/mainwindow.cpp" line="689"/>
|
||||||
<source>Binary Data Files(*.bin *.dump)</source>
|
<source>Binary Data Files(*.bin *.dump)</source>
|
||||||
<translation>二进制数据文件(*.bin *.dump)</translation>
|
<translation>二进制数据文件(*.bin *.dump)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="642"/>
|
<location filename="../ui/mainwindow.cpp" line="645"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="655"/>
|
<location filename="../ui/mainwindow.cpp" line="658"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="880"/>
|
<location filename="../ui/mainwindow.cpp" line="883"/>
|
||||||
<source>All Files(*.*)</source>
|
<source>All Files(*.*)</source>
|
||||||
<translation>所有文件(*.*)</translation>
|
<translation>所有文件(*.*)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="654"/>
|
<location filename="../ui/mainwindow.cpp" line="657"/>
|
||||||
<source>Plz select the key file:</source>
|
<source>Plz select the key file:</source>
|
||||||
<translation>请选择密钥文件:</translation>
|
<translation>请选择密钥文件:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="681"/>
|
<location filename="../ui/mainwindow.cpp" line="684"/>
|
||||||
<source>Plz select the location to save data file:</source>
|
<source>Plz select the location to save data file:</source>
|
||||||
<translation>请选择数据文件保存的位置:</translation>
|
<translation>请选择数据文件保存的位置:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="688"/>
|
<location filename="../ui/mainwindow.cpp" line="691"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="701"/>
|
<location filename="../ui/mainwindow.cpp" line="704"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="918"/>
|
<location filename="../ui/mainwindow.cpp" line="921"/>
|
||||||
<source>Failed to save to</source>
|
<source>Failed to save to</source>
|
||||||
<translation>无法保存至</translation>
|
<translation>无法保存至</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="694"/>
|
<location filename="../ui/mainwindow.cpp" line="697"/>
|
||||||
<source>Plz select the location to save key file:</source>
|
<source>Plz select the location to save key file:</source>
|
||||||
<translation>请选择密钥文件保存的位置:</translation>
|
<translation>请选择密钥文件保存的位置:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="655"/>
|
<location filename="../ui/mainwindow.cpp" line="658"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="695"/>
|
<location filename="../ui/mainwindow.cpp" line="698"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="699"/>
|
<location filename="../ui/mainwindow.cpp" line="702"/>
|
||||||
<source>Binary Key Files(*.bin *.dump)</source>
|
<source>Binary Key Files(*.bin *.dump)</source>
|
||||||
<translation>二进制密码文件(*.bin *.dump)</translation>
|
<translation>二进制密码文件(*.bin *.dump)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="642"/>
|
<location filename="../ui/mainwindow.cpp" line="645"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="682"/>
|
<location filename="../ui/mainwindow.cpp" line="685"/>
|
||||||
<source>Text Data Files(*.txt *.eml)</source>
|
<source>Text Data Files(*.txt *.eml)</source>
|
||||||
<translation>文本数据文件(*.txt *.eml)</translation>
|
<translation>文本数据文件(*.txt *.eml)</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -1207,114 +1208,114 @@ or the communication between a tag and a reader.</source>
|
|||||||
<translation type="vanished">文本密码文件(*.txt *.eml)</translation>
|
<translation type="vanished">文本密码文件(*.txt *.eml)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="820"/>
|
<location filename="../ui/mainwindow.cpp" line="823"/>
|
||||||
<source> Normally, the Block 0 of a typical Mifare card, which contains the UID, is locked during the manufacture. Users cannot write anything to Block 0 or set a new UID to a normal Mifare card.</source>
|
<source> Normally, the Block 0 of a typical Mifare card, which contains the UID, is locked during the manufacture. Users cannot write anything to Block 0 or set a new UID to a normal Mifare card.</source>
|
||||||
<translation> 普通Mifare卡的块0无法写入,卡号也不能更改</translation>
|
<translation> 普通Mifare卡的块0无法写入,卡号也不能更改</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="821"/>
|
<location filename="../ui/mainwindow.cpp" line="824"/>
|
||||||
<source> Chinese Magic Cards(aka UID Cards) are some special cards whose Block 0 are writeable. And you can change UID by writing to it.</source>
|
<source> Chinese Magic Cards(aka UID Cards) are some special cards whose Block 0 are writeable. And you can change UID by writing to it.</source>
|
||||||
<translation> UID卡(在国外叫Chinese Magic Card)的块0可写,卡号可变。</translation>
|
<translation> UID卡(在国外叫Chinese Magic Card)的块0可写,卡号可变。</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="823"/>
|
<location filename="../ui/mainwindow.cpp" line="826"/>
|
||||||
<source>There are two versions of Chinese Magic Cards, the Gen1 and the Gen2.</source>
|
<source>There are two versions of Chinese Magic Cards, the Gen1 and the Gen2.</source>
|
||||||
<translation>国外把UID卡分为Chinese Magic Card Gen1和Gen2</translation>
|
<translation>国外把UID卡分为Chinese Magic Card Gen1和Gen2</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="824"/>
|
<location filename="../ui/mainwindow.cpp" line="827"/>
|
||||||
<source> Gen1:</source>
|
<source> Gen1:</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="824"/>
|
<location filename="../ui/mainwindow.cpp" line="827"/>
|
||||||
<source> also called UID card in China. It responses to some backdoor commands so you can access any blocks without password. The Proxmark3 has a bunch of related commands(csetblk, cgetblk, ...) to deal with this type of card, and my GUI also support these commands.</source>
|
<source> also called UID card in China. It responses to some backdoor commands so you can access any blocks without password. The Proxmark3 has a bunch of related commands(csetblk, cgetblk, ...) to deal with this type of card, and my GUI also support these commands.</source>
|
||||||
<translation> 指通常所说的UID卡,可以通过后门指令直接读写块而无需密码,在PM3和此GUI中有特殊命令处理这类卡片</translation>
|
<translation> 指通常所说的UID卡,可以通过后门指令直接读写块而无需密码,在PM3和此GUI中有特殊命令处理这类卡片</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="825"/>
|
<location filename="../ui/mainwindow.cpp" line="828"/>
|
||||||
<source> Gen2:</source>
|
<source> Gen2:</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="825"/>
|
<location filename="../ui/mainwindow.cpp" line="828"/>
|
||||||
<source> doesn't response to the backdoor commands, which means that a reader cannot detect whether it is a Chinese Magic Card or not by sending backdoor commands.</source>
|
<source> doesn't response to the backdoor commands, which means that a reader cannot detect whether it is a Chinese Magic Card or not by sending backdoor commands.</source>
|
||||||
<translation> 这个叫法在国内比较罕见,在国外指CUID/FUID/UFUID这类对后门指令不响应的卡(防火墙卡)</translation>
|
<translation> 这个叫法在国内比较罕见,在国外指CUID/FUID/UFUID这类对后门指令不响应的卡(防火墙卡)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="827"/>
|
<location filename="../ui/mainwindow.cpp" line="830"/>
|
||||||
<source>There are some types of Chinese Magic Card Gen2.</source>
|
<source>There are some types of Chinese Magic Card Gen2.</source>
|
||||||
<translation>以下是Gen2卡的详细介绍</translation>
|
<translation>以下是Gen2卡的详细介绍</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="828"/>
|
<location filename="../ui/mainwindow.cpp" line="831"/>
|
||||||
<source> CUID Card:</source>
|
<source> CUID Card:</source>
|
||||||
<translation> CUID卡:</translation>
|
<translation> CUID卡:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="828"/>
|
<location filename="../ui/mainwindow.cpp" line="831"/>
|
||||||
<source> the Block 0 is writeable, you can write to this block repeatedly by normal wrbl command.</source>
|
<source> the Block 0 is writeable, you can write to this block repeatedly by normal wrbl command.</source>
|
||||||
<translation> 可通过普通的写块命令来写块0,可重复擦写</translation>
|
<translation> 可通过普通的写块命令来写块0,可重复擦写</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="829"/>
|
<location filename="../ui/mainwindow.cpp" line="832"/>
|
||||||
<source> (hf mf wrbl 0 A FFFFFFFFFFFF <the data you want to write>)</source>
|
<source> (hf mf wrbl 0 A FFFFFFFFFFFF <the data you want to write>)</source>
|
||||||
<translation> (hf mf wrbl 0 A FFFFFFFFFFFF <待写入数据>)</translation>
|
<translation> (hf mf wrbl 0 A FFFFFFFFFFFF <待写入数据>)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="830"/>
|
<location filename="../ui/mainwindow.cpp" line="833"/>
|
||||||
<source> FUID Card:</source>
|
<source> FUID Card:</source>
|
||||||
<translation> FUID卡:</translation>
|
<translation> FUID卡:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="830"/>
|
<location filename="../ui/mainwindow.cpp" line="833"/>
|
||||||
<source> you can only write to Block 0 once. After that, it seems like a typical Mifare card(Block 0 cannot be written to).</source>
|
<source> you can only write to Block 0 once. After that, it seems like a typical Mifare card(Block 0 cannot be written to).</source>
|
||||||
<translation> 块0只能写入一次</translation>
|
<translation> 块0只能写入一次</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="831"/>
|
<location filename="../ui/mainwindow.cpp" line="834"/>
|
||||||
<source> (some readers might try changing the Block 0, which could detect the CUID Card. In that case, you should use FUID card.)</source>
|
<source> (some readers might try changing the Block 0, which could detect the CUID Card. In that case, you should use FUID card.)</source>
|
||||||
<translation> (更高级的穿防火墙卡,可以过一些能识别出CUID卡的读卡器)</translation>
|
<translation> (更高级的穿防火墙卡,可以过一些能识别出CUID卡的读卡器)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="832"/>
|
<location filename="../ui/mainwindow.cpp" line="835"/>
|
||||||
<source> UFUID Card:</source>
|
<source> UFUID Card:</source>
|
||||||
<translation> UFUID卡:</translation>
|
<translation> UFUID卡:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="832"/>
|
<location filename="../ui/mainwindow.cpp" line="835"/>
|
||||||
<source> It behaves like a CUID card(or UID card? I'm not sure) before you send some special command to lock it. Once it is locked, you cannot change its Block 0(just like a typical Mifare card).</source>
|
<source> It behaves like a CUID card(or UID card? I'm not sure) before you send some special command to lock it. Once it is locked, you cannot change its Block 0(just like a typical Mifare card).</source>
|
||||||
<translation> 锁卡前和普通UID/CUID卡一样可以反复读写块0,用特殊命令锁卡后就和FUID卡一样了</translation>
|
<translation> 锁卡前和普通UID/CUID卡一样可以反复读写块0,用特殊命令锁卡后就和FUID卡一样了</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="834"/>
|
<location filename="../ui/mainwindow.cpp" line="837"/>
|
||||||
<source> Seemingly, these Chinese Magic Cards are more easily to be compromised by Nested Attack(it takes little time to get an unknown key).</source>
|
<source> Seemingly, these Chinese Magic Cards are more easily to be compromised by Nested Attack(it takes little time to get an unknown key).</source>
|
||||||
<translation> 所有UID卡都似乎更容易被Nested攻击破解</translation>
|
<translation> 所有UID卡都似乎更容易被Nested攻击破解</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="879"/>
|
<location filename="../ui/mainwindow.cpp" line="882"/>
|
||||||
<source>Plz select the trace file:</source>
|
<source>Plz select the trace file:</source>
|
||||||
<translation>请选择trace文件:</translation>
|
<translation>请选择trace文件:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="903"/>
|
<location filename="../ui/mainwindow.cpp" line="906"/>
|
||||||
<source>Plz select the location to save trace file:</source>
|
<source>Plz select the location to save trace file:</source>
|
||||||
<translation>请选择trace文件保存的位置:</translation>
|
<translation>请选择trace文件保存的位置:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="880"/>
|
<location filename="../ui/mainwindow.cpp" line="883"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="904"/>
|
<location filename="../ui/mainwindow.cpp" line="907"/>
|
||||||
<source>Trace Files(*.trc)</source>
|
<source>Trace Files(*.trc)</source>
|
||||||
<translation>Trace文件(*.trc)</translation>
|
<translation>Trace文件(*.trc)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1004"/>
|
<location filename="../ui/mainwindow.cpp" line="1007"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1176"/>
|
<location filename="../ui/mainwindow.cpp" line="1179"/>
|
||||||
<source>Idle</source>
|
<source>Idle</source>
|
||||||
<translation>空闲</translation>
|
<translation>空闲</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1006"/>
|
<location filename="../ui/mainwindow.cpp" line="1009"/>
|
||||||
<source>Stop</source>
|
<source>Stop</source>
|
||||||
<translation>停止</translation>
|
<translation>停止</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -1340,27 +1341,27 @@ or the communication between a tag and a reader.</source>
|
|||||||
<translation>密钥B</translation>
|
<translation>密钥B</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1113"/>
|
<location filename="../ui/mainwindow.cpp" line="1116"/>
|
||||||
<source>HW Version:</source>
|
<source>HW Version:</source>
|
||||||
<translation>固件版本:</translation>
|
<translation>固件版本:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1115"/>
|
<location filename="../ui/mainwindow.cpp" line="1118"/>
|
||||||
<source>PM3:</source>
|
<source>PM3:</source>
|
||||||
<translation>连接状态:</translation>
|
<translation>连接状态:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1117"/>
|
<location filename="../ui/mainwindow.cpp" line="1120"/>
|
||||||
<source>State:</source>
|
<source>State:</source>
|
||||||
<translation>运行状态:</translation>
|
<translation>运行状态:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1172"/>
|
<location filename="../ui/mainwindow.cpp" line="1175"/>
|
||||||
<source>Running</source>
|
<source>Running</source>
|
||||||
<translation>正在运行</translation>
|
<translation>正在运行</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1299"/>
|
<location filename="../ui/mainwindow.cpp" line="1302"/>
|
||||||
<source>Actural Freq: </source>
|
<source>Actural Freq: </source>
|
||||||
<translation>实际频率: </translation>
|
<translation>实际频率: </translation>
|
||||||
</message>
|
</message>
|
||||||
@ -1368,34 +1369,34 @@ or the communication between a tag and a reader.</source>
|
|||||||
<context>
|
<context>
|
||||||
<name>Mifare</name>
|
<name>Mifare</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="643"/>
|
<location filename="../module/mifare.cpp" line="642"/>
|
||||||
<source>Success!</source>
|
<source>Success!</source>
|
||||||
<translation>成功!</translation>
|
<translation>成功!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="209"/>
|
<location filename="../module/mifare.cpp" line="208"/>
|
||||||
<location filename="../module/mifare.cpp" line="643"/>
|
<location filename="../module/mifare.cpp" line="642"/>
|
||||||
<location filename="../module/mifare.cpp" line="647"/>
|
<location filename="../module/mifare.cpp" line="646"/>
|
||||||
<location filename="../module/mifare.cpp" line="671"/>
|
<location filename="../module/mifare.cpp" line="670"/>
|
||||||
<location filename="../module/mifare.cpp" line="710"/>
|
<location filename="../module/mifare.cpp" line="709"/>
|
||||||
<location filename="../module/mifare.cpp" line="723"/>
|
<location filename="../module/mifare.cpp" line="722"/>
|
||||||
<location filename="../module/mifare.cpp" line="774"/>
|
<location filename="../module/mifare.cpp" line="773"/>
|
||||||
<source>Info</source>
|
<source>Info</source>
|
||||||
<translation>信息</translation>
|
<translation>信息</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="209"/>
|
<location filename="../module/mifare.cpp" line="208"/>
|
||||||
<source>Plz provide at least one known key</source>
|
<source>Plz provide at least one known key</source>
|
||||||
<translation>请至少提供一个已知密码</translation>
|
<translation>请至少提供一个已知密码</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="468"/>
|
<location filename="../module/mifare.cpp" line="467"/>
|
||||||
<location filename="../module/mifare.cpp" line="647"/>
|
<location filename="../module/mifare.cpp" line="646"/>
|
||||||
<source>Failed!</source>
|
<source>Failed!</source>
|
||||||
<translation>失败!</translation>
|
<translation>失败!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="672"/>
|
<location filename="../module/mifare.cpp" line="671"/>
|
||||||
<source>The Access Bits is invalid!
|
<source>The Access Bits is invalid!
|
||||||
It could make the whole sector blocked irreversibly!
|
It could make the whole sector blocked irreversibly!
|
||||||
Continue to write?</source>
|
Continue to write?</source>
|
||||||
@ -1404,24 +1405,62 @@ Continue to write?</source>
|
|||||||
确定要写入吗?</translation>
|
确定要写入吗?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="710"/>
|
<location filename="../module/mifare.cpp" line="709"/>
|
||||||
<source>Successful!</source>
|
<source>Successful!</source>
|
||||||
<translation>成功!</translation>
|
<translation>成功!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="723"/>
|
<location filename="../module/mifare.cpp" line="722"/>
|
||||||
<source>Failed to write to these blocks:</source>
|
<source>Failed to write to these blocks:</source>
|
||||||
<translation>写入以下块失败:</translation>
|
<translation>写入以下块失败:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="727"/>
|
<location filename="../module/mifare.cpp" line="726"/>
|
||||||
<source>Select them?</source>
|
<source>Select them?</source>
|
||||||
<translation>选中这些块?</translation>
|
<translation>选中这些块?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="774"/>
|
<location filename="../module/mifare.cpp" line="773"/>
|
||||||
<source>Failed to read card.</source>
|
<source>Failed to read card.</source>
|
||||||
<translation>读卡失败。</translation>
|
<translation>读卡失败。</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>T55xxTab</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/t55xxtab.ui" line="17"/>
|
||||||
|
<source>Clone to T55xx</source>
|
||||||
|
<translation>复制到T55xx卡</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/t55xxtab.ui" line="25"/>
|
||||||
|
<source>Target Type:</source>
|
||||||
|
<translation>目标卡片类型:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/t55xxtab.ui" line="32"/>
|
||||||
|
<source>T5555</source>
|
||||||
|
<translation></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/t55xxtab.ui" line="39"/>
|
||||||
|
<source>T55x7</source>
|
||||||
|
<translation></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/t55xxtab.ui" line="64"/>
|
||||||
|
<source>EM410x</source>
|
||||||
|
<translation></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/t55xxtab.ui" line="70"/>
|
||||||
|
<source>Read</source>
|
||||||
|
<translation>读卡</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/t55xxtab.ui" line="80"/>
|
||||||
|
<source>Clone</source>
|
||||||
|
<translation>复制</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
@ -154,5 +154,4 @@ void LF::syncWithUI()
|
|||||||
void LF::setConfigMap(const QVariantMap& configMap)
|
void LF::setConfigMap(const QVariantMap& configMap)
|
||||||
{
|
{
|
||||||
this->configMap = configMap;
|
this->configMap = configMap;
|
||||||
qDebug() << configMap;
|
|
||||||
}
|
}
|
||||||
|
@ -91,7 +91,6 @@ Mifare::Mifare(Ui::MainWindow *ui, Util *addr, QWidget *parent): QObject(parent)
|
|||||||
void Mifare::setConfigMap(const QVariantMap& configMap)
|
void Mifare::setConfigMap(const QVariantMap& configMap)
|
||||||
{
|
{
|
||||||
this->configMap = configMap;
|
this->configMap = configMap;
|
||||||
qDebug() << configMap;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QMap<QString, QString> Mifare::info(bool isRequiringOutput)
|
QMap<QString, QString> Mifare::info(bool isRequiringOutput)
|
||||||
|
@ -1,14 +1,68 @@
|
|||||||
#include "t55xxtab.h"
|
#include "t55xxtab.h"
|
||||||
#include "ui_t55xxtab.h"
|
#include "ui_t55xxtab.h"
|
||||||
|
|
||||||
T55xxTab::T55xxTab(QWidget *parent) :
|
T55xxTab::T55xxTab(Util *addr, QWidget *parent) :
|
||||||
QWidget(parent),
|
QWidget(parent),
|
||||||
ui(new Ui::T55xxTab)
|
ui(new Ui::T55xxTab)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
util = addr;
|
||||||
}
|
}
|
||||||
|
|
||||||
T55xxTab::~T55xxTab()
|
T55xxTab::~T55xxTab()
|
||||||
{
|
{
|
||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void T55xxTab::setConfigMap(const QVariantMap &configMap)
|
||||||
|
{
|
||||||
|
this->configMap = configMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
void T55xxTab::setGUIState(bool st)
|
||||||
|
{
|
||||||
|
ui->cloneGroupBox->setEnabled(st);
|
||||||
|
emit setParentGUIState(st);
|
||||||
|
}
|
||||||
|
|
||||||
|
void T55xxTab::on_Clone_EM410xReadButton_clicked()
|
||||||
|
{
|
||||||
|
setGUIState(false);
|
||||||
|
|
||||||
|
QVariantMap config = configMap["clone em410x"].toMap();
|
||||||
|
QString result;
|
||||||
|
QRegularExpressionMatch reMatch;
|
||||||
|
|
||||||
|
result = util->execCMDWithOutput(
|
||||||
|
config["read"].toString(),
|
||||||
|
Util::ReturnTrigger(6000, {config["successful read flag"].toString()}));
|
||||||
|
if(result.isEmpty())
|
||||||
|
{
|
||||||
|
setGUIState(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
reMatch = QRegularExpression(config["pattern"].toString()).match(result);
|
||||||
|
ui->Clone_EM410xIDEdit->setText(reMatch.captured());
|
||||||
|
|
||||||
|
setGUIState(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void T55xxTab::on_Clone_EM410xCloneButton_clicked()
|
||||||
|
{
|
||||||
|
if(ui->Clone_EM410xIDEdit->text().isEmpty())
|
||||||
|
return;
|
||||||
|
setGUIState(false);
|
||||||
|
|
||||||
|
QVariantMap config = configMap["clone em410x"].toMap();
|
||||||
|
QString cmd = config["clone cmd"].toString();
|
||||||
|
cmd.replace("<id>", ui->Clone_EM410xIDEdit->text());
|
||||||
|
if(ui->Clone_T5555Button->isChecked())
|
||||||
|
cmd.replace("<type>", config["t5555 flag"].toString());
|
||||||
|
else
|
||||||
|
cmd.replace("<type>", config["t55x7 flag"].toString());
|
||||||
|
util->execCMD(cmd);
|
||||||
|
Util::gotoRawTab();
|
||||||
|
|
||||||
|
setGUIState(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
#ifndef T55XXTAB_H
|
#ifndef T55XXTAB_H
|
||||||
#define T55XXTAB_H
|
#define T55XXTAB_H
|
||||||
|
|
||||||
|
#include "common/util.h"
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui
|
||||||
|
{
|
||||||
class T55xxTab;
|
class T55xxTab;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -12,11 +14,23 @@ class T55xxTab : public QWidget
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit T55xxTab(QWidget *parent = nullptr);
|
explicit T55xxTab(Util *addr, QWidget *parent = nullptr);
|
||||||
~T55xxTab();
|
~T55xxTab();
|
||||||
|
|
||||||
|
void setConfigMap(const QVariantMap& configMap);
|
||||||
|
private slots:
|
||||||
|
void on_Clone_EM410xReadButton_clicked();
|
||||||
|
|
||||||
|
void on_Clone_EM410xCloneButton_clicked();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::T55xxTab *ui;
|
Ui::T55xxTab *ui;
|
||||||
|
Util* util;
|
||||||
|
QVariantMap configMap;
|
||||||
|
|
||||||
|
void setGUIState(bool st);
|
||||||
|
signals:
|
||||||
|
void setParentGUIState(bool st);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // T55XXTAB_H
|
#endif // T55XXTAB_H
|
||||||
|
@ -39,13 +39,16 @@ MainWindow::MainWindow(QWidget *parent):
|
|||||||
Util::setUI(ui);
|
Util::setUI(ui);
|
||||||
mifare = new Mifare(ui, util, this);
|
mifare = new Mifare(ui, util, this);
|
||||||
lf = new LF(ui, util, this);
|
lf = new LF(ui, util, this);
|
||||||
|
t55xxTab = new T55xxTab(util);
|
||||||
|
connect(t55xxTab, &T55xxTab::setParentGUIState, this, &MainWindow::setState);
|
||||||
|
ui->funcTab->insertTab(2, t55xxTab, tr("T55xx"));
|
||||||
|
|
||||||
keyEventFilter = new MyEventFilter(QEvent::KeyPress);
|
keyEventFilter = new MyEventFilter(QEvent::KeyPress);
|
||||||
resizeEventFilter = new MyEventFilter(QEvent::Resize);
|
resizeEventFilter = new MyEventFilter(QEvent::Resize);
|
||||||
|
|
||||||
// hide unused tabs
|
// hide unused tabs
|
||||||
// ui->funcTab->removeTab(1);
|
// ui->funcTab->removeTab(1);
|
||||||
ui->funcTab->removeTab(2);
|
ui->funcTab->removeTab(3);
|
||||||
|
|
||||||
portSearchTimer = new QTimer(this);
|
portSearchTimer = new QTimer(this);
|
||||||
portSearchTimer->setInterval(2000);
|
portSearchTimer->setInterval(2000);
|
||||||
@ -85,7 +88,7 @@ void MainWindow::loadConfig()
|
|||||||
QJsonDocument configJson(QJsonDocument::fromJson(configData));
|
QJsonDocument configJson(QJsonDocument::fromJson(configData));
|
||||||
mifare->setConfigMap(configJson.object()["mifare classic"].toObject().toVariantMap());
|
mifare->setConfigMap(configJson.object()["mifare classic"].toObject().toVariantMap());
|
||||||
lf->setConfigMap(configJson.object()["lf"].toObject().toVariantMap());
|
lf->setConfigMap(configJson.object()["lf"].toObject().toVariantMap());
|
||||||
|
t55xxTab->setConfigMap(configJson.object()["t55xx"].toObject().toVariantMap());
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::initUI() // will be called by main.app
|
void MainWindow::initUI() // will be called by main.app
|
||||||
@ -636,7 +639,7 @@ void MainWindow::on_MF_File_loadButton_clicked()
|
|||||||
{
|
{
|
||||||
QString title = "";
|
QString title = "";
|
||||||
QString filename = "";
|
QString filename = "";
|
||||||
if(ui->MF_File_dataBox->isChecked())
|
if(ui->MF_File_dataButton->isChecked())
|
||||||
{
|
{
|
||||||
title = tr("Plz select the data file:");
|
title = tr("Plz select the data file:");
|
||||||
filename = QFileDialog::getOpenFileName(this, title, "./", tr("Binary Data Files(*.bin *.dump)") + ";;" + tr("Text Data Files(*.txt *.eml)") + ";;" + tr("All Files(*.*)"));
|
filename = QFileDialog::getOpenFileName(this, title, "./", tr("Binary Data Files(*.bin *.dump)") + ";;" + tr("Text Data Files(*.txt *.eml)") + ";;" + tr("All Files(*.*)"));
|
||||||
@ -649,7 +652,7 @@ void MainWindow::on_MF_File_loadButton_clicked()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(ui->MF_File_keyBox->isChecked())
|
else if(ui->MF_File_keyButton->isChecked())
|
||||||
{
|
{
|
||||||
title = tr("Plz select the key file:");
|
title = tr("Plz select the key file:");
|
||||||
filename = QFileDialog::getOpenFileName(this, title, "./", tr("Binary Key Files(*.bin *.dump)") + ";;" + tr("All Files(*.*)"));
|
filename = QFileDialog::getOpenFileName(this, title, "./", tr("Binary Key Files(*.bin *.dump)") + ";;" + tr("All Files(*.*)"));
|
||||||
@ -676,7 +679,7 @@ void MainWindow::on_MF_File_saveButton_clicked()
|
|||||||
defaultName += "_";
|
defaultName += "_";
|
||||||
defaultName += QDateTime::currentDateTime().toString("yyyy-MM-dd-hh-mm-ss");
|
defaultName += QDateTime::currentDateTime().toString("yyyy-MM-dd-hh-mm-ss");
|
||||||
|
|
||||||
if(ui->MF_File_dataBox->isChecked())
|
if(ui->MF_File_dataButton->isChecked())
|
||||||
{
|
{
|
||||||
title = tr("Plz select the location to save data file:");
|
title = tr("Plz select the location to save data file:");
|
||||||
filename = QFileDialog::getSaveFileName(this, title, "./data_" + defaultName, tr("Binary Data Files(*.bin *.dump)") + ";;" + tr("Text Data Files(*.txt *.eml)"), &selectedType);
|
filename = QFileDialog::getSaveFileName(this, title, "./data_" + defaultName, tr("Binary Data Files(*.bin *.dump)") + ";;" + tr("Text Data Files(*.txt *.eml)"), &selectedType);
|
||||||
@ -689,7 +692,7 @@ void MainWindow::on_MF_File_saveButton_clicked()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(ui->MF_File_keyBox->isChecked())
|
else if(ui->MF_File_keyButton->isChecked())
|
||||||
{
|
{
|
||||||
title = tr("Plz select the location to save key file:");
|
title = tr("Plz select the location to save key file:");
|
||||||
filename = QFileDialog::getSaveFileName(this, title, "./key_" + defaultName, tr("Binary Key Files(*.bin *.dump)"), &selectedType);
|
filename = QFileDialog::getSaveFileName(this, title, "./key_" + defaultName, tr("Binary Key Files(*.bin *.dump)"), &selectedType);
|
||||||
@ -707,12 +710,12 @@ void MainWindow::on_MF_File_saveButton_clicked()
|
|||||||
|
|
||||||
void MainWindow::on_MF_File_clearButton_clicked()
|
void MainWindow::on_MF_File_clearButton_clicked()
|
||||||
{
|
{
|
||||||
if(ui->MF_File_keyBox->isChecked())
|
if(ui->MF_File_keyButton->isChecked())
|
||||||
{
|
{
|
||||||
mifare->data_clearKey();
|
mifare->data_clearKey();
|
||||||
mifare->data_syncWithKeyWidget();
|
mifare->data_syncWithKeyWidget();
|
||||||
}
|
}
|
||||||
else if(ui->MF_File_dataBox->isChecked())
|
else if(ui->MF_File_keyButton->isChecked())
|
||||||
{
|
{
|
||||||
mifare->data_clearData();
|
mifare->data_clearData();
|
||||||
mifare->data_syncWithDataWidget();
|
mifare->data_syncWithDataWidget();
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
#include "common/pm3process.h"
|
#include "common/pm3process.h"
|
||||||
#include "module/mifare.h"
|
#include "module/mifare.h"
|
||||||
#include "module/lf.h"
|
#include "module/lf.h"
|
||||||
|
#include "module/t55xxtab.h"
|
||||||
#include "common/util.h"
|
#include "common/util.h"
|
||||||
#include "ui/mf_trailerdecoderdialog.h"
|
#include "ui/mf_trailerdecoderdialog.h"
|
||||||
|
|
||||||
@ -205,6 +206,7 @@ private slots:
|
|||||||
|
|
||||||
void on_Set_Client_configPathEdit_editingFinished();
|
void on_Set_Client_configPathEdit_editingFinished();
|
||||||
|
|
||||||
|
void setState(bool st);
|
||||||
private:
|
private:
|
||||||
Ui::MainWindow* ui;
|
Ui::MainWindow* ui;
|
||||||
QButtonGroup* MFCardTypeBtnGroup;
|
QButtonGroup* MFCardTypeBtnGroup;
|
||||||
@ -235,6 +237,7 @@ private:
|
|||||||
QStringList clientEnv;
|
QStringList clientEnv;
|
||||||
QDir* clientWorkingDir;
|
QDir* clientWorkingDir;
|
||||||
|
|
||||||
|
T55xxTab* t55xxTab;
|
||||||
Mifare* mifare;
|
Mifare* mifare;
|
||||||
LF* lf;
|
LF* lf;
|
||||||
Util* util;
|
Util* util;
|
||||||
@ -247,7 +250,6 @@ private:
|
|||||||
void signalInit();
|
void signalInit();
|
||||||
void MF_widgetReset();
|
void MF_widgetReset();
|
||||||
void setTableItem(QTableWidget *widget, int row, int column, const QString& text);
|
void setTableItem(QTableWidget *widget, int row, int column, const QString& text);
|
||||||
void setState(bool st);
|
|
||||||
void saveClientPath(const QString& path);
|
void saveClientPath(const QString& path);
|
||||||
void onLFfreqConfChanged(int value, bool isCustomized);
|
void onLFfreqConfChanged(int value, bool isCustomized);
|
||||||
void dockInit();
|
void dockInit();
|
||||||
|
@ -136,7 +136,7 @@
|
|||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>2</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="mifareTab">
|
<widget class="QWidget" name="mifareTab">
|
||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
@ -524,7 +524,7 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QRadioButton" name="MF_File_dataBox">
|
<widget class="QRadioButton" name="MF_File_dataButton">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Data</string>
|
<string>Data</string>
|
||||||
</property>
|
</property>
|
||||||
@ -534,7 +534,7 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QRadioButton" name="MF_File_keyBox">
|
<widget class="QRadioButton" name="MF_File_keyButton">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Key</string>
|
<string>Key</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
<author/>
|
|
||||||
<comment/>
|
|
||||||
<exportmacro/>
|
|
||||||
<class>T55xxTab</class>
|
<class>T55xxTab</class>
|
||||||
<widget class="QWidget" name="T55xxTab">
|
<widget class="QWidget" name="T55xxTab">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
@ -12,10 +10,98 @@
|
|||||||
<height>300</height>
|
<height>300</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<layout class="QVBoxLayout">
|
||||||
<string>Form</string>
|
<item>
|
||||||
|
<widget class="QGroupBox" name="cloneGroupBox">
|
||||||
|
<property name="title">
|
||||||
|
<string>Clone to T55xx</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="text">
|
||||||
|
<string>Target Type:</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<pixmapfunction/>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="Clone_T5555Button">
|
||||||
|
<property name="text">
|
||||||
|
<string>T5555</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="Clone_T55x7Button">
|
||||||
|
<property name="text">
|
||||||
|
<string>T55x7</string>
|
||||||
|
</property>
|
||||||
|
<property name="checked">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="Clone_EM410xGroupBox">
|
||||||
|
<property name="title">
|
||||||
|
<string>EM410x</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="Clone_EM410xReadButton">
|
||||||
|
<property name="text">
|
||||||
|
<string>Read</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLineEdit" name="Clone_EM410xIDEdit"/>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="Clone_EM410xCloneButton">
|
||||||
|
<property name="text">
|
||||||
|
<string>Clone</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
<connections/>
|
<connections/>
|
||||||
</ui>
|
</ui>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user