mirror of
https://github.com/wh201906/Proxmark3GUI.git
synced 2025-02-28 20:11:31 +08:00
EM410x clone support
This commit is contained in:
parent
f86cba8d56
commit
1e728c891c
3
.gitignore
vendored
3
.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>",
|
||||
"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>",
|
||||
"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;
|
||||
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)
|
||||
|
@ -536,7 +536,7 @@ It could make the whole sector blocked irreversibly!</source>
|
||||
</message>
|
||||
<message>
|
||||
<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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -738,6 +738,7 @@ or the communication between a tag and a reader.</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1883"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="44"/>
|
||||
<source>T55xx</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -939,7 +940,7 @@ or the communication between a tag and a reader.</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="2570"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="267"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="270"/>
|
||||
<source>History:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -1054,46 +1055,46 @@ or the communication between a tag and a reader.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="80"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="129"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="370"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="596"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="616"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="629"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="648"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="661"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="688"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="701"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="893"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="918"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="83"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="132"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="373"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="599"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="619"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="632"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="651"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="664"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="691"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="704"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="896"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="921"/>
|
||||
<source>Info</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="129"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="132"/>
|
||||
<source>Plz choose a port first</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="201"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="204"/>
|
||||
<source>Connected</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="207"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="1003"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="210"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="1006"/>
|
||||
<source>Not Connected</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="648"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="661"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="893"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="651"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="664"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="896"/>
|
||||
<source>Failed to open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="370"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="373"/>
|
||||
<source>Continue?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -1113,194 +1114,194 @@ or the communication between a tag and a reader.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="80"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="83"/>
|
||||
<source>Failed to load config file</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="616"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="629"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="619"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="632"/>
|
||||
<source>Key must consists of 12 Hex symbols(Whitespace is allowed)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="641"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="644"/>
|
||||
<source>Plz select the data file:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="642"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="682"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="686"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="645"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="685"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="689"/>
|
||||
<source>Binary Data Files(*.bin *.dump)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="642"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="655"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="880"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="645"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="658"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="883"/>
|
||||
<source>All Files(*.*)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="654"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="657"/>
|
||||
<source>Plz select the key file:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="688"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="701"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="918"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="691"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="704"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="921"/>
|
||||
<source>Failed to save to</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="655"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="695"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="699"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="658"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="698"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="702"/>
|
||||
<source>Binary Key Files(*.bin *.dump)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="642"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="682"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="645"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="685"/>
|
||||
<source>Text Data Files(*.txt *.eml)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="824"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="827"/>
|
||||
<source> Gen1:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="825"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="828"/>
|
||||
<source> Gen2:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="828"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="831"/>
|
||||
<source> CUID Card:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="830"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="833"/>
|
||||
<source> FUID Card:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="832"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="835"/>
|
||||
<source> UFUID Card:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="879"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="882"/>
|
||||
<source>Plz select the trace file:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="880"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="904"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="883"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="907"/>
|
||||
<source>Trace Files(*.trc)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="1004"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="1176"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="1007"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="1179"/>
|
||||
<source>Idle</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="1006"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="1009"/>
|
||||
<source>Stop</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -1326,27 +1327,27 @@ or the communication between a tag and a reader.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="1113"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="1116"/>
|
||||
<source>HW Version:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="1115"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="1118"/>
|
||||
<source>PM3:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="1117"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="1120"/>
|
||||
<source>State:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="1172"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="1175"/>
|
||||
<source>Running</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="1299"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="1302"/>
|
||||
<source>Actural Freq: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -1354,58 +1355,96 @@ or the communication between a tag and a reader.</source>
|
||||
<context>
|
||||
<name>Mifare</name>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="643"/>
|
||||
<location filename="../module/mifare.cpp" line="642"/>
|
||||
<source>Success!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="209"/>
|
||||
<location filename="../module/mifare.cpp" line="643"/>
|
||||
<location filename="../module/mifare.cpp" line="647"/>
|
||||
<location filename="../module/mifare.cpp" line="671"/>
|
||||
<location filename="../module/mifare.cpp" line="710"/>
|
||||
<location filename="../module/mifare.cpp" line="723"/>
|
||||
<location filename="../module/mifare.cpp" line="774"/>
|
||||
<location filename="../module/mifare.cpp" line="208"/>
|
||||
<location filename="../module/mifare.cpp" line="642"/>
|
||||
<location filename="../module/mifare.cpp" line="646"/>
|
||||
<location filename="../module/mifare.cpp" line="670"/>
|
||||
<location filename="../module/mifare.cpp" line="709"/>
|
||||
<location filename="../module/mifare.cpp" line="722"/>
|
||||
<location filename="../module/mifare.cpp" line="773"/>
|
||||
<source>Info</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="468"/>
|
||||
<location filename="../module/mifare.cpp" line="647"/>
|
||||
<location filename="../module/mifare.cpp" line="467"/>
|
||||
<location filename="../module/mifare.cpp" line="646"/>
|
||||
<source>Failed!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="672"/>
|
||||
<location filename="../module/mifare.cpp" line="671"/>
|
||||
<source>The Access Bits is invalid!
|
||||
It could make the whole sector blocked irreversibly!
|
||||
Continue to write?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="710"/>
|
||||
<location filename="../module/mifare.cpp" line="709"/>
|
||||
<source>Successful!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="723"/>
|
||||
<location filename="../module/mifare.cpp" line="722"/>
|
||||
<source>Failed to write to these blocks:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="727"/>
|
||||
<location filename="../module/mifare.cpp" line="726"/>
|
||||
<source>Select them?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="774"/>
|
||||
<location filename="../module/mifare.cpp" line="773"/>
|
||||
<source>Failed to read card.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</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>
|
||||
|
Binary file not shown.
@ -500,7 +500,7 @@ It could make the whole sector blocked irreversibly!</source>
|
||||
</message>
|
||||
<message>
|
||||
<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>
|
||||
<translation>关于UID卡</translation>
|
||||
</message>
|
||||
@ -708,6 +708,7 @@ or the communication between a tag and a reader.</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1883"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="44"/>
|
||||
<source>T55xx</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
@ -909,7 +910,7 @@ or the communication between a tag and a reader.</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="2570"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="267"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="270"/>
|
||||
<source>History:</source>
|
||||
<translation>命令历史:</translation>
|
||||
</message>
|
||||
@ -1064,46 +1065,46 @@ or the communication between a tag and a reader.</source>
|
||||
<translation>图形化界面</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="80"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="129"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="370"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="596"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="616"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="629"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="648"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="661"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="688"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="701"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="893"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="918"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="83"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="132"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="373"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="599"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="619"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="632"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="651"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="664"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="691"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="704"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="896"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="921"/>
|
||||
<source>Info</source>
|
||||
<translation>信息</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="129"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="132"/>
|
||||
<source>Plz choose a port first</source>
|
||||
<translation>请先选择端口</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="201"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="204"/>
|
||||
<source>Connected</source>
|
||||
<translation>已连接</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="207"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="1003"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="210"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="1006"/>
|
||||
<source>Not Connected</source>
|
||||
<translation>未连接</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="648"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="661"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="893"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="651"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="664"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="896"/>
|
||||
<source>Failed to open</source>
|
||||
<translation>无法打开</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="370"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="373"/>
|
||||
<source>Continue?</source>
|
||||
<translation>确定?</translation>
|
||||
</message>
|
||||
@ -1123,82 +1124,82 @@ or the communication between a tag and a reader.</source>
|
||||
<translation>检查更新</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="80"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="83"/>
|
||||
<source>Failed to load config file</source>
|
||||
<translation>无法打开配置文件</translation>
|
||||
</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>
|
||||
<translation>部分数据和密码将被清除</translation>
|
||||
</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>
|
||||
<translation>请选择数据窗口和密钥窗口的字体</translation>
|
||||
</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>
|
||||
<translation>数据必须由32个十六进制字符组成(中间可含有空格)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="616"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="629"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="619"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="632"/>
|
||||
<source>Key must consists of 12 Hex symbols(Whitespace is allowed)</source>
|
||||
<translation>密钥必须由12个十六进制字符组成(中间可含有空格)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="641"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="644"/>
|
||||
<source>Plz select the data file:</source>
|
||||
<translation>请选择数据文件:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="642"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="682"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="686"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="645"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="685"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="689"/>
|
||||
<source>Binary Data Files(*.bin *.dump)</source>
|
||||
<translation>二进制数据文件(*.bin *.dump)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="642"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="655"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="880"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="645"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="658"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="883"/>
|
||||
<source>All Files(*.*)</source>
|
||||
<translation>所有文件(*.*)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="654"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="657"/>
|
||||
<source>Plz select the key file:</source>
|
||||
<translation>请选择密钥文件:</translation>
|
||||
</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>
|
||||
<translation>请选择数据文件保存的位置:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="688"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="701"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="918"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="691"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="704"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="921"/>
|
||||
<source>Failed to save to</source>
|
||||
<translation>无法保存至</translation>
|
||||
</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>
|
||||
<translation>请选择密钥文件保存的位置:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="655"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="695"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="699"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="658"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="698"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="702"/>
|
||||
<source>Binary Key Files(*.bin *.dump)</source>
|
||||
<translation>二进制密码文件(*.bin *.dump)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="642"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="682"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="645"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="685"/>
|
||||
<source>Text Data Files(*.txt *.eml)</source>
|
||||
<translation>文本数据文件(*.txt *.eml)</translation>
|
||||
</message>
|
||||
@ -1207,114 +1208,114 @@ or the communication between a tag and a reader.</source>
|
||||
<translation type="vanished">文本密码文件(*.txt *.eml)</translation>
|
||||
</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>
|
||||
<translation> 普通Mifare卡的块0无法写入,卡号也不能更改</translation>
|
||||
</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>
|
||||
<translation> UID卡(在国外叫Chinese Magic Card)的块0可写,卡号可变。</translation>
|
||||
</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>
|
||||
<translation>国外把UID卡分为Chinese Magic Card Gen1和Gen2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="824"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="827"/>
|
||||
<source> Gen1:</source>
|
||||
<translation></translation>
|
||||
</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>
|
||||
<translation> 指通常所说的UID卡,可以通过后门指令直接读写块而无需密码,在PM3和此GUI中有特殊命令处理这类卡片</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="825"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="828"/>
|
||||
<source> Gen2:</source>
|
||||
<translation></translation>
|
||||
</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>
|
||||
<translation> 这个叫法在国内比较罕见,在国外指CUID/FUID/UFUID这类对后门指令不响应的卡(防火墙卡)</translation>
|
||||
</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>
|
||||
<translation>以下是Gen2卡的详细介绍</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="828"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="831"/>
|
||||
<source> CUID Card:</source>
|
||||
<translation> CUID卡:</translation>
|
||||
</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>
|
||||
<translation> 可通过普通的写块命令来写块0,可重复擦写</translation>
|
||||
</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>
|
||||
<translation> (hf mf wrbl 0 A FFFFFFFFFFFF <待写入数据>)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="830"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="833"/>
|
||||
<source> FUID Card:</source>
|
||||
<translation> FUID卡:</translation>
|
||||
</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>
|
||||
<translation> 块0只能写入一次</translation>
|
||||
</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>
|
||||
<translation> (更高级的穿防火墙卡,可以过一些能识别出CUID卡的读卡器)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="832"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="835"/>
|
||||
<source> UFUID Card:</source>
|
||||
<translation> UFUID卡:</translation>
|
||||
</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>
|
||||
<translation> 锁卡前和普通UID/CUID卡一样可以反复读写块0,用特殊命令锁卡后就和FUID卡一样了</translation>
|
||||
</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>
|
||||
<translation> 所有UID卡都似乎更容易被Nested攻击破解</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="879"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="882"/>
|
||||
<source>Plz select the trace file:</source>
|
||||
<translation>请选择trace文件:</translation>
|
||||
</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>
|
||||
<translation>请选择trace文件保存的位置:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="880"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="904"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="883"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="907"/>
|
||||
<source>Trace Files(*.trc)</source>
|
||||
<translation>Trace文件(*.trc)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="1004"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="1176"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="1007"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="1179"/>
|
||||
<source>Idle</source>
|
||||
<translation>空闲</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="1006"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="1009"/>
|
||||
<source>Stop</source>
|
||||
<translation>停止</translation>
|
||||
</message>
|
||||
@ -1340,27 +1341,27 @@ or the communication between a tag and a reader.</source>
|
||||
<translation>密钥B</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="1113"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="1116"/>
|
||||
<source>HW Version:</source>
|
||||
<translation>固件版本:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="1115"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="1118"/>
|
||||
<source>PM3:</source>
|
||||
<translation>连接状态:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="1117"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="1120"/>
|
||||
<source>State:</source>
|
||||
<translation>运行状态:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="1172"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="1175"/>
|
||||
<source>Running</source>
|
||||
<translation>正在运行</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="1299"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="1302"/>
|
||||
<source>Actural Freq: </source>
|
||||
<translation>实际频率: </translation>
|
||||
</message>
|
||||
@ -1368,34 +1369,34 @@ or the communication between a tag and a reader.</source>
|
||||
<context>
|
||||
<name>Mifare</name>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="643"/>
|
||||
<location filename="../module/mifare.cpp" line="642"/>
|
||||
<source>Success!</source>
|
||||
<translation>成功!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="209"/>
|
||||
<location filename="../module/mifare.cpp" line="643"/>
|
||||
<location filename="../module/mifare.cpp" line="647"/>
|
||||
<location filename="../module/mifare.cpp" line="671"/>
|
||||
<location filename="../module/mifare.cpp" line="710"/>
|
||||
<location filename="../module/mifare.cpp" line="723"/>
|
||||
<location filename="../module/mifare.cpp" line="774"/>
|
||||
<location filename="../module/mifare.cpp" line="208"/>
|
||||
<location filename="../module/mifare.cpp" line="642"/>
|
||||
<location filename="../module/mifare.cpp" line="646"/>
|
||||
<location filename="../module/mifare.cpp" line="670"/>
|
||||
<location filename="../module/mifare.cpp" line="709"/>
|
||||
<location filename="../module/mifare.cpp" line="722"/>
|
||||
<location filename="../module/mifare.cpp" line="773"/>
|
||||
<source>Info</source>
|
||||
<translation>信息</translation>
|
||||
</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>
|
||||
<translation>请至少提供一个已知密码</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="468"/>
|
||||
<location filename="../module/mifare.cpp" line="647"/>
|
||||
<location filename="../module/mifare.cpp" line="467"/>
|
||||
<location filename="../module/mifare.cpp" line="646"/>
|
||||
<source>Failed!</source>
|
||||
<translation>失败!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="672"/>
|
||||
<location filename="../module/mifare.cpp" line="671"/>
|
||||
<source>The Access Bits is invalid!
|
||||
It could make the whole sector blocked irreversibly!
|
||||
Continue to write?</source>
|
||||
@ -1404,24 +1405,62 @@ Continue to write?</source>
|
||||
确定要写入吗?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="710"/>
|
||||
<location filename="../module/mifare.cpp" line="709"/>
|
||||
<source>Successful!</source>
|
||||
<translation>成功!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="723"/>
|
||||
<location filename="../module/mifare.cpp" line="722"/>
|
||||
<source>Failed to write to these blocks:</source>
|
||||
<translation>写入以下块失败:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="727"/>
|
||||
<location filename="../module/mifare.cpp" line="726"/>
|
||||
<source>Select them?</source>
|
||||
<translation>选中这些块?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="774"/>
|
||||
<location filename="../module/mifare.cpp" line="773"/>
|
||||
<source>Failed to read card.</source>
|
||||
<translation>读卡失败。</translation>
|
||||
</message>
|
||||
</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>
|
||||
|
@ -154,5 +154,4 @@ void LF::syncWithUI()
|
||||
void LF::setConfigMap(const QVariantMap& 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)
|
||||
{
|
||||
this->configMap = configMap;
|
||||
qDebug() << configMap;
|
||||
}
|
||||
|
||||
QMap<QString, QString> Mifare::info(bool isRequiringOutput)
|
||||
|
@ -1,14 +1,68 @@
|
||||
#include "t55xxtab.h"
|
||||
#include "t55xxtab.h"
|
||||
#include "ui_t55xxtab.h"
|
||||
|
||||
T55xxTab::T55xxTab(QWidget *parent) :
|
||||
T55xxTab::T55xxTab(Util *addr, QWidget *parent) :
|
||||
QWidget(parent),
|
||||
ui(new Ui::T55xxTab)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
util = addr;
|
||||
}
|
||||
|
||||
T55xxTab::~T55xxTab()
|
||||
{
|
||||
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
|
||||
|
||||
#include "common/util.h"
|
||||
#include <QWidget>
|
||||
|
||||
namespace Ui {
|
||||
namespace Ui
|
||||
{
|
||||
class T55xxTab;
|
||||
}
|
||||
|
||||
@ -12,11 +14,23 @@ class T55xxTab : public QWidget
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit T55xxTab(QWidget *parent = nullptr);
|
||||
explicit T55xxTab(Util *addr, QWidget *parent = nullptr);
|
||||
~T55xxTab();
|
||||
|
||||
void setConfigMap(const QVariantMap& configMap);
|
||||
private slots:
|
||||
void on_Clone_EM410xReadButton_clicked();
|
||||
|
||||
void on_Clone_EM410xCloneButton_clicked();
|
||||
|
||||
private:
|
||||
Ui::T55xxTab *ui;
|
||||
Util* util;
|
||||
QVariantMap configMap;
|
||||
|
||||
void setGUIState(bool st);
|
||||
signals:
|
||||
void setParentGUIState(bool st);
|
||||
};
|
||||
|
||||
#endif // T55XXTAB_H
|
||||
|
@ -39,13 +39,16 @@ MainWindow::MainWindow(QWidget *parent):
|
||||
Util::setUI(ui);
|
||||
mifare = new Mifare(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);
|
||||
resizeEventFilter = new MyEventFilter(QEvent::Resize);
|
||||
|
||||
// hide unused tabs
|
||||
// ui->funcTab->removeTab(1);
|
||||
ui->funcTab->removeTab(2);
|
||||
ui->funcTab->removeTab(3);
|
||||
|
||||
portSearchTimer = new QTimer(this);
|
||||
portSearchTimer->setInterval(2000);
|
||||
@ -85,7 +88,7 @@ void MainWindow::loadConfig()
|
||||
QJsonDocument configJson(QJsonDocument::fromJson(configData));
|
||||
mifare->setConfigMap(configJson.object()["mifare classic"].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
|
||||
@ -636,7 +639,7 @@ void MainWindow::on_MF_File_loadButton_clicked()
|
||||
{
|
||||
QString title = "";
|
||||
QString filename = "";
|
||||
if(ui->MF_File_dataBox->isChecked())
|
||||
if(ui->MF_File_dataButton->isChecked())
|
||||
{
|
||||
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(*.*)"));
|
||||
@ -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:");
|
||||
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 += 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:");
|
||||
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:");
|
||||
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()
|
||||
{
|
||||
if(ui->MF_File_keyBox->isChecked())
|
||||
if(ui->MF_File_keyButton->isChecked())
|
||||
{
|
||||
mifare->data_clearKey();
|
||||
mifare->data_syncWithKeyWidget();
|
||||
}
|
||||
else if(ui->MF_File_dataBox->isChecked())
|
||||
else if(ui->MF_File_keyButton->isChecked())
|
||||
{
|
||||
mifare->data_clearData();
|
||||
mifare->data_syncWithDataWidget();
|
||||
|
@ -31,6 +31,7 @@
|
||||
#include "common/pm3process.h"
|
||||
#include "module/mifare.h"
|
||||
#include "module/lf.h"
|
||||
#include "module/t55xxtab.h"
|
||||
#include "common/util.h"
|
||||
#include "ui/mf_trailerdecoderdialog.h"
|
||||
|
||||
@ -205,6 +206,7 @@ private slots:
|
||||
|
||||
void on_Set_Client_configPathEdit_editingFinished();
|
||||
|
||||
void setState(bool st);
|
||||
private:
|
||||
Ui::MainWindow* ui;
|
||||
QButtonGroup* MFCardTypeBtnGroup;
|
||||
@ -235,6 +237,7 @@ private:
|
||||
QStringList clientEnv;
|
||||
QDir* clientWorkingDir;
|
||||
|
||||
T55xxTab* t55xxTab;
|
||||
Mifare* mifare;
|
||||
LF* lf;
|
||||
Util* util;
|
||||
@ -247,7 +250,6 @@ private:
|
||||
void signalInit();
|
||||
void MF_widgetReset();
|
||||
void setTableItem(QTableWidget *widget, int row, int column, const QString& text);
|
||||
void setState(bool st);
|
||||
void saveClientPath(const QString& path);
|
||||
void onLFfreqConfChanged(int value, bool isCustomized);
|
||||
void dockInit();
|
||||
|
@ -136,7 +136,7 @@
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>2</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="mifareTab">
|
||||
<attribute name="title">
|
||||
@ -524,7 +524,7 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="MF_File_dataBox">
|
||||
<widget class="QRadioButton" name="MF_File_dataButton">
|
||||
<property name="text">
|
||||
<string>Data</string>
|
||||
</property>
|
||||
@ -534,7 +534,7 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="MF_File_keyBox">
|
||||
<widget class="QRadioButton" name="MF_File_keyButton">
|
||||
<property name="text">
|
||||
<string>Key</string>
|
||||
</property>
|
||||
|
@ -1,7 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<author/>
|
||||
<comment/>
|
||||
<exportmacro/>
|
||||
<class>T55xxTab</class>
|
||||
<widget class="QWidget" name="T55xxTab">
|
||||
<property name="geometry">
|
||||
@ -12,10 +10,98 @@
|
||||
<height>300</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout">
|
||||
<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>
|
||||
</widget>
|
||||
</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>
|
||||
<pixmapfunction/>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
|
Loading…
x
Reference in New Issue
Block a user