mirror of
https://github.com/wh201906/Proxmark3GUI.git
synced 2025-02-16 22:21:30 +08:00
Some changes
Refactor execCMDWithOutput Add UI for advanced settings Add stop button(reconnect) Update translations
This commit is contained in:
parent
a56a503b23
commit
5330ed8d14
@ -22,13 +22,16 @@ void Util::processOutput(const QString& output)
|
||||
|
||||
void Util::execCMD(const QString& cmd)
|
||||
{
|
||||
qDebug() << cmd;
|
||||
qDebug() << "executing: " << cmd;
|
||||
if(isRunning)
|
||||
emit write(cmd + "\r\n");
|
||||
}
|
||||
|
||||
QString Util::execCMDWithOutput(const QString& cmd, ReturnTrigger trigger)
|
||||
{
|
||||
// if the trigger is empty, this function will wait trigger.waitTime then return all outputs during the wait time.
|
||||
// otherwise, this function will return empty string if no trigger is detected, or return outputs if any trigger is detected.
|
||||
// the waitTime will be refreshed if the client have new outputs
|
||||
bool isResultFound = false;
|
||||
QRegularExpression re;
|
||||
re.setPatternOptions(QRegularExpression::DotMatchesEverythingOption);
|
||||
@ -42,27 +45,32 @@ QString Util::execCMDWithOutput(const QString& cmd, ReturnTrigger trigger)
|
||||
execCMD(cmd);
|
||||
while(QTime::currentTime() < targetTime)
|
||||
{
|
||||
if(!isRunning)
|
||||
break;
|
||||
QApplication::processEvents();
|
||||
for(QString otpt : trigger.expectedOutputs)
|
||||
{
|
||||
re.setPattern(otpt);
|
||||
isResultFound = re.match(*requiredOutput).hasMatch();
|
||||
if(requiredOutput->contains(otpt))
|
||||
if(isResultFound)
|
||||
{
|
||||
qDebug() << "output Matched: " << *requiredOutput;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(isResultFound)
|
||||
{
|
||||
delay(200);
|
||||
break;
|
||||
}
|
||||
if(timeStamp > currTime)
|
||||
if(timeStamp > currTime) //has new output
|
||||
{
|
||||
currTime = timeStamp;
|
||||
targetTime = timeStamp.addMSecs(trigger.waitTime);
|
||||
}
|
||||
}
|
||||
isRequiringOutput = false;
|
||||
return *requiredOutput;
|
||||
return (isResultFound || trigger.expectedOutputs.isEmpty() ? *requiredOutput : "");
|
||||
}
|
||||
|
||||
void Util::delay(unsigned int msec)
|
||||
|
@ -50,6 +50,7 @@ public:
|
||||
QString execCMDWithOutput(const QString& cmd, ReturnTrigger trigger = 10000);
|
||||
void delay(unsigned int msec);
|
||||
ClientType getClientType();
|
||||
static const int rawTabIndex = 1;
|
||||
public slots:
|
||||
void processOutput(const QString& output);
|
||||
void setClientType(Util::ClientType clientType);
|
||||
|
458
lang/en_US.ts
458
lang/en_US.ts
@ -310,534 +310,681 @@ It could make the whole sector blocked irreversibly!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="209"/>
|
||||
<location filename="../ui/mainwindow.ui" line="215"/>
|
||||
<source>Select Trailer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="347"/>
|
||||
<location filename="../ui/mainwindow.ui" line="356"/>
|
||||
<source>Card Type</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="368"/>
|
||||
<location filename="../ui/mainwindow.ui" line="377"/>
|
||||
<source>MINI</source>
|
||||
<extracomment>320</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="381"/>
|
||||
<location filename="../ui/mainwindow.ui" line="390"/>
|
||||
<source>1K</source>
|
||||
<extracomment>1024</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="397"/>
|
||||
<location filename="../ui/mainwindow.ui" line="406"/>
|
||||
<source>2K</source>
|
||||
<extracomment>2048</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="410"/>
|
||||
<location filename="../ui/mainwindow.ui" line="419"/>
|
||||
<source>4K</source>
|
||||
<extracomment>4096</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="420"/>
|
||||
<location filename="../ui/mainwindow.ui" line="429"/>
|
||||
<source>File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="441"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1134"/>
|
||||
<location filename="../ui/mainwindow.ui" line="450"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1156"/>
|
||||
<source>Load</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="454"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1147"/>
|
||||
<location filename="../ui/mainwindow.ui" line="463"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1169"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1598"/>
|
||||
<source>Save</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="474"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="814"/>
|
||||
<location filename="../ui/mainwindow.ui" line="483"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="880"/>
|
||||
<source>Data</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="484"/>
|
||||
<location filename="../ui/mainwindow.ui" line="493"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1562"/>
|
||||
<source>Key</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="494"/>
|
||||
<location filename="../ui/mainwindow.ui" line="503"/>
|
||||
<source>Attack</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="528"/>
|
||||
<location filename="../ui/mainwindow.ui" line="537"/>
|
||||
<source>Card Info</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="541"/>
|
||||
<location filename="../ui/mainwindow.ui" line="550"/>
|
||||
<source>Check Default</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="554"/>
|
||||
<location filename="../ui/mainwindow.ui" line="563"/>
|
||||
<source>Nested</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="567"/>
|
||||
<location filename="../ui/mainwindow.ui" line="576"/>
|
||||
<source>Hardnested</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="592"/>
|
||||
<location filename="../ui/mainwindow.ui" line="589"/>
|
||||
<source>Darkside</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="614"/>
|
||||
<source>Read/Write</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="605"/>
|
||||
<location filename="../ui/mainwindow.ui" line="627"/>
|
||||
<source>Block:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="637"/>
|
||||
<location filename="../ui/mainwindow.ui" line="659"/>
|
||||
<source>Key:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="656"/>
|
||||
<location filename="../ui/mainwindow.ui" line="678"/>
|
||||
<source>Key Type:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1108"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1130"/>
|
||||
<source>Snoop</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1121"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1143"/>
|
||||
<source>List Data</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="679"/>
|
||||
<location filename="../ui/mainwindow.ui" line="701"/>
|
||||
<source>Data:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="701"/>
|
||||
<location filename="../ui/mainwindow.ui" line="723"/>
|
||||
<source>Normal(Require Password)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="783"/>
|
||||
<location filename="../ui/mainwindow.ui" line="805"/>
|
||||
<source>Dump</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="802"/>
|
||||
<location filename="../ui/mainwindow.ui" line="824"/>
|
||||
<source>Restore</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="812"/>
|
||||
<location filename="../ui/mainwindow.ui" line="834"/>
|
||||
<source>Chinese Magic Card(Without Password)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="833"/>
|
||||
<location filename="../ui/mainwindow.ui" line="855"/>
|
||||
<source>Lock UFUID Card</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="846"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="651"/>
|
||||
<location filename="../ui/mainwindow.ui" line="868"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="713"/>
|
||||
<source>About UID Card</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="917"/>
|
||||
<location filename="../ui/mainwindow.ui" line="939"/>
|
||||
<source>Set Parameter</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="936"/>
|
||||
<location filename="../ui/mainwindow.ui" line="958"/>
|
||||
<source>Wipe</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="962"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1038"/>
|
||||
<location filename="../ui/mainwindow.ui" line="984"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1060"/>
|
||||
<source>Simulate</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="467"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1025"/>
|
||||
<location filename="../ui/mainwindow.ui" line="476"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1047"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1591"/>
|
||||
<source>Clear</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="202"/>
|
||||
<location filename="../ui/mainwindow.ui" line="208"/>
|
||||
<source>Select All</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="238"/>
|
||||
<location filename="../ui/mainwindow.ui" line="244"/>
|
||||
<source>KeyBlocks->Key</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="251"/>
|
||||
<location filename="../ui/mainwindow.ui" line="257"/>
|
||||
<source>KeyBlocks<-Key</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="264"/>
|
||||
<location filename="../ui/mainwindow.ui" line="270"/>
|
||||
<source>Fill Keys</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="277"/>
|
||||
<location filename="../ui/mainwindow.ui" line="283"/>
|
||||
<source>Trailer Decoder</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="290"/>
|
||||
<location filename="../ui/mainwindow.ui" line="296"/>
|
||||
<source>Set Fonts</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="725"/>
|
||||
<location filename="../ui/mainwindow.ui" line="859"/>
|
||||
<location filename="../ui/mainwindow.ui" line="747"/>
|
||||
<location filename="../ui/mainwindow.ui" line="881"/>
|
||||
<source>Read One</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="738"/>
|
||||
<location filename="../ui/mainwindow.ui" line="872"/>
|
||||
<location filename="../ui/mainwindow.ui" line="760"/>
|
||||
<location filename="../ui/mainwindow.ui" line="894"/>
|
||||
<source>Write One</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="751"/>
|
||||
<location filename="../ui/mainwindow.ui" line="885"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1012"/>
|
||||
<location filename="../ui/mainwindow.ui" line="773"/>
|
||||
<location filename="../ui/mainwindow.ui" line="907"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1034"/>
|
||||
<source>Read Selected</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="764"/>
|
||||
<location filename="../ui/mainwindow.ui" line="898"/>
|
||||
<location filename="../ui/mainwindow.ui" line="999"/>
|
||||
<location filename="../ui/mainwindow.ui" line="786"/>
|
||||
<location filename="../ui/mainwindow.ui" line="920"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1021"/>
|
||||
<source>Write Selected</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1061"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1095"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1083"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1117"/>
|
||||
<source>Sniff</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1173"/>
|
||||
<source>RawCommand</source>
|
||||
<location filename="../ui/mainwindow.ui" line="1198"/>
|
||||
<source>LF/Data</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1220"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="149"/>
|
||||
<source>History:</source>
|
||||
<location filename="../ui/mainwindow.ui" line="1210"/>
|
||||
<source>LF Config</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1252"/>
|
||||
<source>ClearHistory</source>
|
||||
<location filename="../ui/mainwindow.ui" line="1231"/>
|
||||
<source>Frequency</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1258"/>
|
||||
<source>125k</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1271"/>
|
||||
<source>134k</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1283"/>
|
||||
<source>BitRate:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1290"/>
|
||||
<source>Decimation:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1300"/>
|
||||
<source>Averaging:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1314"/>
|
||||
<source>Threshold:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1324"/>
|
||||
<source>Skips:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1353"/>
|
||||
<source>Get</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1385"/>
|
||||
<source>Set</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1396"/>
|
||||
<source>T55xx</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1411"/>
|
||||
<source>RawCommand</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1461"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="171"/>
|
||||
<source>History:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1493"/>
|
||||
<source>ClearHistory</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1512"/>
|
||||
<source>Send</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1278"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1519"/>
|
||||
<source>ClearOutput</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="81"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="188"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="414"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="434"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="447"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="466"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="479"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="502"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="515"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="709"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="728"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1529"/>
|
||||
<source>Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1537"/>
|
||||
<source>Client</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1543"/>
|
||||
<source>Preload environment variables</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1567"/>
|
||||
<source>Value</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1577"/>
|
||||
<source>Add</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1584"/>
|
||||
<source>Delete</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1622"/>
|
||||
<source>Note:
|
||||
If the variable name already exists, this app will add the new value to the head of the existing one, so these new values have higher priority when calling Proxmark3 client.
|
||||
The environment variables added here won't affect other apps.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1641"/>
|
||||
<source>Start arguments</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1648"/>
|
||||
<source><port> -f</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1655"/>
|
||||
<source>Note:
|
||||
-f is necessary because the GUI need to handle the output in time
|
||||
In some cases the arguments should be set to "-p /dev/<port> -f"
|
||||
or "-p <port> -f"</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1702"/>
|
||||
<source>Keep buttons enabled even the client is running or disconnected</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1714"/>
|
||||
<source>GUI</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1720"/>
|
||||
<source>Language</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="89"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="252"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="478"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="498"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="511"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="530"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="543"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="566"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="579"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="770"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="789"/>
|
||||
<source>Info</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="81"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="89"/>
|
||||
<source>Plz choose a port first</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="96"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="107"/>
|
||||
<source>Connected</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="101"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="111"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="804"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="112"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="868"/>
|
||||
<source>Not Connected</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="460"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="524"/>
|
||||
<source>Binary Data Files(*.bin *.dump);;Text Data Files(*.txt *.eml);;All Files(*.*)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="466"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="479"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="709"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="530"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="543"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="770"/>
|
||||
<source>Failed to open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="188"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="252"/>
|
||||
<source>Continue?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="10"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="11"/>
|
||||
<source>Check Update</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="188"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="252"/>
|
||||
<source>Some of the data and key will be cleared.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="301"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="365"/>
|
||||
<source>Plz select the font of data widget and key widget</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="414"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="478"/>
|
||||
<source>Data must consists of 32 Hex symbols(Whitespace is allowed)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="434"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="447"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="498"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="511"/>
|
||||
<source>Key must consists of 12 Hex symbols(Whitespace is allowed)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="459"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="523"/>
|
||||
<source>Plz select the data file:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="472"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="536"/>
|
||||
<source>Plz select the key file:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="473"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="537"/>
|
||||
<source>Binary Key Files(*.bin *.dump);;Binary Data Files(*.bin *.dump);;All Files(*.*)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="495"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="559"/>
|
||||
<source>Plz select the location to save data file:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="496"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="560"/>
|
||||
<source>Binary Data Files(*.bin *.dump);;Text Data Files(*.txt *.eml)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="502"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="515"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="728"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="566"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="579"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="789"/>
|
||||
<source>Failed to save to</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="508"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="572"/>
|
||||
<source>Plz select the location to save key file:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="509"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="573"/>
|
||||
<source>Binary Key Files(*.bin *.dump)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="636"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="698"/>
|
||||
<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="637"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="699"/>
|
||||
<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="639"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="701"/>
|
||||
<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="640"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="702"/>
|
||||
<source> Gen1:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="640"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="702"/>
|
||||
<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="641"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="703"/>
|
||||
<source> Gen2:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="641"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="703"/>
|
||||
<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="643"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="705"/>
|
||||
<source>There are some types of Chinese Magic Card Gen2.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="644"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="706"/>
|
||||
<source> CUID Card:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="644"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="706"/>
|
||||
<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="645"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="707"/>
|
||||
<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="646"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="708"/>
|
||||
<source> FUID Card:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="646"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="708"/>
|
||||
<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="647"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="709"/>
|
||||
<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="648"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="710"/>
|
||||
<source> UFUID Card:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="648"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="710"/>
|
||||
<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="650"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="712"/>
|
||||
<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="696"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="757"/>
|
||||
<source>Plz select the trace file:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="697"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="758"/>
|
||||
<source>Trace Files(*.trc);;All Files(*.*)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="719"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="780"/>
|
||||
<source>Plz select the location to save trace file:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="720"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="781"/>
|
||||
<source>Trace Files(*.trc)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="805"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="960"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="869"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="1037"/>
|
||||
<source>Idle</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="812"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="821"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="871"/>
|
||||
<source>Stop</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="878"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="886"/>
|
||||
<source>Sec</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="813"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="879"/>
|
||||
<source>Blk</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="822"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="887"/>
|
||||
<source>KeyA</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="823"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="888"/>
|
||||
<source>KeyB</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="897"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="974"/>
|
||||
<source>HW Version:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="899"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="976"/>
|
||||
<source>PM3:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="901"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="978"/>
|
||||
<source>State:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="956"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="1033"/>
|
||||
<source>Running</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -845,31 +992,56 @@ It could make the whole sector blocked irreversibly!</source>
|
||||
<context>
|
||||
<name>Mifare</name>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="592"/>
|
||||
<location filename="../module/mifare.cpp" line="613"/>
|
||||
<source>Success!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="219"/>
|
||||
<location filename="../module/mifare.cpp" line="592"/>
|
||||
<location filename="../module/mifare.cpp" line="596"/>
|
||||
<location filename="../module/mifare.cpp" line="661"/>
|
||||
<location filename="../module/mifare.cpp" line="225"/>
|
||||
<location filename="../module/mifare.cpp" line="613"/>
|
||||
<location filename="../module/mifare.cpp" line="617"/>
|
||||
<location filename="../module/mifare.cpp" line="641"/>
|
||||
<location filename="../module/mifare.cpp" line="680"/>
|
||||
<location filename="../module/mifare.cpp" line="693"/>
|
||||
<location filename="../module/mifare.cpp" line="739"/>
|
||||
<source>Info</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="219"/>
|
||||
<location filename="../module/mifare.cpp" line="225"/>
|
||||
<source>Plz provide at least one known key</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="443"/>
|
||||
<location filename="../module/mifare.cpp" line="596"/>
|
||||
<location filename="../module/mifare.cpp" line="464"/>
|
||||
<location filename="../module/mifare.cpp" line="617"/>
|
||||
<source>Failed!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="661"/>
|
||||
<location filename="../module/mifare.cpp" line="642"/>
|
||||
<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="680"/>
|
||||
<source>Successful!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="693"/>
|
||||
<source>Failed to write to these blocks:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="697"/>
|
||||
<source>Select them?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="739"/>
|
||||
<source>Failed to read card.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
0
lang/languages.ini
Normal file
0
lang/languages.ini
Normal file
465
lang/zh_CN.ts
465
lang/zh_CN.ts
@ -314,534 +314,690 @@ It could make the whole sector blocked irreversibly!</source>
|
||||
<translation>Mifare(IC)卡</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="209"/>
|
||||
<location filename="../ui/mainwindow.ui" line="215"/>
|
||||
<source>Select Trailer</source>
|
||||
<translation>选中密码块</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="347"/>
|
||||
<location filename="../ui/mainwindow.ui" line="356"/>
|
||||
<source>Card Type</source>
|
||||
<translation>卡片类型</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="368"/>
|
||||
<location filename="../ui/mainwindow.ui" line="377"/>
|
||||
<source>MINI</source>
|
||||
<extracomment>320</extracomment>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="381"/>
|
||||
<location filename="../ui/mainwindow.ui" line="390"/>
|
||||
<source>1K</source>
|
||||
<extracomment>1024</extracomment>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="397"/>
|
||||
<location filename="../ui/mainwindow.ui" line="406"/>
|
||||
<source>2K</source>
|
||||
<extracomment>2048</extracomment>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="410"/>
|
||||
<location filename="../ui/mainwindow.ui" line="419"/>
|
||||
<source>4K</source>
|
||||
<extracomment>4096</extracomment>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="420"/>
|
||||
<location filename="../ui/mainwindow.ui" line="429"/>
|
||||
<source>File</source>
|
||||
<translation>文件</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="441"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1134"/>
|
||||
<location filename="../ui/mainwindow.ui" line="450"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1156"/>
|
||||
<source>Load</source>
|
||||
<translation>加载</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="454"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1147"/>
|
||||
<location filename="../ui/mainwindow.ui" line="463"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1169"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1598"/>
|
||||
<source>Save</source>
|
||||
<translation>保存</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="474"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="814"/>
|
||||
<location filename="../ui/mainwindow.ui" line="483"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="880"/>
|
||||
<source>Data</source>
|
||||
<translation>数据</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="484"/>
|
||||
<location filename="../ui/mainwindow.ui" line="493"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1562"/>
|
||||
<source>Key</source>
|
||||
<translation>密钥</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="494"/>
|
||||
<location filename="../ui/mainwindow.ui" line="503"/>
|
||||
<source>Attack</source>
|
||||
<translation>破解</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="528"/>
|
||||
<location filename="../ui/mainwindow.ui" line="537"/>
|
||||
<source>Card Info</source>
|
||||
<translation>读卡信息</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="541"/>
|
||||
<location filename="../ui/mainwindow.ui" line="550"/>
|
||||
<source>Check Default</source>
|
||||
<translation>验证默认密码</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="554"/>
|
||||
<location filename="../ui/mainwindow.ui" line="563"/>
|
||||
<source>Nested</source>
|
||||
<translation>Nested攻击</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="567"/>
|
||||
<location filename="../ui/mainwindow.ui" line="576"/>
|
||||
<source>Hardnested</source>
|
||||
<translation>Hardested攻击</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="592"/>
|
||||
<location filename="../ui/mainwindow.ui" line="589"/>
|
||||
<source>Darkside</source>
|
||||
<translation>Darkside攻击</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="614"/>
|
||||
<source>Read/Write</source>
|
||||
<translation>读/写</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="605"/>
|
||||
<location filename="../ui/mainwindow.ui" line="627"/>
|
||||
<source>Block:</source>
|
||||
<translation>块:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="637"/>
|
||||
<location filename="../ui/mainwindow.ui" line="659"/>
|
||||
<source>Key:</source>
|
||||
<translation>密钥:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="656"/>
|
||||
<location filename="../ui/mainwindow.ui" line="678"/>
|
||||
<source>Key Type:</source>
|
||||
<translation>密钥类型:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1108"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1130"/>
|
||||
<source>Snoop</source>
|
||||
<translation>嗅探(Snoop)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1121"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1143"/>
|
||||
<source>List Data</source>
|
||||
<translation>列出嗅探数据</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="679"/>
|
||||
<location filename="../ui/mainwindow.ui" line="701"/>
|
||||
<source>Data:</source>
|
||||
<translation>数据:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="701"/>
|
||||
<location filename="../ui/mainwindow.ui" line="723"/>
|
||||
<source>Normal(Require Password)</source>
|
||||
<translation>普通卡(需要密码)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="783"/>
|
||||
<location filename="../ui/mainwindow.ui" line="805"/>
|
||||
<source>Dump</source>
|
||||
<translation>Dump命令</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="802"/>
|
||||
<location filename="../ui/mainwindow.ui" line="824"/>
|
||||
<source>Restore</source>
|
||||
<translation>Restore命令</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="812"/>
|
||||
<location filename="../ui/mainwindow.ui" line="834"/>
|
||||
<source>Chinese Magic Card(Without Password)</source>
|
||||
<translation>UID卡(不需要密码)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="833"/>
|
||||
<location filename="../ui/mainwindow.ui" line="855"/>
|
||||
<source>Lock UFUID Card</source>
|
||||
<translation>锁定UFUID卡</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="846"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="651"/>
|
||||
<location filename="../ui/mainwindow.ui" line="868"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="713"/>
|
||||
<source>About UID Card</source>
|
||||
<translation>关于UID卡</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="917"/>
|
||||
<location filename="../ui/mainwindow.ui" line="939"/>
|
||||
<source>Set Parameter</source>
|
||||
<translation>设置卡参数</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="936"/>
|
||||
<location filename="../ui/mainwindow.ui" line="958"/>
|
||||
<source>Wipe</source>
|
||||
<translation>擦除</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="962"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1038"/>
|
||||
<location filename="../ui/mainwindow.ui" line="984"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1060"/>
|
||||
<source>Simulate</source>
|
||||
<translation>模拟</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="467"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1025"/>
|
||||
<location filename="../ui/mainwindow.ui" line="476"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1047"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1591"/>
|
||||
<source>Clear</source>
|
||||
<translation>清空</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="202"/>
|
||||
<location filename="../ui/mainwindow.ui" line="208"/>
|
||||
<source>Select All</source>
|
||||
<translation>全选</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="238"/>
|
||||
<location filename="../ui/mainwindow.ui" line="244"/>
|
||||
<source>KeyBlocks->Key</source>
|
||||
<translation>密码区->密码</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="251"/>
|
||||
<location filename="../ui/mainwindow.ui" line="257"/>
|
||||
<source>KeyBlocks<-Key</source>
|
||||
<translation>密码区<-密码</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="264"/>
|
||||
<location filename="../ui/mainwindow.ui" line="270"/>
|
||||
<source>Fill Keys</source>
|
||||
<translation>填充密码</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="277"/>
|
||||
<location filename="../ui/mainwindow.ui" line="283"/>
|
||||
<source>Trailer Decoder</source>
|
||||
<translation>Trailer解码</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="290"/>
|
||||
<location filename="../ui/mainwindow.ui" line="296"/>
|
||||
<source>Set Fonts</source>
|
||||
<translation>设置字体</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="725"/>
|
||||
<location filename="../ui/mainwindow.ui" line="859"/>
|
||||
<location filename="../ui/mainwindow.ui" line="747"/>
|
||||
<location filename="../ui/mainwindow.ui" line="881"/>
|
||||
<source>Read One</source>
|
||||
<translation>读取单个区</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="738"/>
|
||||
<location filename="../ui/mainwindow.ui" line="872"/>
|
||||
<location filename="../ui/mainwindow.ui" line="760"/>
|
||||
<location filename="../ui/mainwindow.ui" line="894"/>
|
||||
<source>Write One</source>
|
||||
<translation>写入单个区</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="751"/>
|
||||
<location filename="../ui/mainwindow.ui" line="885"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1012"/>
|
||||
<location filename="../ui/mainwindow.ui" line="773"/>
|
||||
<location filename="../ui/mainwindow.ui" line="907"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1034"/>
|
||||
<source>Read Selected</source>
|
||||
<translation>读取选中块</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="764"/>
|
||||
<location filename="../ui/mainwindow.ui" line="898"/>
|
||||
<location filename="../ui/mainwindow.ui" line="999"/>
|
||||
<location filename="../ui/mainwindow.ui" line="786"/>
|
||||
<location filename="../ui/mainwindow.ui" line="920"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1021"/>
|
||||
<source>Write Selected</source>
|
||||
<translation>写入选中块</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1061"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1095"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1083"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1117"/>
|
||||
<source>Sniff</source>
|
||||
<translation>嗅探</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1173"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1198"/>
|
||||
<source>LF/Data</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1210"/>
|
||||
<source>LF Config</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1231"/>
|
||||
<source>Frequency</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1258"/>
|
||||
<source>125k</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1271"/>
|
||||
<source>134k</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1283"/>
|
||||
<source>BitRate:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1290"/>
|
||||
<source>Decimation:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1300"/>
|
||||
<source>Averaging:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1314"/>
|
||||
<source>Threshold:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1324"/>
|
||||
<source>Skips:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1353"/>
|
||||
<source>Get</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1385"/>
|
||||
<source>Set</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1396"/>
|
||||
<source>T55xx</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1411"/>
|
||||
<source>RawCommand</source>
|
||||
<translation>原始命令</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1220"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="149"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1461"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="171"/>
|
||||
<source>History:</source>
|
||||
<translation>命令历史:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1252"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1493"/>
|
||||
<source>ClearHistory</source>
|
||||
<translation>清空历史</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1271"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1512"/>
|
||||
<source>Send</source>
|
||||
<translation>发送</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1278"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1519"/>
|
||||
<source>ClearOutput</source>
|
||||
<translation>清空输出</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="81"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="188"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="414"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="434"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="447"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="466"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="479"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="502"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="515"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="709"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="728"/>
|
||||
<location filename="../ui/mainwindow.ui" line="1529"/>
|
||||
<source>Settings</source>
|
||||
<translation>设置</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1537"/>
|
||||
<source>Client</source>
|
||||
<translation>客户端</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1543"/>
|
||||
<source>Preload environment variables</source>
|
||||
<translation>预加载环境变量</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1567"/>
|
||||
<source>Value</source>
|
||||
<translation>值</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1577"/>
|
||||
<source>Add</source>
|
||||
<translation>添加</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1584"/>
|
||||
<source>Delete</source>
|
||||
<translation>删除</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1622"/>
|
||||
<source>Note:
|
||||
If the variable name already exists, this app will add the new value to the head of the existing one, so these new values have higher priority when calling Proxmark3 client.
|
||||
The environment variables added here won't affect other apps.</source>
|
||||
<translation>注意:
|
||||
如果变量名已经存在,则会将新变量值添加至现有变量值之前,启动客户端时会优先使用此处添加的变量值。
|
||||
此处添加的环境变量不会影响其它程序。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1641"/>
|
||||
<source>Start arguments</source>
|
||||
<translation>启动参数</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1648"/>
|
||||
<source><port> -f</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1655"/>
|
||||
<source>Note:
|
||||
-f is necessary because the GUI need to handle the output in time
|
||||
In some cases the arguments should be set to "-p /dev/<port> -f"
|
||||
or "-p <port> -f"</source>
|
||||
<translation>注意:
|
||||
-f选项用于使客户端实时返回命令回显,必须添加
|
||||
部分情况下启动参数需设置为"-p /dev/<port> -f"
|
||||
或"-p <port> -f"</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Note: -f is necessary because the GUI need to handle the output in time</source>
|
||||
<translation type="vanished">注意:-f选项用于使客户端实时返回命令回显,必须添加</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1702"/>
|
||||
<source>Keep buttons enabled even the client is running or disconnected</source>
|
||||
<translation>保持所有按钮可点击,即使未连接客户端或有任务正在运行</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1714"/>
|
||||
<source>GUI</source>
|
||||
<translation>图形化界面</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.ui" line="1720"/>
|
||||
<source>Language</source>
|
||||
<translation>语言</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="89"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="252"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="478"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="498"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="511"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="530"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="543"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="566"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="579"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="770"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="789"/>
|
||||
<source>Info</source>
|
||||
<translation>信息</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="81"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="89"/>
|
||||
<source>Plz choose a port first</source>
|
||||
<translation>请先选择端口</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="96"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="107"/>
|
||||
<source>Connected</source>
|
||||
<translation>已连接</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="101"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="111"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="804"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="112"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="868"/>
|
||||
<source>Not Connected</source>
|
||||
<translation>未连接</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="460"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="524"/>
|
||||
<source>Binary Data Files(*.bin *.dump);;Text Data Files(*.txt *.eml);;All Files(*.*)</source>
|
||||
<translation>二进制数据文件(*.bin *.dump);;文本数据文件(*.txt *.eml);;所有文件(*.*)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="466"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="479"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="709"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="530"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="543"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="770"/>
|
||||
<source>Failed to open</source>
|
||||
<translation>无法打开</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="188"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="252"/>
|
||||
<source>Continue?</source>
|
||||
<translation>确定?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="10"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="11"/>
|
||||
<source>Check Update</source>
|
||||
<translation>检查更新</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="188"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="252"/>
|
||||
<source>Some of the data and key will be cleared.</source>
|
||||
<translation>部分数据和密码将被清除</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="301"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="365"/>
|
||||
<source>Plz select the font of data widget and key widget</source>
|
||||
<translation>请选择数据窗口和密钥窗口的字体</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="414"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="478"/>
|
||||
<source>Data must consists of 32 Hex symbols(Whitespace is allowed)</source>
|
||||
<translation>数据必须由32个十六进制字符组成(中间可含有空格)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="434"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="447"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="498"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="511"/>
|
||||
<source>Key must consists of 12 Hex symbols(Whitespace is allowed)</source>
|
||||
<translation>密钥必须由12个十六进制字符组成(中间可含有空格)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="459"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="523"/>
|
||||
<source>Plz select the data file:</source>
|
||||
<translation>请选择数据文件:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="472"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="536"/>
|
||||
<source>Plz select the key file:</source>
|
||||
<translation>请选择密钥文件:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="473"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="537"/>
|
||||
<source>Binary Key Files(*.bin *.dump);;Binary Data Files(*.bin *.dump);;All Files(*.*)</source>
|
||||
<translation>二进制密钥文件(*.bin *.dump)二进制密钥文件(*.bin *.dump);所有文件(*.*)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="495"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="559"/>
|
||||
<source>Plz select the location to save data file:</source>
|
||||
<translation>请选择数据文件保存的位置:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="496"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="560"/>
|
||||
<source>Binary Data Files(*.bin *.dump);;Text Data Files(*.txt *.eml)</source>
|
||||
<translation>二进制数据文件(*.bin *.dump);文本数据文件(*.txt *.eml)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="502"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="515"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="728"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="566"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="579"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="789"/>
|
||||
<source>Failed to save to</source>
|
||||
<translation>无法保存至</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="508"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="572"/>
|
||||
<source>Plz select the location to save key file:</source>
|
||||
<translation>请选择密钥文件保存的位置:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="509"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="573"/>
|
||||
<source>Binary Key Files(*.bin *.dump)</source>
|
||||
<translation>二进制密码文件(*.bin *.dump)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="636"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="698"/>
|
||||
<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="637"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="699"/>
|
||||
<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="639"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="701"/>
|
||||
<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="640"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="702"/>
|
||||
<source> Gen1:</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="640"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="702"/>
|
||||
<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="641"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="703"/>
|
||||
<source> Gen2:</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="641"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="703"/>
|
||||
<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="643"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="705"/>
|
||||
<source>There are some types of Chinese Magic Card Gen2.</source>
|
||||
<translation>以下是Gen2卡的详细介绍</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="644"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="706"/>
|
||||
<source> CUID Card:</source>
|
||||
<translation> CUID卡:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="644"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="706"/>
|
||||
<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="645"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="707"/>
|
||||
<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="646"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="708"/>
|
||||
<source> FUID Card:</source>
|
||||
<translation> FUID卡:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="646"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="708"/>
|
||||
<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="647"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="709"/>
|
||||
<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="648"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="710"/>
|
||||
<source> UFUID Card:</source>
|
||||
<translation> UFUID卡:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="648"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="710"/>
|
||||
<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="650"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="712"/>
|
||||
<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="696"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="757"/>
|
||||
<source>Plz select the trace file:</source>
|
||||
<translation>请选择trace文件:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="697"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="758"/>
|
||||
<source>Trace Files(*.trc);;All Files(*.*)</source>
|
||||
<translation>Trace文件(*.trc);;所有文件(*.*)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="719"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="780"/>
|
||||
<source>Plz select the location to save trace file:</source>
|
||||
<translation>请选择trace文件保存的位置:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="720"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="781"/>
|
||||
<source>Trace Files(*.trc)</source>
|
||||
<translation>Trace文件(*.trc)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="805"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="960"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="869"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="1037"/>
|
||||
<source>Idle</source>
|
||||
<translation>空闲</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="812"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="821"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="871"/>
|
||||
<source>Stop</source>
|
||||
<translation>停止</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="878"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="886"/>
|
||||
<source>Sec</source>
|
||||
<translation>扇区</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="813"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="879"/>
|
||||
<source>Blk</source>
|
||||
<translation>块</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="822"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="887"/>
|
||||
<source>KeyA</source>
|
||||
<translation>密钥A</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="823"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="888"/>
|
||||
<source>KeyB</source>
|
||||
<translation>密钥B</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="897"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="974"/>
|
||||
<source>HW Version:</source>
|
||||
<translation>固件版本:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="899"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="976"/>
|
||||
<source>PM3:</source>
|
||||
<translation>连接状态:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="901"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="978"/>
|
||||
<source>State:</source>
|
||||
<translation>运行状态:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../ui/mainwindow.cpp" line="956"/>
|
||||
<location filename="../ui/mainwindow.cpp" line="1033"/>
|
||||
<source>Running</source>
|
||||
<translation>正在运行</translation>
|
||||
</message>
|
||||
@ -849,31 +1005,58 @@ It could make the whole sector blocked irreversibly!</source>
|
||||
<context>
|
||||
<name>Mifare</name>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="592"/>
|
||||
<location filename="../module/mifare.cpp" line="613"/>
|
||||
<source>Success!</source>
|
||||
<translation>成功!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="219"/>
|
||||
<location filename="../module/mifare.cpp" line="592"/>
|
||||
<location filename="../module/mifare.cpp" line="596"/>
|
||||
<location filename="../module/mifare.cpp" line="661"/>
|
||||
<location filename="../module/mifare.cpp" line="225"/>
|
||||
<location filename="../module/mifare.cpp" line="613"/>
|
||||
<location filename="../module/mifare.cpp" line="617"/>
|
||||
<location filename="../module/mifare.cpp" line="641"/>
|
||||
<location filename="../module/mifare.cpp" line="680"/>
|
||||
<location filename="../module/mifare.cpp" line="693"/>
|
||||
<location filename="../module/mifare.cpp" line="739"/>
|
||||
<source>Info</source>
|
||||
<translation>信息</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="219"/>
|
||||
<location filename="../module/mifare.cpp" line="225"/>
|
||||
<source>Plz provide at least one known key</source>
|
||||
<translation>请至少提供一个已知密码</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="443"/>
|
||||
<location filename="../module/mifare.cpp" line="596"/>
|
||||
<location filename="../module/mifare.cpp" line="464"/>
|
||||
<location filename="../module/mifare.cpp" line="617"/>
|
||||
<source>Failed!</source>
|
||||
<translation>失败!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="661"/>
|
||||
<location filename="../module/mifare.cpp" line="642"/>
|
||||
<source>The Access Bits is invalid!
|
||||
It could make the whole sector blocked irreversibly!
|
||||
Continue to write?</source>
|
||||
<translation>控制位无效!
|
||||
使用该控制位可能导致目标扇区损坏且无法恢复!
|
||||
确定要写入吗?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="680"/>
|
||||
<source>Successful!</source>
|
||||
<translation>成功!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="693"/>
|
||||
<source>Failed to write to these blocks:</source>
|
||||
<translation>写入以下块失败:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="697"/>
|
||||
<source>Select them?</source>
|
||||
<translation>选中这些块?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../module/mifare.cpp" line="739"/>
|
||||
<source>Failed to read card.</source>
|
||||
<translation>读卡失败。</translation>
|
||||
</message>
|
||||
|
@ -106,7 +106,7 @@ QString Mifare::info(bool isRequiringOutput)
|
||||
else
|
||||
{
|
||||
util->execCMD("hf 14a info");
|
||||
ui->funcTab->setCurrentIndex(1);
|
||||
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
||||
return "";
|
||||
}
|
||||
}
|
||||
@ -115,17 +115,16 @@ QString Mifare::info(bool isRequiringOutput)
|
||||
void Mifare::chk()
|
||||
{
|
||||
QRegularExpressionMatch reMatch;
|
||||
QString result = util->execCMDWithOutput(
|
||||
"hf mf chk *"
|
||||
+ QString::number(cardType.type)
|
||||
+ " ?",
|
||||
Util::ReturnTrigger(1000 + cardType.sector_size * 200, {"No valid", "\\|---\\|----------------\\|----------------\\|"}));
|
||||
qDebug() << result;
|
||||
|
||||
QString result;
|
||||
int offset = 0;
|
||||
QString data;
|
||||
if(util->getClientType() == Util::CLIENTTYPE_OFFICIAL)
|
||||
{
|
||||
result = util->execCMDWithOutput(
|
||||
"hf mf chk *"
|
||||
+ QString::number(cardType.type)
|
||||
+ " ?",
|
||||
Util::ReturnTrigger(1000 + cardType.sector_size * 200, {"No valid", "\\|---\\|----------------\\|----------------\\|"}));
|
||||
for(int i = 0; i < cardType.sector_size; i++)
|
||||
{
|
||||
reMatch = keyPattern->match(result, offset);
|
||||
@ -148,6 +147,11 @@ void Mifare::chk()
|
||||
}
|
||||
else if(util->getClientType() == Util::CLIENTTYPE_ICEMAN)
|
||||
{
|
||||
result = util->execCMDWithOutput(
|
||||
"hf mf chk *"
|
||||
+ QString::number(cardType.type)
|
||||
+ " ?",
|
||||
Util::ReturnTrigger(1000 + cardType.sector_size * 200, {"No valid", "\\|---\\|----------------\\|---\\|----------------\\|"}));
|
||||
for(int i = 0; i < cardType.sector_size; i++)
|
||||
{
|
||||
reMatch = keyPattern_res->match(result, offset);
|
||||
@ -213,7 +217,8 @@ void Mifare::nested()
|
||||
result = util->execCMDWithOutput(
|
||||
"hf mf nested "
|
||||
+ QString::number(cardType.type)
|
||||
+ knownKeyInfo, 10000);
|
||||
+ knownKeyInfo,
|
||||
Util::ReturnTrigger(10000, {"key is wrong", "\\|000\\|"}));
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -249,7 +254,7 @@ void Mifare::hardnested()
|
||||
MF_Attack_hardnestedDialog dialog(cardType.block_size);
|
||||
connect(&dialog, &MF_Attack_hardnestedDialog::sendCMD, util, &Util::execCMD);
|
||||
if(dialog.exec() == QDialog::Accepted)
|
||||
ui->funcTab->setCurrentIndex(1);
|
||||
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
||||
}
|
||||
|
||||
void Mifare::darkside()
|
||||
@ -257,12 +262,12 @@ void Mifare::darkside()
|
||||
if(util->getClientType() == Util::CLIENTTYPE_OFFICIAL)
|
||||
{
|
||||
util->execCMD("hf mf mifare");
|
||||
ui->funcTab->setCurrentIndex(1);
|
||||
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
||||
}
|
||||
else if(util->getClientType() == Util::CLIENTTYPE_ICEMAN)
|
||||
{
|
||||
util->execCMD("hf mf darkside");
|
||||
ui->funcTab->setCurrentIndex(1);
|
||||
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
||||
}
|
||||
|
||||
}
|
||||
@ -270,19 +275,19 @@ void Mifare::darkside()
|
||||
void Mifare::sniff()
|
||||
{
|
||||
util->execCMD("hf mf sniff");
|
||||
ui->funcTab->setCurrentIndex(1);
|
||||
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
||||
}
|
||||
|
||||
void Mifare::snoop()
|
||||
{
|
||||
util->execCMD("hf 14a snoop");
|
||||
ui->funcTab->setCurrentIndex(1);
|
||||
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
||||
}
|
||||
|
||||
void Mifare::list()
|
||||
{
|
||||
util->execCMD("hf list mf");
|
||||
ui->funcTab->setCurrentIndex(1);
|
||||
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
||||
}
|
||||
|
||||
QString Mifare::_readblk(int blockId, KeyType keyType, const QString& key, TargetType targetType, int waitTime)
|
||||
@ -709,13 +714,13 @@ void Mifare::writeSelected(TargetType targetType)
|
||||
void Mifare::dump()
|
||||
{
|
||||
util->execCMD("hf mf dump");
|
||||
ui->funcTab->setCurrentIndex(1);
|
||||
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
||||
}
|
||||
|
||||
void Mifare::restore()
|
||||
{
|
||||
util->execCMD("hf mf restore");
|
||||
ui->funcTab->setCurrentIndex(1);
|
||||
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
||||
}
|
||||
|
||||
void Mifare::wipeC()
|
||||
@ -724,7 +729,7 @@ void Mifare::wipeC()
|
||||
"hf mf cwipe "
|
||||
+ QString::number(cardType.type)
|
||||
+ " f");
|
||||
ui->funcTab->setCurrentIndex(1);
|
||||
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
||||
}
|
||||
|
||||
void Mifare::setParameterC()
|
||||
@ -741,7 +746,7 @@ void Mifare::setParameterC()
|
||||
MF_UID_parameterDialog dialog(lis[0].toUpper(), lis[1].toUpper(), lis[2].mid(0, 2).toUpper());
|
||||
connect(&dialog, &MF_UID_parameterDialog::sendCMD, util, &Util::execCMD);
|
||||
if(dialog.exec() == QDialog::Accepted)
|
||||
ui->funcTab->setCurrentIndex(1);
|
||||
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
||||
}
|
||||
}
|
||||
|
||||
@ -765,19 +770,19 @@ void Mifare::simulate()
|
||||
MF_Sim_simDialog dialog(cardType.type);
|
||||
connect(&dialog, &MF_Sim_simDialog::sendCMD, util, &Util::execCMD);
|
||||
if(dialog.exec() == QDialog::Accepted)
|
||||
ui->funcTab->setCurrentIndex(1);
|
||||
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
||||
}
|
||||
|
||||
void Mifare::loadSniff(const QString& file)
|
||||
{
|
||||
util->execCMD("hf list mf -l " + file);
|
||||
ui->funcTab->setCurrentIndex(1);
|
||||
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
||||
}
|
||||
|
||||
void Mifare::saveSniff(const QString& file)
|
||||
{
|
||||
util->execCMD("hf list mf -s " + file);
|
||||
ui->funcTab->setCurrentIndex(1);
|
||||
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
||||
}
|
||||
|
||||
void Mifare::data_syncWithDataWidget(bool syncAll, int block)
|
||||
|
@ -92,6 +92,9 @@ void MainWindow::on_PM3_connectButton_clicked()
|
||||
saveClientPath(ui->PM3_pathEdit->text());
|
||||
emit connectPM3(ui->PM3_pathEdit->text(), port);
|
||||
}
|
||||
QProcess proc;
|
||||
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
|
||||
//env.insert();
|
||||
}
|
||||
|
||||
void MainWindow::onPM3StateChanged(bool st, const QString& info)
|
||||
@ -112,11 +115,8 @@ void MainWindow::onPM3StateChanged(bool st, const QString& info)
|
||||
|
||||
void MainWindow::on_PM3_disconnectButton_clicked()
|
||||
{
|
||||
pm3state = false;
|
||||
setState(false);
|
||||
emit killPM3();
|
||||
emit setSerialListener("", false);
|
||||
setStatusBar(connectStatusBar, tr("Not Connected"));
|
||||
}
|
||||
|
||||
void MainWindow::refreshOutput(const QString& output)
|
||||
@ -128,7 +128,19 @@ void MainWindow::refreshOutput(const QString& output)
|
||||
|
||||
void MainWindow::on_stopButton_clicked()
|
||||
{
|
||||
|
||||
if(!pm3state)
|
||||
on_PM3_disconnectButton_clicked();
|
||||
else
|
||||
{
|
||||
on_PM3_disconnectButton_clicked();
|
||||
for(int i = 0; i < 10; i++)
|
||||
{
|
||||
util->delay(200);
|
||||
if(!pm3state)
|
||||
break;
|
||||
}
|
||||
on_PM3_connectButton_clicked();
|
||||
}
|
||||
}
|
||||
// *********************************************************
|
||||
|
||||
@ -866,7 +878,6 @@ void MainWindow::uiInit()
|
||||
ui->MF_dataWidget->setHorizontalHeaderItem(0, new QTableWidgetItem(tr("Sec")));
|
||||
ui->MF_dataWidget->setHorizontalHeaderItem(1, new QTableWidgetItem(tr("Blk")));
|
||||
ui->MF_dataWidget->setHorizontalHeaderItem(2, new QTableWidgetItem(tr("Data")));
|
||||
ui->MF_dataWidget->verticalHeader()->setVisible(false);
|
||||
ui->MF_dataWidget->setColumnWidth(0, 55);
|
||||
ui->MF_dataWidget->setColumnWidth(1, 55);
|
||||
ui->MF_dataWidget->setColumnWidth(2, 450);
|
||||
@ -875,7 +886,6 @@ void MainWindow::uiInit()
|
||||
ui->MF_keyWidget->setHorizontalHeaderItem(0, new QTableWidgetItem(tr("Sec")));
|
||||
ui->MF_keyWidget->setHorizontalHeaderItem(1, new QTableWidgetItem(tr("KeyA")));
|
||||
ui->MF_keyWidget->setHorizontalHeaderItem(2, new QTableWidgetItem(tr("KeyB")));
|
||||
ui->MF_keyWidget->verticalHeader()->setVisible(false);
|
||||
ui->MF_keyWidget->setColumnWidth(0, 35);
|
||||
ui->MF_keyWidget->setColumnWidth(1, 125);
|
||||
ui->MF_keyWidget->setColumnWidth(2, 125);
|
||||
@ -917,11 +927,21 @@ void MainWindow::uiInit()
|
||||
ui->PM3_pathEdit->setText(settings->value("path", "proxmark3").toString());
|
||||
settings->endGroup();
|
||||
|
||||
settings->beginGroup("Client_Args");
|
||||
ui->Set_Client_startArgsEdit->setText(settings->value("args", "<port> -f").toString());
|
||||
settings->endGroup();
|
||||
|
||||
settings->beginGroup("Client_forceButtonsEnabled");
|
||||
ui->Set_Client_forceEnabledBox->setChecked(settings->value("state", false).toBool());
|
||||
settings->endGroup();
|
||||
|
||||
ui->MF_RW_keyTypeBox->addItem("A", Mifare::KEY_A);
|
||||
ui->MF_RW_keyTypeBox->addItem("B", Mifare::KEY_B);
|
||||
|
||||
on_Raw_CMDHistoryBox_stateChanged(Qt::Unchecked);
|
||||
on_PM3_refreshPortButton_clicked();
|
||||
|
||||
loadClientPreloadEnv();
|
||||
}
|
||||
|
||||
void MainWindow::signalInit()
|
||||
@ -1059,3 +1079,65 @@ void MainWindow::on_MF_Attack_darksideButton_clicked()
|
||||
mifare->darkside();
|
||||
setState(true);
|
||||
}
|
||||
|
||||
void MainWindow::on_Set_Client_envDeleteButton_clicked()
|
||||
{
|
||||
ui->Set_Client_envTable->removeRow(ui->Set_Client_envTable->currentRow());
|
||||
}
|
||||
|
||||
void MainWindow::on_Set_Client_envAddButton_clicked()
|
||||
{
|
||||
ui->Set_Client_envTable->insertRow(ui->Set_Client_envTable->rowCount());
|
||||
}
|
||||
|
||||
void MainWindow::on_Set_Client_envClearButton_clicked()
|
||||
{
|
||||
ui->Set_Client_envTable->clearContents();
|
||||
ui->Set_Client_envTable->setRowCount(0);
|
||||
}
|
||||
|
||||
void MainWindow::on_Set_Client_envSaveButton_clicked()
|
||||
{
|
||||
settings->beginGroup("Client_Env");
|
||||
for(int i = 0; i < ui->Set_Client_envTable->rowCount(); i++)
|
||||
{
|
||||
QTableWidgetItem* key = ui->Set_Client_envTable->item(i, 0);
|
||||
QTableWidgetItem* val = ui->Set_Client_envTable->item(i, 1);
|
||||
if(key == nullptr || val == nullptr || key->text().isEmpty() || val->text().isEmpty())
|
||||
continue;
|
||||
settings->setValue(key->text(), val->text());
|
||||
qDebug() << "Env saved: " << i << key->text() << val->text();
|
||||
}
|
||||
settings->endGroup();
|
||||
}
|
||||
|
||||
void MainWindow::loadClientPreloadEnv()
|
||||
{
|
||||
ui->Set_Client_envTable->clearContents();
|
||||
settings->beginGroup("Client_Env");
|
||||
QStringList keyList = settings->allKeys();
|
||||
ui->Set_Client_envTable->setRowCount(keyList.size());
|
||||
for(int i = 0; i < keyList.size(); i++)
|
||||
{
|
||||
ui->Set_Client_envTable->setItem(i, 0, new QTableWidgetItem(keyList[i]));
|
||||
ui->Set_Client_envTable->setItem(i, 1, new QTableWidgetItem(settings->value(keyList[i]).toString()));
|
||||
}
|
||||
settings->endGroup();
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::on_Set_Client_startArgsEdit_editingFinished()
|
||||
{
|
||||
settings->beginGroup("Client_Args");
|
||||
settings->setValue("args", ui->Set_Client_startArgsEdit->text());
|
||||
settings->endGroup();
|
||||
}
|
||||
|
||||
void MainWindow::on_Set_Client_forceEnabledBox_stateChanged(int arg1)
|
||||
{
|
||||
settings->beginGroup("Client_forceButtonsEnabled");
|
||||
settings->setValue("state", arg1 == Qt::Checked);
|
||||
settings->endGroup();
|
||||
}
|
||||
|
||||
|
||||
|
@ -20,6 +20,7 @@
|
||||
#include <QSizePolicy>
|
||||
#include <QSettings>
|
||||
#include <QPushButton>
|
||||
#include <QProcessEnvironment>
|
||||
|
||||
#include "common/myeventfilter.h"
|
||||
#include "common/pm3process.h"
|
||||
@ -90,7 +91,6 @@ private slots:
|
||||
|
||||
void on_MF_RW_writeSelectedButton_clicked();
|
||||
|
||||
|
||||
void on_MF_RW_dumpButton_clicked();
|
||||
|
||||
void on_MF_RW_restoreButton_clicked();
|
||||
@ -156,6 +156,20 @@ private slots:
|
||||
|
||||
void on_MF_Attack_darksideButton_clicked();
|
||||
|
||||
void on_Set_Client_envDeleteButton_clicked();
|
||||
|
||||
void on_Set_Client_envAddButton_clicked();
|
||||
|
||||
void on_Set_Client_envSaveButton_clicked();
|
||||
|
||||
void loadClientPreloadEnv();
|
||||
|
||||
void on_Set_Client_startArgsEdit_editingFinished();
|
||||
|
||||
void on_Set_Client_forceEnabledBox_stateChanged(int arg1);
|
||||
|
||||
void on_Set_Client_envClearButton_clicked();
|
||||
|
||||
private:
|
||||
Ui::MainWindow* ui;
|
||||
QButtonGroup* typeBtnGroup;
|
||||
|
266
ui/mainwindow.ui
266
ui/mainwindow.ui
@ -6,7 +6,7 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>970</width>
|
||||
<width>1029</width>
|
||||
<height>770</height>
|
||||
</rect>
|
||||
</property>
|
||||
@ -120,7 +120,7 @@
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
<number>4</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="mifareTab">
|
||||
<attribute name="title">
|
||||
@ -170,6 +170,12 @@
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::SingleSelection</enum>
|
||||
</property>
|
||||
<attribute name="horizontalHeaderStretchLastSection">
|
||||
<bool>true</bool>
|
||||
</attribute>
|
||||
<attribute name="verticalHeaderVisible">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
<attribute name="verticalHeaderMinimumSectionSize">
|
||||
<number>20</number>
|
||||
</attribute>
|
||||
@ -329,6 +335,9 @@
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::SingleSelection</enum>
|
||||
</property>
|
||||
<attribute name="verticalHeaderVisible">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
<attribute name="verticalHeaderMinimumSectionSize">
|
||||
<number>20</number>
|
||||
</attribute>
|
||||
@ -1515,6 +1524,259 @@
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="settingsTab">
|
||||
<attribute name="title">
|
||||
<string>Settings</string>
|
||||
</attribute>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_18">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_12">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="Set_clientGroupBox">
|
||||
<property name="title">
|
||||
<string>Client</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_10">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_11">
|
||||
<property name="text">
|
||||
<string>Preload environment variables</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_15">
|
||||
<item>
|
||||
<widget class="QTableWidget" name="Set_Client_envTable">
|
||||
<property name="selectionBehavior">
|
||||
<enum>QAbstractItemView::SelectRows</enum>
|
||||
</property>
|
||||
<attribute name="horizontalHeaderStretchLastSection">
|
||||
<bool>true</bool>
|
||||
</attribute>
|
||||
<attribute name="verticalHeaderVisible">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Key</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Value</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_8">
|
||||
<item>
|
||||
<widget class="QPushButton" name="Set_Client_envAddButton">
|
||||
<property name="text">
|
||||
<string>Add</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="Set_Client_envDeleteButton">
|
||||
<property name="text">
|
||||
<string>Delete</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="Set_Client_envClearButton">
|
||||
<property name="text">
|
||||
<string>Clear</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="Set_Client_envSaveButton">
|
||||
<property name="text">
|
||||
<string>Save</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer_4">
|
||||
<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>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_13">
|
||||
<property name="text">
|
||||
<string>Note:
|
||||
If the variable name already exists, this app will add the new value to the head of the existing one, so these new values have higher priority when calling Proxmark3 client.
|
||||
The environment variables added here won't affect other apps.</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="Line" name="line">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_12">
|
||||
<property name="text">
|
||||
<string>Start arguments</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="Set_Client_startArgsEdit">
|
||||
<property name="text">
|
||||
<string><port> -f</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_14">
|
||||
<property name="text">
|
||||
<string>Note:
|
||||
-f is necessary because the GUI need to handle the output in time
|
||||
In some cases the arguments should be set to "-p /dev/<port> -f"
|
||||
or "-p <port> -f"</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="Line" name="line_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_16">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="Set_Client_forceEnabledBox">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_15">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Keep buttons enabled even the client is running or disconnected</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="title">
|
||||
<string>GUI</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_11">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_16">
|
||||
<property name="text">
|
||||
<string>Language</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_17">
|
||||
<item>
|
||||
<widget class="QComboBox" name="Set_GUI_languageBox"/>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_9">
|
||||
<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>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer_5">
|
||||
<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>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_10">
|
||||
<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>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
|
Loading…
x
Reference in New Issue
Block a user