mirror of
https://github.com/wh201906/Proxmark3GUI.git
synced 2025-02-16 22:21:30 +08:00
A small patch
Support specifying client working directory Clean all compile warnings
This commit is contained in:
parent
7f96c061dc
commit
aa6b93984c
@ -72,6 +72,7 @@ Great thanks to him.
|
|||||||
+ Support configuring environment variables by script
|
+ Support configuring environment variables by script
|
||||||
(Useful when the client requires specific environment variables)
|
(Useful when the client requires specific environment variables)
|
||||||
+ All functions are compatible with Iceman/RRG repo(tested on v4.9237)
|
+ All functions are compatible with Iceman/RRG repo(tested on v4.9237)
|
||||||
|
+ Support specifying client working directory
|
||||||
+ Fix some bugs
|
+ Fix some bugs
|
||||||
|
|
||||||
### V0.1.3
|
### V0.1.3
|
||||||
|
@ -71,6 +71,7 @@ release页面中有含客户端的GUI。这个GUI也可以搭配你自己的客
|
|||||||
+ 可通过外部脚本配置环境变量
|
+ 可通过外部脚本配置环境变量
|
||||||
(在客户端需要配置环境变量时很有用)
|
(在客户端需要配置环境变量时很有用)
|
||||||
+ 全功能兼容冰人版(在v4.9237上测试通过)
|
+ 全功能兼容冰人版(在v4.9237上测试通过)
|
||||||
|
+ 支持指定客户端工作路径
|
||||||
+ 修复部分bug
|
+ 修复部分bug
|
||||||
|
|
||||||
### V0.1.3
|
### V0.1.3
|
||||||
|
@ -55,7 +55,11 @@ void PM3Process::connectPM3(const QString& path, const QString& port, const QStr
|
|||||||
result = result.left(result.indexOf("\r\n"));
|
result = result.left(result.indexOf("\r\n"));
|
||||||
result = result.mid(3, result.lastIndexOf(" ") - 3);
|
result = result.mid(3, result.lastIndexOf(" ") - 3);
|
||||||
emit PM3StatedChanged(true, result);
|
emit PM3StatedChanged(true, result);
|
||||||
setSerialListener(port, true);
|
|
||||||
|
// if the arguments don't contain <port>, then disable the port listener
|
||||||
|
// useful when using offline sniff
|
||||||
|
if(args.indexOf(port) != -1)
|
||||||
|
setSerialListener(port, true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
kill();
|
kill();
|
||||||
@ -132,5 +136,11 @@ void PM3Process::setProcEnv(const QStringList* env)
|
|||||||
{
|
{
|
||||||
// qDebug() << "passed Env List" << *env;
|
// qDebug() << "passed Env List" << *env;
|
||||||
this->setEnvironment(*env);
|
this->setEnvironment(*env);
|
||||||
// qDebug() << "final Env List" << processEnvironment().toStringList();
|
// qDebug() << "final Env List" << processEnvironment().toStringList();
|
||||||
|
}
|
||||||
|
|
||||||
|
void PM3Process::setWorkingDir(const QString& dir)
|
||||||
|
{
|
||||||
|
// the working directory cannot be the default, or the client will failed to load the dll
|
||||||
|
this->setWorkingDirectory(dir);
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
#include <QtSerialPort/QSerialPortInfo>
|
#include <QtSerialPort/QSerialPortInfo>
|
||||||
#include <QtSerialPort/QSerialPort>
|
#include <QtSerialPort/QSerialPort>
|
||||||
#include <QProcessEnvironment>
|
#include <QProcessEnvironment>
|
||||||
|
#include <QDir>
|
||||||
|
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
@ -27,6 +28,7 @@ public slots:
|
|||||||
qint64 write(QString data);
|
qint64 write(QString data);
|
||||||
void reconnectPM3();
|
void reconnectPM3();
|
||||||
void setProcEnv(const QStringList* env);
|
void setProcEnv(const QStringList* env);
|
||||||
|
void setWorkingDir(const QString& dir);
|
||||||
private slots:
|
private slots:
|
||||||
void onTimeout();
|
void onTimeout();
|
||||||
void onReadyRead();
|
void onReadyRead();
|
||||||
|
205
lang/en_US.ts
205
lang/en_US.ts
@ -377,12 +377,13 @@ It could make the whole sector blocked irreversibly!</source>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="473"/>
|
<location filename="../ui/mainwindow.ui" line="473"/>
|
||||||
<location filename="../ui/mainwindow.ui" line="1179"/>
|
<location filename="../ui/mainwindow.ui" line="1179"/>
|
||||||
|
<location filename="../ui/mainwindow.ui" line="1602"/>
|
||||||
<source>Save</source>
|
<source>Save</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="493"/>
|
<location filename="../ui/mainwindow.ui" line="493"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="921"/>
|
<location filename="../ui/mainwindow.cpp" line="932"/>
|
||||||
<source>Data</source>
|
<source>Data</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@ -478,7 +479,7 @@ It could make the whole sector blocked irreversibly!</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="878"/>
|
<location filename="../ui/mainwindow.ui" line="878"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="749"/>
|
<location filename="../ui/mainwindow.cpp" line="760"/>
|
||||||
<source>About UID Card</source>
|
<source>About UID Card</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@ -658,7 +659,7 @@ It could make the whole sector blocked irreversibly!</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="1471"/>
|
<location filename="../ui/mainwindow.ui" line="1471"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="193"/>
|
<location filename="../ui/mainwindow.cpp" line="204"/>
|
||||||
<source>History:</source>
|
<source>History:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@ -701,16 +702,32 @@ then put the path of the script there</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="1586"/>
|
<location filename="../ui/mainwindow.ui" line="1586"/>
|
||||||
|
<source>Client working directory:</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/mainwindow.ui" line="1595"/>
|
||||||
|
<source>../data</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/mainwindow.ui" line="1611"/>
|
||||||
|
<source>Note:
|
||||||
|
On Windows, the client working directory should not be identical to the path of GUI, otherwise the client will use the wrong .dll file.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/mainwindow.ui" line="1629"/>
|
||||||
<source>Start arguments</source>
|
<source>Start arguments</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="1593"/>
|
<location filename="../ui/mainwindow.ui" line="1636"/>
|
||||||
<source><port> -f</source>
|
<source><port> -f</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="1600"/>
|
<location filename="../ui/mainwindow.ui" line="1643"/>
|
||||||
<source>Note:
|
<source>Note:
|
||||||
-f is necessary because the GUI need to handle the output in time
|
-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"
|
In some cases the arguments should be set to "-p /dev/<port> -f"
|
||||||
@ -718,75 +735,75 @@ or "-p <port> -f"</source>
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="1647"/>
|
<location filename="../ui/mainwindow.ui" line="1690"/>
|
||||||
<source>Keep buttons enabled even the client is running or disconnected</source>
|
<source>Keep buttons enabled even the client is running or disconnected</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="1669"/>
|
<location filename="../ui/mainwindow.ui" line="1712"/>
|
||||||
<source>GUI</source>
|
<source>GUI</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="1677"/>
|
<location filename="../ui/mainwindow.ui" line="1720"/>
|
||||||
<source>Language: </source>
|
<source>Language: </source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="1684"/>
|
<location filename="../ui/mainwindow.ui" line="1727"/>
|
||||||
<source>Choose Language</source>
|
<source>Choose Language</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="1691"/>
|
<location filename="../ui/mainwindow.ui" line="1734"/>
|
||||||
<source>(Restart this app to use new language)</source>
|
<source>(Restart this app to use new language)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="92"/>
|
<location filename="../ui/mainwindow.cpp" line="93"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="288"/>
|
<location filename="../ui/mainwindow.cpp" line="299"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="514"/>
|
<location filename="../ui/mainwindow.cpp" line="525"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="534"/>
|
<location filename="../ui/mainwindow.cpp" line="545"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="547"/>
|
<location filename="../ui/mainwindow.cpp" line="558"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="566"/>
|
<location filename="../ui/mainwindow.cpp" line="577"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="579"/>
|
<location filename="../ui/mainwindow.cpp" line="590"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="602"/>
|
<location filename="../ui/mainwindow.cpp" line="613"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="615"/>
|
<location filename="../ui/mainwindow.cpp" line="626"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="806"/>
|
<location filename="../ui/mainwindow.cpp" line="817"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="825"/>
|
<location filename="../ui/mainwindow.cpp" line="836"/>
|
||||||
<source>Info</source>
|
<source>Info</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="92"/>
|
<location filename="../ui/mainwindow.cpp" line="93"/>
|
||||||
<source>Plz choose a port first</source>
|
<source>Plz choose a port first</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="128"/>
|
<location filename="../ui/mainwindow.cpp" line="139"/>
|
||||||
<source>Connected</source>
|
<source>Connected</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="134"/>
|
<location filename="../ui/mainwindow.cpp" line="145"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="909"/>
|
<location filename="../ui/mainwindow.cpp" line="920"/>
|
||||||
<source>Not Connected</source>
|
<source>Not Connected</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="560"/>
|
<location filename="../ui/mainwindow.cpp" line="571"/>
|
||||||
<source>Binary Data Files(*.bin *.dump);;Text Data Files(*.txt *.eml);;All Files(*.*)</source>
|
<source>Binary Data Files(*.bin *.dump);;Text Data Files(*.txt *.eml);;All Files(*.*)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="566"/>
|
<location filename="../ui/mainwindow.cpp" line="577"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="579"/>
|
<location filename="../ui/mainwindow.cpp" line="590"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="806"/>
|
<location filename="../ui/mainwindow.cpp" line="817"/>
|
||||||
<source>Failed to open</source>
|
<source>Failed to open</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="288"/>
|
<location filename="../ui/mainwindow.cpp" line="299"/>
|
||||||
<source>Continue?</source>
|
<source>Continue?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@ -796,222 +813,222 @@ or "-p <port> -f"</source>
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="288"/>
|
<location filename="../ui/mainwindow.cpp" line="299"/>
|
||||||
<source>Some of the data and key will be cleared.</source>
|
<source>Some of the data and key will be cleared.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="401"/>
|
<location filename="../ui/mainwindow.cpp" line="412"/>
|
||||||
<source>Plz select the font of data widget and key widget</source>
|
<source>Plz select the font of data widget and key widget</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="514"/>
|
<location filename="../ui/mainwindow.cpp" line="525"/>
|
||||||
<source>Data must consists of 32 Hex symbols(Whitespace is allowed)</source>
|
<source>Data must consists of 32 Hex symbols(Whitespace is allowed)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="534"/>
|
<location filename="../ui/mainwindow.cpp" line="545"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="547"/>
|
<location filename="../ui/mainwindow.cpp" line="558"/>
|
||||||
<source>Key must consists of 12 Hex symbols(Whitespace is allowed)</source>
|
<source>Key must consists of 12 Hex symbols(Whitespace is allowed)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="559"/>
|
<location filename="../ui/mainwindow.cpp" line="570"/>
|
||||||
<source>Plz select the data file:</source>
|
<source>Plz select the data file:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="572"/>
|
<location filename="../ui/mainwindow.cpp" line="583"/>
|
||||||
<source>Plz select the key file:</source>
|
<source>Plz select the key file:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="573"/>
|
<location filename="../ui/mainwindow.cpp" line="584"/>
|
||||||
<source>Binary Key Files(*.bin *.dump);;Binary Data Files(*.bin *.dump);;All Files(*.*)</source>
|
<source>Binary Key Files(*.bin *.dump);;Binary Data Files(*.bin *.dump);;All Files(*.*)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="595"/>
|
<location filename="../ui/mainwindow.cpp" line="606"/>
|
||||||
<source>Plz select the location to save data file:</source>
|
<source>Plz select the location to save data file:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="596"/>
|
<location filename="../ui/mainwindow.cpp" line="607"/>
|
||||||
<source>Binary Data Files(*.bin *.dump);;Text Data Files(*.txt *.eml)</source>
|
<source>Binary Data Files(*.bin *.dump);;Text Data Files(*.txt *.eml)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="602"/>
|
<location filename="../ui/mainwindow.cpp" line="613"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="615"/>
|
<location filename="../ui/mainwindow.cpp" line="626"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="825"/>
|
<location filename="../ui/mainwindow.cpp" line="836"/>
|
||||||
<source>Failed to save to</source>
|
<source>Failed to save to</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="608"/>
|
<location filename="../ui/mainwindow.cpp" line="619"/>
|
||||||
<source>Plz select the location to save key file:</source>
|
<source>Plz select the location to save key file:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="609"/>
|
<location filename="../ui/mainwindow.cpp" line="620"/>
|
||||||
<source>Binary Key Files(*.bin *.dump)</source>
|
<source>Binary Key Files(*.bin *.dump)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="734"/>
|
<location filename="../ui/mainwindow.cpp" line="745"/>
|
||||||
<source> Normally, the Block 0 of a typical Mifare card, which contains the UID, is locked during the manufacture. Users cannot write anything to Block 0 or set a new UID to a normal Mifare card.</source>
|
<source> Normally, the Block 0 of a typical Mifare card, which contains the UID, is locked during the manufacture. Users cannot write anything to Block 0 or set a new UID to a normal Mifare card.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="735"/>
|
<location filename="../ui/mainwindow.cpp" line="746"/>
|
||||||
<source> Chinese Magic Cards(aka UID Cards) are some special cards whose Block 0 are writeable. And you can change UID by writing to it.</source>
|
<source> Chinese Magic Cards(aka UID Cards) are some special cards whose Block 0 are writeable. And you can change UID by writing to it.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="737"/>
|
<location filename="../ui/mainwindow.cpp" line="748"/>
|
||||||
<source>There are two versions of Chinese Magic Cards, the Gen1 and the Gen2.</source>
|
<source>There are two versions of Chinese Magic Cards, the Gen1 and the Gen2.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="738"/>
|
<location filename="../ui/mainwindow.cpp" line="749"/>
|
||||||
<source> Gen1:</source>
|
<source> Gen1:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="738"/>
|
<location filename="../ui/mainwindow.cpp" line="749"/>
|
||||||
<source> also called UID card in China. It responses to some backdoor commands so you can access any blocks without password. The Proxmark3 has a bunch of related commands(csetblk, cgetblk, ...) to deal with this type of card, and my GUI also support these commands.</source>
|
<source> also called UID card in China. It responses to some backdoor commands so you can access any blocks without password. The Proxmark3 has a bunch of related commands(csetblk, cgetblk, ...) to deal with this type of card, and my GUI also support these commands.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="739"/>
|
<location filename="../ui/mainwindow.cpp" line="750"/>
|
||||||
<source> Gen2:</source>
|
<source> Gen2:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="739"/>
|
<location filename="../ui/mainwindow.cpp" line="750"/>
|
||||||
<source> doesn't response to the backdoor commands, which means that a reader cannot detect whether it is a Chinese Magic Card or not by sending backdoor commands.</source>
|
<source> doesn't response to the backdoor commands, which means that a reader cannot detect whether it is a Chinese Magic Card or not by sending backdoor commands.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="741"/>
|
<location filename="../ui/mainwindow.cpp" line="752"/>
|
||||||
<source>There are some types of Chinese Magic Card Gen2.</source>
|
<source>There are some types of Chinese Magic Card Gen2.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="742"/>
|
<location filename="../ui/mainwindow.cpp" line="753"/>
|
||||||
<source> CUID Card:</source>
|
<source> CUID Card:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="742"/>
|
<location filename="../ui/mainwindow.cpp" line="753"/>
|
||||||
<source> the Block 0 is writeable, you can write to this block repeatedly by normal wrbl command.</source>
|
<source> the Block 0 is writeable, you can write to this block repeatedly by normal wrbl command.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="743"/>
|
<location filename="../ui/mainwindow.cpp" line="754"/>
|
||||||
<source> (hf mf wrbl 0 A FFFFFFFFFFFF <the data you want to write>)</source>
|
<source> (hf mf wrbl 0 A FFFFFFFFFFFF <the data you want to write>)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="744"/>
|
<location filename="../ui/mainwindow.cpp" line="755"/>
|
||||||
<source> FUID Card:</source>
|
<source> FUID Card:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="744"/>
|
<location filename="../ui/mainwindow.cpp" line="755"/>
|
||||||
<source> you can only write to Block 0 once. After that, it seems like a typical Mifare card(Block 0 cannot be written to).</source>
|
<source> you can only write to Block 0 once. After that, it seems like a typical Mifare card(Block 0 cannot be written to).</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="745"/>
|
<location filename="../ui/mainwindow.cpp" line="756"/>
|
||||||
<source> (some readers might try changing the Block 0, which could detect the CUID Card. In that case, you should use FUID card.)</source>
|
<source> (some readers might try changing the Block 0, which could detect the CUID Card. In that case, you should use FUID card.)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="746"/>
|
<location filename="../ui/mainwindow.cpp" line="757"/>
|
||||||
<source> UFUID Card:</source>
|
<source> UFUID Card:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="746"/>
|
<location filename="../ui/mainwindow.cpp" line="757"/>
|
||||||
<source> It behaves like a CUID card(or UID card? I'm not sure) before you send some special command to lock it. Once it is locked, you cannot change its Block 0(just like a typical Mifare card).</source>
|
<source> It behaves like a CUID card(or UID card? I'm not sure) before you send some special command to lock it. Once it is locked, you cannot change its Block 0(just like a typical Mifare card).</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="748"/>
|
<location filename="../ui/mainwindow.cpp" line="759"/>
|
||||||
<source> Seemingly, these Chinese Magic Cards are more easily to be compromised by Nested Attack(it takes little time to get an unknown key).</source>
|
<source> Seemingly, these Chinese Magic Cards are more easily to be compromised by Nested Attack(it takes little time to get an unknown key).</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="793"/>
|
<location filename="../ui/mainwindow.cpp" line="804"/>
|
||||||
<source>Plz select the trace file:</source>
|
<source>Plz select the trace file:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="794"/>
|
<location filename="../ui/mainwindow.cpp" line="805"/>
|
||||||
<source>Trace Files(*.trc);;All Files(*.*)</source>
|
<source>Trace Files(*.trc);;All Files(*.*)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="816"/>
|
<location filename="../ui/mainwindow.cpp" line="827"/>
|
||||||
<source>Plz select the location to save trace file:</source>
|
<source>Plz select the location to save trace file:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="817"/>
|
<location filename="../ui/mainwindow.cpp" line="828"/>
|
||||||
<source>Trace Files(*.trc)</source>
|
<source>Trace Files(*.trc)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="910"/>
|
<location filename="../ui/mainwindow.cpp" line="921"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1079"/>
|
<location filename="../ui/mainwindow.cpp" line="1092"/>
|
||||||
<source>Idle</source>
|
<source>Idle</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="912"/>
|
<location filename="../ui/mainwindow.cpp" line="923"/>
|
||||||
<source>Stop</source>
|
<source>Stop</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="919"/>
|
<location filename="../ui/mainwindow.cpp" line="930"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="926"/>
|
<location filename="../ui/mainwindow.cpp" line="937"/>
|
||||||
<source>Sec</source>
|
<source>Sec</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="920"/>
|
<location filename="../ui/mainwindow.cpp" line="931"/>
|
||||||
<source>Blk</source>
|
<source>Blk</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="927"/>
|
<location filename="../ui/mainwindow.cpp" line="938"/>
|
||||||
<source>KeyA</source>
|
<source>KeyA</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="928"/>
|
<location filename="../ui/mainwindow.cpp" line="939"/>
|
||||||
<source>KeyB</source>
|
<source>KeyB</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1016"/>
|
<location filename="../ui/mainwindow.cpp" line="1029"/>
|
||||||
<source>HW Version:</source>
|
<source>HW Version:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1018"/>
|
<location filename="../ui/mainwindow.cpp" line="1031"/>
|
||||||
<source>PM3:</source>
|
<source>PM3:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1020"/>
|
<location filename="../ui/mainwindow.cpp" line="1033"/>
|
||||||
<source>State:</source>
|
<source>State:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1075"/>
|
<location filename="../ui/mainwindow.cpp" line="1088"/>
|
||||||
<source>Running</source>
|
<source>Running</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@ -1019,56 +1036,56 @@ or "-p <port> -f"</source>
|
|||||||
<context>
|
<context>
|
||||||
<name>Mifare</name>
|
<name>Mifare</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="641"/>
|
<location filename="../module/mifare.cpp" line="640"/>
|
||||||
<source>Success!</source>
|
<source>Success!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="228"/>
|
<location filename="../module/mifare.cpp" line="226"/>
|
||||||
<location filename="../module/mifare.cpp" line="641"/>
|
<location filename="../module/mifare.cpp" line="640"/>
|
||||||
<location filename="../module/mifare.cpp" line="645"/>
|
<location filename="../module/mifare.cpp" line="644"/>
|
||||||
<location filename="../module/mifare.cpp" line="669"/>
|
<location filename="../module/mifare.cpp" line="668"/>
|
||||||
<location filename="../module/mifare.cpp" line="708"/>
|
<location filename="../module/mifare.cpp" line="707"/>
|
||||||
<location filename="../module/mifare.cpp" line="721"/>
|
<location filename="../module/mifare.cpp" line="720"/>
|
||||||
<location filename="../module/mifare.cpp" line="776"/>
|
<location filename="../module/mifare.cpp" line="775"/>
|
||||||
<source>Info</source>
|
<source>Info</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="228"/>
|
<location filename="../module/mifare.cpp" line="226"/>
|
||||||
<source>Plz provide at least one known key</source>
|
<source>Plz provide at least one known key</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="492"/>
|
<location filename="../module/mifare.cpp" line="490"/>
|
||||||
<location filename="../module/mifare.cpp" line="645"/>
|
<location filename="../module/mifare.cpp" line="644"/>
|
||||||
<source>Failed!</source>
|
<source>Failed!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="670"/>
|
<location filename="../module/mifare.cpp" line="669"/>
|
||||||
<source>The Access Bits is invalid!
|
<source>The Access Bits is invalid!
|
||||||
It could make the whole sector blocked irreversibly!
|
It could make the whole sector blocked irreversibly!
|
||||||
Continue to write?</source>
|
Continue to write?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="708"/>
|
<location filename="../module/mifare.cpp" line="707"/>
|
||||||
<source>Successful!</source>
|
<source>Successful!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="721"/>
|
<location filename="../module/mifare.cpp" line="720"/>
|
||||||
<source>Failed to write to these blocks:</source>
|
<source>Failed to write to these blocks:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="725"/>
|
<location filename="../module/mifare.cpp" line="724"/>
|
||||||
<source>Select them?</source>
|
<source>Select them?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="776"/>
|
<location filename="../module/mifare.cpp" line="775"/>
|
||||||
<source>Failed to read card.</source>
|
<source>Failed to read card.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
BIN
lang/zh_CN.qm
BIN
lang/zh_CN.qm
Binary file not shown.
206
lang/zh_CN.ts
206
lang/zh_CN.ts
@ -381,12 +381,13 @@ It could make the whole sector blocked irreversibly!</source>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="473"/>
|
<location filename="../ui/mainwindow.ui" line="473"/>
|
||||||
<location filename="../ui/mainwindow.ui" line="1179"/>
|
<location filename="../ui/mainwindow.ui" line="1179"/>
|
||||||
|
<location filename="../ui/mainwindow.ui" line="1602"/>
|
||||||
<source>Save</source>
|
<source>Save</source>
|
||||||
<translation>保存</translation>
|
<translation>保存</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="493"/>
|
<location filename="../ui/mainwindow.ui" line="493"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="921"/>
|
<location filename="../ui/mainwindow.cpp" line="932"/>
|
||||||
<source>Data</source>
|
<source>Data</source>
|
||||||
<translation>数据</translation>
|
<translation>数据</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -482,7 +483,7 @@ It could make the whole sector blocked irreversibly!</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="878"/>
|
<location filename="../ui/mainwindow.ui" line="878"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="749"/>
|
<location filename="../ui/mainwindow.cpp" line="760"/>
|
||||||
<source>About UID Card</source>
|
<source>About UID Card</source>
|
||||||
<translation>关于UID卡</translation>
|
<translation>关于UID卡</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -662,7 +663,7 @@ It could make the whole sector blocked irreversibly!</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="1471"/>
|
<location filename="../ui/mainwindow.ui" line="1471"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="193"/>
|
<location filename="../ui/mainwindow.cpp" line="204"/>
|
||||||
<source>History:</source>
|
<source>History:</source>
|
||||||
<translation>命令历史:</translation>
|
<translation>命令历史:</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -706,16 +707,33 @@ then put the path of the script there</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="1586"/>
|
<location filename="../ui/mainwindow.ui" line="1586"/>
|
||||||
|
<source>Client working directory:</source>
|
||||||
|
<translation>客户端工作路径:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/mainwindow.ui" line="1595"/>
|
||||||
|
<source>../data</source>
|
||||||
|
<translation></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/mainwindow.ui" line="1611"/>
|
||||||
|
<source>Note:
|
||||||
|
On Windows, the client working directory should not be identical to the path of GUI, otherwise the client will use the wrong .dll file.</source>
|
||||||
|
<translation>注意:
|
||||||
|
在Windows系统中,客户端工作路径与GUI程序所在路径不能相同,否则客户端会使用错误的.dll文件。</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/mainwindow.ui" line="1629"/>
|
||||||
<source>Start arguments</source>
|
<source>Start arguments</source>
|
||||||
<translation>启动参数</translation>
|
<translation>启动参数</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="1593"/>
|
<location filename="../ui/mainwindow.ui" line="1636"/>
|
||||||
<source><port> -f</source>
|
<source><port> -f</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="1600"/>
|
<location filename="../ui/mainwindow.ui" line="1643"/>
|
||||||
<source>Note:
|
<source>Note:
|
||||||
-f is necessary because the GUI need to handle the output in time
|
-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"
|
In some cases the arguments should be set to "-p /dev/<port> -f"
|
||||||
@ -726,75 +744,75 @@ or "-p <port> -f"</source>
|
|||||||
或"-p <port> -f"</translation>
|
或"-p <port> -f"</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="1677"/>
|
<location filename="../ui/mainwindow.ui" line="1720"/>
|
||||||
<source>Language: </source>
|
<source>Language: </source>
|
||||||
<translation>语言: </translation>
|
<translation>语言: </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="1684"/>
|
<location filename="../ui/mainwindow.ui" line="1727"/>
|
||||||
<source>Choose Language</source>
|
<source>Choose Language</source>
|
||||||
<translation>选择语言</translation>
|
<translation>选择语言</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="1691"/>
|
<location filename="../ui/mainwindow.ui" line="1734"/>
|
||||||
<source>(Restart this app to use new language)</source>
|
<source>(Restart this app to use new language)</source>
|
||||||
<translation>(重启此程序以使用新语言)</translation>
|
<translation>(重启此程序以使用新语言)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="1647"/>
|
<location filename="../ui/mainwindow.ui" line="1690"/>
|
||||||
<source>Keep buttons enabled even the client is running or disconnected</source>
|
<source>Keep buttons enabled even the client is running or disconnected</source>
|
||||||
<translation>保持所有按钮可点击,即使未连接客户端或有任务正在运行</translation>
|
<translation>保持所有按钮可点击,即使未连接客户端或有任务正在运行</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="1669"/>
|
<location filename="../ui/mainwindow.ui" line="1712"/>
|
||||||
<source>GUI</source>
|
<source>GUI</source>
|
||||||
<translation>图形化界面</translation>
|
<translation>图形化界面</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="92"/>
|
<location filename="../ui/mainwindow.cpp" line="93"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="288"/>
|
<location filename="../ui/mainwindow.cpp" line="299"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="514"/>
|
<location filename="../ui/mainwindow.cpp" line="525"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="534"/>
|
<location filename="../ui/mainwindow.cpp" line="545"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="547"/>
|
<location filename="../ui/mainwindow.cpp" line="558"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="566"/>
|
<location filename="../ui/mainwindow.cpp" line="577"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="579"/>
|
<location filename="../ui/mainwindow.cpp" line="590"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="602"/>
|
<location filename="../ui/mainwindow.cpp" line="613"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="615"/>
|
<location filename="../ui/mainwindow.cpp" line="626"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="806"/>
|
<location filename="../ui/mainwindow.cpp" line="817"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="825"/>
|
<location filename="../ui/mainwindow.cpp" line="836"/>
|
||||||
<source>Info</source>
|
<source>Info</source>
|
||||||
<translation>信息</translation>
|
<translation>信息</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="92"/>
|
<location filename="../ui/mainwindow.cpp" line="93"/>
|
||||||
<source>Plz choose a port first</source>
|
<source>Plz choose a port first</source>
|
||||||
<translation>请先选择端口</translation>
|
<translation>请先选择端口</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="128"/>
|
<location filename="../ui/mainwindow.cpp" line="139"/>
|
||||||
<source>Connected</source>
|
<source>Connected</source>
|
||||||
<translation>已连接</translation>
|
<translation>已连接</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="134"/>
|
<location filename="../ui/mainwindow.cpp" line="145"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="909"/>
|
<location filename="../ui/mainwindow.cpp" line="920"/>
|
||||||
<source>Not Connected</source>
|
<source>Not Connected</source>
|
||||||
<translation>未连接</translation>
|
<translation>未连接</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="560"/>
|
<location filename="../ui/mainwindow.cpp" line="571"/>
|
||||||
<source>Binary Data Files(*.bin *.dump);;Text Data Files(*.txt *.eml);;All Files(*.*)</source>
|
<source>Binary Data Files(*.bin *.dump);;Text Data Files(*.txt *.eml);;All Files(*.*)</source>
|
||||||
<translation>二进制数据文件(*.bin *.dump);;文本数据文件(*.txt *.eml);;所有文件(*.*)</translation>
|
<translation>二进制数据文件(*.bin *.dump);;文本数据文件(*.txt *.eml);;所有文件(*.*)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="566"/>
|
<location filename="../ui/mainwindow.cpp" line="577"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="579"/>
|
<location filename="../ui/mainwindow.cpp" line="590"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="806"/>
|
<location filename="../ui/mainwindow.cpp" line="817"/>
|
||||||
<source>Failed to open</source>
|
<source>Failed to open</source>
|
||||||
<translation>无法打开</translation>
|
<translation>无法打开</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="288"/>
|
<location filename="../ui/mainwindow.cpp" line="299"/>
|
||||||
<source>Continue?</source>
|
<source>Continue?</source>
|
||||||
<translation>确定?</translation>
|
<translation>确定?</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -804,222 +822,222 @@ or "-p <port> -f"</source>
|
|||||||
<translation>检查更新</translation>
|
<translation>检查更新</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="288"/>
|
<location filename="../ui/mainwindow.cpp" line="299"/>
|
||||||
<source>Some of the data and key will be cleared.</source>
|
<source>Some of the data and key will be cleared.</source>
|
||||||
<translation>部分数据和密码将被清除</translation>
|
<translation>部分数据和密码将被清除</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="401"/>
|
<location filename="../ui/mainwindow.cpp" line="412"/>
|
||||||
<source>Plz select the font of data widget and key widget</source>
|
<source>Plz select the font of data widget and key widget</source>
|
||||||
<translation>请选择数据窗口和密钥窗口的字体</translation>
|
<translation>请选择数据窗口和密钥窗口的字体</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="514"/>
|
<location filename="../ui/mainwindow.cpp" line="525"/>
|
||||||
<source>Data must consists of 32 Hex symbols(Whitespace is allowed)</source>
|
<source>Data must consists of 32 Hex symbols(Whitespace is allowed)</source>
|
||||||
<translation>数据必须由32个十六进制字符组成(中间可含有空格)</translation>
|
<translation>数据必须由32个十六进制字符组成(中间可含有空格)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="534"/>
|
<location filename="../ui/mainwindow.cpp" line="545"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="547"/>
|
<location filename="../ui/mainwindow.cpp" line="558"/>
|
||||||
<source>Key must consists of 12 Hex symbols(Whitespace is allowed)</source>
|
<source>Key must consists of 12 Hex symbols(Whitespace is allowed)</source>
|
||||||
<translation>密钥必须由12个十六进制字符组成(中间可含有空格)</translation>
|
<translation>密钥必须由12个十六进制字符组成(中间可含有空格)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="559"/>
|
<location filename="../ui/mainwindow.cpp" line="570"/>
|
||||||
<source>Plz select the data file:</source>
|
<source>Plz select the data file:</source>
|
||||||
<translation>请选择数据文件:</translation>
|
<translation>请选择数据文件:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="572"/>
|
<location filename="../ui/mainwindow.cpp" line="583"/>
|
||||||
<source>Plz select the key file:</source>
|
<source>Plz select the key file:</source>
|
||||||
<translation>请选择密钥文件:</translation>
|
<translation>请选择密钥文件:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="573"/>
|
<location filename="../ui/mainwindow.cpp" line="584"/>
|
||||||
<source>Binary Key Files(*.bin *.dump);;Binary Data Files(*.bin *.dump);;All Files(*.*)</source>
|
<source>Binary Key Files(*.bin *.dump);;Binary Data Files(*.bin *.dump);;All Files(*.*)</source>
|
||||||
<translation>二进制密钥文件(*.bin *.dump)二进制密钥文件(*.bin *.dump);所有文件(*.*)</translation>
|
<translation>二进制密钥文件(*.bin *.dump)二进制密钥文件(*.bin *.dump);所有文件(*.*)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="595"/>
|
<location filename="../ui/mainwindow.cpp" line="606"/>
|
||||||
<source>Plz select the location to save data file:</source>
|
<source>Plz select the location to save data file:</source>
|
||||||
<translation>请选择数据文件保存的位置:</translation>
|
<translation>请选择数据文件保存的位置:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="596"/>
|
<location filename="../ui/mainwindow.cpp" line="607"/>
|
||||||
<source>Binary Data Files(*.bin *.dump);;Text Data Files(*.txt *.eml)</source>
|
<source>Binary Data Files(*.bin *.dump);;Text Data Files(*.txt *.eml)</source>
|
||||||
<translation>二进制数据文件(*.bin *.dump);文本数据文件(*.txt *.eml)</translation>
|
<translation>二进制数据文件(*.bin *.dump);文本数据文件(*.txt *.eml)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="602"/>
|
<location filename="../ui/mainwindow.cpp" line="613"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="615"/>
|
<location filename="../ui/mainwindow.cpp" line="626"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="825"/>
|
<location filename="../ui/mainwindow.cpp" line="836"/>
|
||||||
<source>Failed to save to</source>
|
<source>Failed to save to</source>
|
||||||
<translation>无法保存至</translation>
|
<translation>无法保存至</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="608"/>
|
<location filename="../ui/mainwindow.cpp" line="619"/>
|
||||||
<source>Plz select the location to save key file:</source>
|
<source>Plz select the location to save key file:</source>
|
||||||
<translation>请选择密钥文件保存的位置:</translation>
|
<translation>请选择密钥文件保存的位置:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="609"/>
|
<location filename="../ui/mainwindow.cpp" line="620"/>
|
||||||
<source>Binary Key Files(*.bin *.dump)</source>
|
<source>Binary Key Files(*.bin *.dump)</source>
|
||||||
<translation>二进制密码文件(*.bin *.dump)</translation>
|
<translation>二进制密码文件(*.bin *.dump)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="734"/>
|
<location filename="../ui/mainwindow.cpp" line="745"/>
|
||||||
<source> Normally, the Block 0 of a typical Mifare card, which contains the UID, is locked during the manufacture. Users cannot write anything to Block 0 or set a new UID to a normal Mifare card.</source>
|
<source> Normally, the Block 0 of a typical Mifare card, which contains the UID, is locked during the manufacture. Users cannot write anything to Block 0 or set a new UID to a normal Mifare card.</source>
|
||||||
<translation> 普通Mifare卡的块0无法写入,卡号也不能更改</translation>
|
<translation> 普通Mifare卡的块0无法写入,卡号也不能更改</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="735"/>
|
<location filename="../ui/mainwindow.cpp" line="746"/>
|
||||||
<source> Chinese Magic Cards(aka UID Cards) are some special cards whose Block 0 are writeable. And you can change UID by writing to it.</source>
|
<source> Chinese Magic Cards(aka UID Cards) are some special cards whose Block 0 are writeable. And you can change UID by writing to it.</source>
|
||||||
<translation> UID卡(在国外叫Chinese Magic Card)的块0可写,卡号可变。</translation>
|
<translation> UID卡(在国外叫Chinese Magic Card)的块0可写,卡号可变。</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="737"/>
|
<location filename="../ui/mainwindow.cpp" line="748"/>
|
||||||
<source>There are two versions of Chinese Magic Cards, the Gen1 and the Gen2.</source>
|
<source>There are two versions of Chinese Magic Cards, the Gen1 and the Gen2.</source>
|
||||||
<translation>国外把UID卡分为Chinese Magic Card Gen1和Gen2</translation>
|
<translation>国外把UID卡分为Chinese Magic Card Gen1和Gen2</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="738"/>
|
<location filename="../ui/mainwindow.cpp" line="749"/>
|
||||||
<source> Gen1:</source>
|
<source> Gen1:</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="738"/>
|
<location filename="../ui/mainwindow.cpp" line="749"/>
|
||||||
<source> also called UID card in China. It responses to some backdoor commands so you can access any blocks without password. The Proxmark3 has a bunch of related commands(csetblk, cgetblk, ...) to deal with this type of card, and my GUI also support these commands.</source>
|
<source> also called UID card in China. It responses to some backdoor commands so you can access any blocks without password. The Proxmark3 has a bunch of related commands(csetblk, cgetblk, ...) to deal with this type of card, and my GUI also support these commands.</source>
|
||||||
<translation> 指通常所说的UID卡,可以通过后门指令直接读写块而无需密码,在PM3和此GUI中有特殊命令处理这类卡片</translation>
|
<translation> 指通常所说的UID卡,可以通过后门指令直接读写块而无需密码,在PM3和此GUI中有特殊命令处理这类卡片</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="739"/>
|
<location filename="../ui/mainwindow.cpp" line="750"/>
|
||||||
<source> Gen2:</source>
|
<source> Gen2:</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="739"/>
|
<location filename="../ui/mainwindow.cpp" line="750"/>
|
||||||
<source> doesn't response to the backdoor commands, which means that a reader cannot detect whether it is a Chinese Magic Card or not by sending backdoor commands.</source>
|
<source> doesn't response to the backdoor commands, which means that a reader cannot detect whether it is a Chinese Magic Card or not by sending backdoor commands.</source>
|
||||||
<translation> 这个叫法在国内比较罕见,在国外指CUID/FUID/UFUID这类对后门指令不响应的卡(防火墙卡)</translation>
|
<translation> 这个叫法在国内比较罕见,在国外指CUID/FUID/UFUID这类对后门指令不响应的卡(防火墙卡)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="741"/>
|
<location filename="../ui/mainwindow.cpp" line="752"/>
|
||||||
<source>There are some types of Chinese Magic Card Gen2.</source>
|
<source>There are some types of Chinese Magic Card Gen2.</source>
|
||||||
<translation>以下是Gen2卡的详细介绍</translation>
|
<translation>以下是Gen2卡的详细介绍</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="742"/>
|
<location filename="../ui/mainwindow.cpp" line="753"/>
|
||||||
<source> CUID Card:</source>
|
<source> CUID Card:</source>
|
||||||
<translation> CUID卡:</translation>
|
<translation> CUID卡:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="742"/>
|
<location filename="../ui/mainwindow.cpp" line="753"/>
|
||||||
<source> the Block 0 is writeable, you can write to this block repeatedly by normal wrbl command.</source>
|
<source> the Block 0 is writeable, you can write to this block repeatedly by normal wrbl command.</source>
|
||||||
<translation> 可通过普通的写块命令来写块0,可重复擦写</translation>
|
<translation> 可通过普通的写块命令来写块0,可重复擦写</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="743"/>
|
<location filename="../ui/mainwindow.cpp" line="754"/>
|
||||||
<source> (hf mf wrbl 0 A FFFFFFFFFFFF <the data you want to write>)</source>
|
<source> (hf mf wrbl 0 A FFFFFFFFFFFF <the data you want to write>)</source>
|
||||||
<translation> (hf mf wrbl 0 A FFFFFFFFFFFF <待写入数据>)</translation>
|
<translation> (hf mf wrbl 0 A FFFFFFFFFFFF <待写入数据>)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="744"/>
|
<location filename="../ui/mainwindow.cpp" line="755"/>
|
||||||
<source> FUID Card:</source>
|
<source> FUID Card:</source>
|
||||||
<translation> FUID卡:</translation>
|
<translation> FUID卡:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="744"/>
|
<location filename="../ui/mainwindow.cpp" line="755"/>
|
||||||
<source> you can only write to Block 0 once. After that, it seems like a typical Mifare card(Block 0 cannot be written to).</source>
|
<source> you can only write to Block 0 once. After that, it seems like a typical Mifare card(Block 0 cannot be written to).</source>
|
||||||
<translation> 块0只能写入一次</translation>
|
<translation> 块0只能写入一次</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="745"/>
|
<location filename="../ui/mainwindow.cpp" line="756"/>
|
||||||
<source> (some readers might try changing the Block 0, which could detect the CUID Card. In that case, you should use FUID card.)</source>
|
<source> (some readers might try changing the Block 0, which could detect the CUID Card. In that case, you should use FUID card.)</source>
|
||||||
<translation> (更高级的穿防火墙卡,可以过一些能识别出CUID卡的读卡器)</translation>
|
<translation> (更高级的穿防火墙卡,可以过一些能识别出CUID卡的读卡器)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="746"/>
|
<location filename="../ui/mainwindow.cpp" line="757"/>
|
||||||
<source> UFUID Card:</source>
|
<source> UFUID Card:</source>
|
||||||
<translation> UFUID卡:</translation>
|
<translation> UFUID卡:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="746"/>
|
<location filename="../ui/mainwindow.cpp" line="757"/>
|
||||||
<source> It behaves like a CUID card(or UID card? I'm not sure) before you send some special command to lock it. Once it is locked, you cannot change its Block 0(just like a typical Mifare card).</source>
|
<source> It behaves like a CUID card(or UID card? I'm not sure) before you send some special command to lock it. Once it is locked, you cannot change its Block 0(just like a typical Mifare card).</source>
|
||||||
<translation> 锁卡前和普通UID/CUID卡一样可以反复读写块0,用特殊命令锁卡后就和FUID卡一样了</translation>
|
<translation> 锁卡前和普通UID/CUID卡一样可以反复读写块0,用特殊命令锁卡后就和FUID卡一样了</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="748"/>
|
<location filename="../ui/mainwindow.cpp" line="759"/>
|
||||||
<source> Seemingly, these Chinese Magic Cards are more easily to be compromised by Nested Attack(it takes little time to get an unknown key).</source>
|
<source> Seemingly, these Chinese Magic Cards are more easily to be compromised by Nested Attack(it takes little time to get an unknown key).</source>
|
||||||
<translation> 所有UID卡都似乎更容易被Nested攻击破解</translation>
|
<translation> 所有UID卡都似乎更容易被Nested攻击破解</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="793"/>
|
<location filename="../ui/mainwindow.cpp" line="804"/>
|
||||||
<source>Plz select the trace file:</source>
|
<source>Plz select the trace file:</source>
|
||||||
<translation>请选择trace文件:</translation>
|
<translation>请选择trace文件:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="794"/>
|
<location filename="../ui/mainwindow.cpp" line="805"/>
|
||||||
<source>Trace Files(*.trc);;All Files(*.*)</source>
|
<source>Trace Files(*.trc);;All Files(*.*)</source>
|
||||||
<translation>Trace文件(*.trc);;所有文件(*.*)</translation>
|
<translation>Trace文件(*.trc);;所有文件(*.*)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="816"/>
|
<location filename="../ui/mainwindow.cpp" line="827"/>
|
||||||
<source>Plz select the location to save trace file:</source>
|
<source>Plz select the location to save trace file:</source>
|
||||||
<translation>请选择trace文件保存的位置:</translation>
|
<translation>请选择trace文件保存的位置:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="817"/>
|
<location filename="../ui/mainwindow.cpp" line="828"/>
|
||||||
<source>Trace Files(*.trc)</source>
|
<source>Trace Files(*.trc)</source>
|
||||||
<translation>Trace文件(*.trc)</translation>
|
<translation>Trace文件(*.trc)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="910"/>
|
<location filename="../ui/mainwindow.cpp" line="921"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1079"/>
|
<location filename="../ui/mainwindow.cpp" line="1092"/>
|
||||||
<source>Idle</source>
|
<source>Idle</source>
|
||||||
<translation>空闲</translation>
|
<translation>空闲</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="912"/>
|
<location filename="../ui/mainwindow.cpp" line="923"/>
|
||||||
<source>Stop</source>
|
<source>Stop</source>
|
||||||
<translation>停止</translation>
|
<translation>停止</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="919"/>
|
<location filename="../ui/mainwindow.cpp" line="930"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="926"/>
|
<location filename="../ui/mainwindow.cpp" line="937"/>
|
||||||
<source>Sec</source>
|
<source>Sec</source>
|
||||||
<translation>扇区</translation>
|
<translation>扇区</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="920"/>
|
<location filename="../ui/mainwindow.cpp" line="931"/>
|
||||||
<source>Blk</source>
|
<source>Blk</source>
|
||||||
<translation>块</translation>
|
<translation>块</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="927"/>
|
<location filename="../ui/mainwindow.cpp" line="938"/>
|
||||||
<source>KeyA</source>
|
<source>KeyA</source>
|
||||||
<translation>密钥A</translation>
|
<translation>密钥A</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="928"/>
|
<location filename="../ui/mainwindow.cpp" line="939"/>
|
||||||
<source>KeyB</source>
|
<source>KeyB</source>
|
||||||
<translation>密钥B</translation>
|
<translation>密钥B</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1016"/>
|
<location filename="../ui/mainwindow.cpp" line="1029"/>
|
||||||
<source>HW Version:</source>
|
<source>HW Version:</source>
|
||||||
<translation>固件版本:</translation>
|
<translation>固件版本:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1018"/>
|
<location filename="../ui/mainwindow.cpp" line="1031"/>
|
||||||
<source>PM3:</source>
|
<source>PM3:</source>
|
||||||
<translation>连接状态:</translation>
|
<translation>连接状态:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1020"/>
|
<location filename="../ui/mainwindow.cpp" line="1033"/>
|
||||||
<source>State:</source>
|
<source>State:</source>
|
||||||
<translation>运行状态:</translation>
|
<translation>运行状态:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1075"/>
|
<location filename="../ui/mainwindow.cpp" line="1088"/>
|
||||||
<source>Running</source>
|
<source>Running</source>
|
||||||
<translation>正在运行</translation>
|
<translation>正在运行</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -1027,34 +1045,34 @@ or "-p <port> -f"</source>
|
|||||||
<context>
|
<context>
|
||||||
<name>Mifare</name>
|
<name>Mifare</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="641"/>
|
<location filename="../module/mifare.cpp" line="640"/>
|
||||||
<source>Success!</source>
|
<source>Success!</source>
|
||||||
<translation>成功!</translation>
|
<translation>成功!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="228"/>
|
<location filename="../module/mifare.cpp" line="226"/>
|
||||||
<location filename="../module/mifare.cpp" line="641"/>
|
<location filename="../module/mifare.cpp" line="640"/>
|
||||||
<location filename="../module/mifare.cpp" line="645"/>
|
<location filename="../module/mifare.cpp" line="644"/>
|
||||||
<location filename="../module/mifare.cpp" line="669"/>
|
<location filename="../module/mifare.cpp" line="668"/>
|
||||||
<location filename="../module/mifare.cpp" line="708"/>
|
<location filename="../module/mifare.cpp" line="707"/>
|
||||||
<location filename="../module/mifare.cpp" line="721"/>
|
<location filename="../module/mifare.cpp" line="720"/>
|
||||||
<location filename="../module/mifare.cpp" line="776"/>
|
<location filename="../module/mifare.cpp" line="775"/>
|
||||||
<source>Info</source>
|
<source>Info</source>
|
||||||
<translation>信息</translation>
|
<translation>信息</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="228"/>
|
<location filename="../module/mifare.cpp" line="226"/>
|
||||||
<source>Plz provide at least one known key</source>
|
<source>Plz provide at least one known key</source>
|
||||||
<translation>请至少提供一个已知密码</translation>
|
<translation>请至少提供一个已知密码</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="492"/>
|
<location filename="../module/mifare.cpp" line="490"/>
|
||||||
<location filename="../module/mifare.cpp" line="645"/>
|
<location filename="../module/mifare.cpp" line="644"/>
|
||||||
<source>Failed!</source>
|
<source>Failed!</source>
|
||||||
<translation>失败!</translation>
|
<translation>失败!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="670"/>
|
<location filename="../module/mifare.cpp" line="669"/>
|
||||||
<source>The Access Bits is invalid!
|
<source>The Access Bits is invalid!
|
||||||
It could make the whole sector blocked irreversibly!
|
It could make the whole sector blocked irreversibly!
|
||||||
Continue to write?</source>
|
Continue to write?</source>
|
||||||
@ -1063,22 +1081,22 @@ Continue to write?</source>
|
|||||||
确定要写入吗?</translation>
|
确定要写入吗?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="708"/>
|
<location filename="../module/mifare.cpp" line="707"/>
|
||||||
<source>Successful!</source>
|
<source>Successful!</source>
|
||||||
<translation>成功!</translation>
|
<translation>成功!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="721"/>
|
<location filename="../module/mifare.cpp" line="720"/>
|
||||||
<source>Failed to write to these blocks:</source>
|
<source>Failed to write to these blocks:</source>
|
||||||
<translation>写入以下块失败:</translation>
|
<translation>写入以下块失败:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="725"/>
|
<location filename="../module/mifare.cpp" line="724"/>
|
||||||
<source>Select them?</source>
|
<source>Select them?</source>
|
||||||
<translation>选中这些块?</translation>
|
<translation>选中这些块?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="776"/>
|
<location filename="../module/mifare.cpp" line="775"/>
|
||||||
<source>Failed to read card.</source>
|
<source>Failed to read card.</source>
|
||||||
<translation>读卡失败。</translation>
|
<translation>读卡失败。</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -102,16 +102,14 @@ QString Mifare::info(bool isRequiringOutput)
|
|||||||
end = result.indexOf("\n", end);
|
end = result.indexOf("\n", end);
|
||||||
return result.mid(begin, end - begin + 1);
|
return result.mid(begin, end - begin + 1);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
return "";
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
util->execCMD("hf 14a info");
|
util->execCMD("hf 14a info");
|
||||||
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
||||||
return "";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
void Mifare::chk()
|
void Mifare::chk()
|
||||||
@ -629,6 +627,7 @@ bool Mifare::_writeblk(int blockId, KeyType keyType, const QString& key, const Q
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Mifare::writeOne(TargetType targetType)
|
void Mifare::writeOne(TargetType targetType)
|
||||||
|
@ -28,6 +28,7 @@ MainWindow::MainWindow(QWidget *parent):
|
|||||||
pm3 = new PM3Process(pm3Thread);
|
pm3 = new PM3Process(pm3Thread);
|
||||||
pm3Thread->start();
|
pm3Thread->start();
|
||||||
pm3state = false;
|
pm3state = false;
|
||||||
|
clientWorkingDir = new QDir;
|
||||||
|
|
||||||
util = new Util(this);
|
util = new Util(this);
|
||||||
mifare = new Mifare(ui, util, this);
|
mifare = new Mifare(ui, util, this);
|
||||||
@ -94,6 +95,7 @@ void MainWindow::on_PM3_connectButton_clicked()
|
|||||||
{
|
{
|
||||||
QStringList args = ui->Set_Client_startArgsEdit->text().replace("<port>", port).split(' ');
|
QStringList args = ui->Set_Client_startArgsEdit->text().replace("<port>", port).split(' ');
|
||||||
saveClientPath(ui->PM3_pathEdit->text());
|
saveClientPath(ui->PM3_pathEdit->text());
|
||||||
|
|
||||||
QProcess envSetProcess;
|
QProcess envSetProcess;
|
||||||
QFileInfo envScriptPath(ui->Set_Client_envScriptEdit->text());
|
QFileInfo envScriptPath(ui->Set_Client_envScriptEdit->text());
|
||||||
if(envScriptPath.exists())
|
if(envScriptPath.exists())
|
||||||
@ -113,6 +115,15 @@ void MainWindow::on_PM3_connectButton_clicked()
|
|||||||
else
|
else
|
||||||
clientEnv.clear();
|
clientEnv.clear();
|
||||||
emit setProcEnv(&clientEnv);
|
emit setProcEnv(&clientEnv);
|
||||||
|
|
||||||
|
clientWorkingDir->setPath(QApplication::applicationDirPath());
|
||||||
|
qDebug() << clientWorkingDir->absolutePath();
|
||||||
|
clientWorkingDir->mkpath(ui->Set_Client_workingDirEdit->text());
|
||||||
|
qDebug() << clientWorkingDir->absolutePath();
|
||||||
|
clientWorkingDir->cd(ui->Set_Client_workingDirEdit->text());
|
||||||
|
qDebug() << clientWorkingDir->absolutePath();
|
||||||
|
emit setWorkingDir(clientWorkingDir->absolutePath());
|
||||||
|
|
||||||
emit connectPM3(ui->PM3_pathEdit->text(), port, args);
|
emit connectPM3(ui->PM3_pathEdit->text(), port, args);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -976,6 +987,7 @@ void MainWindow::uiInit()
|
|||||||
|
|
||||||
settings->beginGroup("Client_Env");
|
settings->beginGroup("Client_Env");
|
||||||
ui->Set_Client_envScriptEdit->setText(settings->value("scriptPath").toString());
|
ui->Set_Client_envScriptEdit->setText(settings->value("scriptPath").toString());
|
||||||
|
ui->Set_Client_workingDirEdit->setText(settings->value("workingDir", "../data").toString());
|
||||||
settings->endGroup();
|
settings->endGroup();
|
||||||
|
|
||||||
ui->MF_RW_keyTypeBox->addItem("A", Mifare::KEY_A);
|
ui->MF_RW_keyTypeBox->addItem("A", Mifare::KEY_A);
|
||||||
@ -996,6 +1008,7 @@ void MainWindow::signalInit()
|
|||||||
connect(pm3, &PM3Process::PM3StatedChanged, util, &Util::setRunningState);
|
connect(pm3, &PM3Process::PM3StatedChanged, util, &Util::setRunningState);
|
||||||
connect(this, &MainWindow::killPM3, pm3, &PM3Process::kill);
|
connect(this, &MainWindow::killPM3, pm3, &PM3Process::kill);
|
||||||
connect(this, &MainWindow::setProcEnv, pm3, &PM3Process::setProcEnv);
|
connect(this, &MainWindow::setProcEnv, pm3, &PM3Process::setProcEnv);
|
||||||
|
connect(this, &MainWindow::setWorkingDir, pm3, &PM3Process::setWorkingDir);
|
||||||
|
|
||||||
connect(util, &Util::write, pm3, &PM3Process::write);
|
connect(util, &Util::write, pm3, &PM3Process::write);
|
||||||
|
|
||||||
@ -1160,3 +1173,10 @@ void MainWindow::on_Set_Client_envScriptEdit_editingFinished()
|
|||||||
settings->setValue("scriptPath", ui->Set_Client_envScriptEdit->text());
|
settings->setValue("scriptPath", ui->Set_Client_envScriptEdit->text());
|
||||||
settings->endGroup();
|
settings->endGroup();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::on_Set_Client_saveWorkingDirButton_clicked()
|
||||||
|
{
|
||||||
|
settings->beginGroup("Client_Env");
|
||||||
|
settings->setValue("workingDir", ui->Set_Client_workingDirEdit->text());
|
||||||
|
settings->endGroup();
|
||||||
|
}
|
||||||
|
@ -173,6 +173,8 @@ private slots:
|
|||||||
|
|
||||||
void on_Set_Client_envScriptEdit_editingFinished();
|
void on_Set_Client_envScriptEdit_editingFinished();
|
||||||
|
|
||||||
|
void on_Set_Client_saveWorkingDirButton_clicked();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::MainWindow* ui;
|
Ui::MainWindow* ui;
|
||||||
QButtonGroup* MFCardTypeBtnGroup;
|
QButtonGroup* MFCardTypeBtnGroup;
|
||||||
@ -199,6 +201,7 @@ private:
|
|||||||
QTimer* portSearchTimer;
|
QTimer* portSearchTimer;
|
||||||
QStringList portList;
|
QStringList portList;
|
||||||
QStringList clientEnv;
|
QStringList clientEnv;
|
||||||
|
QDir* clientWorkingDir;
|
||||||
|
|
||||||
Mifare* mifare;
|
Mifare* mifare;
|
||||||
Util* util;
|
Util* util;
|
||||||
@ -217,5 +220,6 @@ signals:
|
|||||||
void killPM3();
|
void killPM3();
|
||||||
void setSerialListener(const QString& name, bool state);
|
void setSerialListener(const QString& name, bool state);
|
||||||
void setProcEnv(const QStringList *env);
|
void setProcEnv(const QStringList *env);
|
||||||
|
void setWorkingDir(const QString& dir);
|
||||||
};
|
};
|
||||||
#endif // MAINWINDOW_H
|
#endif // MAINWINDOW_H
|
||||||
|
@ -130,7 +130,7 @@
|
|||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>0</number>
|
<number>4</number>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="mifareTab">
|
<widget class="QWidget" name="mifareTab">
|
||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
@ -1538,7 +1538,7 @@
|
|||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
<string>Settings</string>
|
<string>Settings</string>
|
||||||
</attribute>
|
</attribute>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_15">
|
<layout class="QHBoxLayout" name="horizontalLayout_18">
|
||||||
<item>
|
<item>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_12">
|
<layout class="QVBoxLayout" name="verticalLayout_12">
|
||||||
<item>
|
<item>
|
||||||
@ -1573,6 +1573,49 @@ then put the path of the script there</string>
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="Line" name="line_4">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_19">
|
||||||
|
<property name="text">
|
||||||
|
<string>Client working directory:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_15">
|
||||||
|
<item>
|
||||||
|
<widget class="QLineEdit" name="Set_Client_workingDirEdit">
|
||||||
|
<property name="text">
|
||||||
|
<string>../data</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="Set_Client_saveWorkingDirButton">
|
||||||
|
<property name="text">
|
||||||
|
<string>Save</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_20">
|
||||||
|
<property name="text">
|
||||||
|
<string>Note:
|
||||||
|
On Windows, the client working directory should not be identical to the path of GUI, otherwise the client will use the wrong .dll file.</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="Line" name="line">
|
<widget class="Line" name="line">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
|
@ -123,7 +123,7 @@ void MF_trailerDecoderDialog::setTableItem(QTableWidget* widget, int row, int co
|
|||||||
widget->item(row, column)->setText(text);
|
widget->item(row, column)->setText(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MF_trailerDecoderDialog::on_boxChanged(int arg1)
|
void MF_trailerDecoderDialog::on_boxChanged()
|
||||||
{
|
{
|
||||||
quint8 ACBits[4];
|
quint8 ACBits[4];
|
||||||
ACBits[0] = ui->C0Box->value();
|
ACBits[0] = ui->C0Box->value();
|
||||||
|
@ -27,7 +27,7 @@ private slots:
|
|||||||
|
|
||||||
void on_blockSizeChanged(int id, bool st);
|
void on_blockSizeChanged(int id, bool st);
|
||||||
|
|
||||||
void on_boxChanged(int arg1);
|
void on_boxChanged();
|
||||||
private:
|
private:
|
||||||
Ui::MF_trailerDecoderDialog *ui;
|
Ui::MF_trailerDecoderDialog *ui;
|
||||||
QRegularExpressionValidator* validator;
|
QRegularExpressionValidator* validator;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user