Support Choose Trailer block

pull/4/head
wh201906 4 years ago
parent bf8136a7fe
commit ad10a6e789

@ -290,552 +290,554 @@ It could make the whole sector blocked irreversibly!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="76"/> <location filename="../ui/mainwindow.ui" line="82"/>
<source>Refresh</source> <source>Refresh</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="83"/> <location filename="../ui/mainwindow.ui" line="95"/>
<source>Connect</source> <source>Connect</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="90"/> <location filename="../ui/mainwindow.ui" line="108"/>
<source>Disconnect</source> <source>Disconnect</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="109"/> <location filename="../ui/mainwindow.ui" line="127"/>
<source>Mifare</source> <source>Mifare</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="279"/> <location filename="../ui/mainwindow.ui" line="209"/>
<source>Select Trailer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="347"/>
<source>Card Type</source> <source>Card Type</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="294"/> <location filename="../ui/mainwindow.ui" line="368"/>
<source>MINI</source> <source>MINI</source>
<extracomment>320</extracomment> <extracomment>320</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="301"/> <location filename="../ui/mainwindow.ui" line="381"/>
<source>1K</source> <source>1K</source>
<extracomment>1024</extracomment> <extracomment>1024</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="311"/> <location filename="../ui/mainwindow.ui" line="397"/>
<source>2K</source> <source>2K</source>
<extracomment>2048</extracomment> <extracomment>2048</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="318"/> <location filename="../ui/mainwindow.ui" line="410"/>
<source>4K</source> <source>4K</source>
<extracomment>4096</extracomment> <extracomment>4096</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="328"/> <location filename="../ui/mainwindow.ui" line="420"/>
<source>File</source> <source>File</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="349"/> <location filename="../ui/mainwindow.ui" line="441"/>
<location filename="../ui/mainwindow.ui" line="952"/> <location filename="../ui/mainwindow.ui" line="1134"/>
<source>Load</source> <source>Load</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="362"/> <location filename="../ui/mainwindow.ui" line="454"/>
<location filename="../ui/mainwindow.ui" line="965"/> <location filename="../ui/mainwindow.ui" line="1147"/>
<source>Save</source> <source>Save</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="382"/> <location filename="../ui/mainwindow.ui" line="474"/>
<location filename="../ui/mainwindow.cpp" line="751"/> <location filename="../ui/mainwindow.cpp" line="814"/>
<source>Data</source> <source>Data</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="392"/> <location filename="../ui/mainwindow.ui" line="484"/>
<source>Key</source> <source>Key</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="402"/> <location filename="../ui/mainwindow.ui" line="494"/>
<source>Attack</source> <source>Attack</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="430"/> <location filename="../ui/mainwindow.ui" line="528"/>
<source>Card Info</source> <source>Card Info</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="443"/> <location filename="../ui/mainwindow.ui" line="541"/>
<source>Check Default</source> <source>Check Default</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="456"/> <location filename="../ui/mainwindow.ui" line="554"/>
<source>Nested</source> <source>Nested</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="463"/> <location filename="../ui/mainwindow.ui" line="567"/>
<source>Hardnested</source> <source>Hardnested</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="488"/> <location filename="../ui/mainwindow.ui" line="592"/>
<source>Read/Write</source> <source>Read/Write</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="501"/> <location filename="../ui/mainwindow.ui" line="605"/>
<source>Block:</source> <source>Block:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="533"/> <location filename="../ui/mainwindow.ui" line="637"/>
<source>Key:</source> <source>Key:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="552"/> <location filename="../ui/mainwindow.ui" line="656"/>
<source>Key Type:</source> <source>Key Type:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="926"/> <location filename="../ui/mainwindow.ui" line="1108"/>
<source>Snoop</source> <source>Snoop</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="939"/> <location filename="../ui/mainwindow.ui" line="1121"/>
<source>List Data</source> <source>List Data</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="575"/> <location filename="../ui/mainwindow.ui" line="679"/>
<source>Data:</source> <source>Data:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="597"/> <location filename="../ui/mainwindow.ui" line="701"/>
<source>Normal(Require Password)</source> <source>Normal(Require Password)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="830"/> <location filename="../ui/mainwindow.ui" line="783"/>
<source>Read All</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="655"/>
<source>Dump</source> <source>Dump</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="668"/> <location filename="../ui/mainwindow.ui" line="802"/>
<source>Restore</source> <source>Restore</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="678"/> <location filename="../ui/mainwindow.ui" line="812"/>
<source>Chinese Magic Card(Without Password)</source> <source>Chinese Magic Card(Without Password)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="693"/> <location filename="../ui/mainwindow.ui" line="833"/>
<source>Lock UFUID Card</source> <source>Lock UFUID Card</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="700"/> <location filename="../ui/mainwindow.ui" line="846"/>
<location filename="../ui/mainwindow.cpp" line="592"/> <location filename="../ui/mainwindow.cpp" line="651"/>
<source>About UID Card</source> <source>About UID Card</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="741"/> <location filename="../ui/mainwindow.ui" line="917"/>
<source>Set Parameter</source> <source>Set Parameter</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="760"/> <location filename="../ui/mainwindow.ui" line="936"/>
<source>Wipe</source> <source>Wipe</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="786"/> <location filename="../ui/mainwindow.ui" line="962"/>
<location filename="../ui/mainwindow.ui" line="856"/> <location filename="../ui/mainwindow.ui" line="1038"/>
<source>Simulate</source> <source>Simulate</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="817"/> <location filename="../ui/mainwindow.ui" line="467"/>
<source>Load from data above</source> <location filename="../ui/mainwindow.ui" line="1025"/>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="375"/>
<location filename="../ui/mainwindow.ui" line="843"/>
<source>Clear</source> <source>Clear</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="184"/> <location filename="../ui/mainwindow.ui" line="202"/>
<source>Select All</source> <source>Select All</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="194"/> <location filename="../ui/mainwindow.ui" line="238"/>
<source>KeyBlocks-&gt;Key</source> <source>KeyBlocks-&gt;Key</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="201"/> <location filename="../ui/mainwindow.ui" line="251"/>
<source>KeyBlocks&lt;-Key</source> <source>KeyBlocks&lt;-Key</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="208"/> <location filename="../ui/mainwindow.ui" line="264"/>
<source>Fill Keys</source> <source>Fill Keys</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="215"/> <location filename="../ui/mainwindow.ui" line="277"/>
<source>Trailer Decoder</source> <source>Trailer Decoder</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="222"/> <location filename="../ui/mainwindow.ui" line="290"/>
<source>Set Fonts</source> <source>Set Fonts</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="615"/> <location filename="../ui/mainwindow.ui" line="725"/>
<location filename="../ui/mainwindow.ui" line="707"/> <location filename="../ui/mainwindow.ui" line="859"/>
<source>Read One</source> <source>Read One</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="622"/> <location filename="../ui/mainwindow.ui" line="738"/>
<location filename="../ui/mainwindow.ui" line="714"/> <location filename="../ui/mainwindow.ui" line="872"/>
<source>Write One</source> <source>Write One</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="629"/> <location filename="../ui/mainwindow.ui" line="751"/>
<location filename="../ui/mainwindow.ui" line="721"/> <location filename="../ui/mainwindow.ui" line="885"/>
<location filename="../ui/mainwindow.ui" line="1012"/>
<source>Read Selected</source> <source>Read Selected</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="636"/> <location filename="../ui/mainwindow.ui" line="764"/>
<location filename="../ui/mainwindow.ui" line="728"/> <location filename="../ui/mainwindow.ui" line="898"/>
<location filename="../ui/mainwindow.ui" line="999"/>
<source>Write Selected</source> <source>Write Selected</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="879"/> <location filename="../ui/mainwindow.ui" line="1061"/>
<location filename="../ui/mainwindow.ui" line="913"/> <location filename="../ui/mainwindow.ui" line="1095"/>
<source>Sniff</source> <source>Sniff</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="991"/> <location filename="../ui/mainwindow.ui" line="1173"/>
<source>RawCommand</source> <source>RawCommand</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="1038"/> <location filename="../ui/mainwindow.ui" line="1220"/>
<location filename="../ui/mainwindow.cpp" line="145"/> <location filename="../ui/mainwindow.cpp" line="149"/>
<source>History:</source> <source>History:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="1070"/> <location filename="../ui/mainwindow.ui" line="1252"/>
<source>ClearHistory</source> <source>ClearHistory</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="1089"/> <location filename="../ui/mainwindow.ui" line="1271"/>
<source>Send</source> <source>Send</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="1096"/> <location filename="../ui/mainwindow.ui" line="1278"/>
<source>ClearOutput</source> <source>ClearOutput</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="77"/> <location filename="../ui/mainwindow.cpp" line="81"/>
<location filename="../ui/mainwindow.cpp" line="184"/> <location filename="../ui/mainwindow.cpp" line="188"/>
<location filename="../ui/mainwindow.cpp" line="346"/> <location filename="../ui/mainwindow.cpp" line="414"/>
<location filename="../ui/mainwindow.cpp" line="365"/> <location filename="../ui/mainwindow.cpp" line="434"/>
<location filename="../ui/mainwindow.cpp" line="378"/> <location filename="../ui/mainwindow.cpp" line="447"/>
<location filename="../ui/mainwindow.cpp" line="397"/> <location filename="../ui/mainwindow.cpp" line="466"/>
<location filename="../ui/mainwindow.cpp" line="410"/> <location filename="../ui/mainwindow.cpp" line="479"/>
<location filename="../ui/mainwindow.cpp" line="433"/> <location filename="../ui/mainwindow.cpp" line="502"/>
<location filename="../ui/mainwindow.cpp" line="446"/> <location filename="../ui/mainwindow.cpp" line="515"/>
<location filename="../ui/mainwindow.cpp" line="649"/> <location filename="../ui/mainwindow.cpp" line="709"/>
<location filename="../ui/mainwindow.cpp" line="668"/> <location filename="../ui/mainwindow.cpp" line="728"/>
<source>Info</source> <source>Info</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="77"/> <location filename="../ui/mainwindow.cpp" line="81"/>
<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="92"/> <location filename="../ui/mainwindow.cpp" line="96"/>
<source>Connected</source> <source>Connected</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="97"/> <location filename="../ui/mainwindow.cpp" line="101"/>
<location filename="../ui/mainwindow.cpp" line="107"/> <location filename="../ui/mainwindow.cpp" line="111"/>
<location filename="../ui/mainwindow.cpp" line="741"/> <location filename="../ui/mainwindow.cpp" line="804"/>
<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="391"/> <location filename="../ui/mainwindow.cpp" line="460"/>
<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="397"/> <location filename="../ui/mainwindow.cpp" line="466"/>
<location filename="../ui/mainwindow.cpp" line="410"/> <location filename="../ui/mainwindow.cpp" line="479"/>
<location filename="../ui/mainwindow.cpp" line="649"/> <location filename="../ui/mainwindow.cpp" line="709"/>
<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="184"/> <location filename="../ui/mainwindow.cpp" line="188"/>
<source>Continue?</source> <source>Continue?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="184"/> <location filename="../ui/mainwindow.cpp" line="10"/>
<source>Check Update</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="188"/>
<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="252"/> <location filename="../ui/mainwindow.cpp" line="301"/>
<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="346"/> <location filename="../ui/mainwindow.cpp" line="414"/>
<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="365"/> <location filename="../ui/mainwindow.cpp" line="434"/>
<location filename="../ui/mainwindow.cpp" line="378"/> <location filename="../ui/mainwindow.cpp" line="447"/>
<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="390"/> <location filename="../ui/mainwindow.cpp" line="459"/>
<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="403"/> <location filename="../ui/mainwindow.cpp" line="472"/>
<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="404"/> <location filename="../ui/mainwindow.cpp" line="473"/>
<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="426"/> <location filename="../ui/mainwindow.cpp" line="495"/>
<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="427"/> <location filename="../ui/mainwindow.cpp" line="496"/>
<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="433"/> <location filename="../ui/mainwindow.cpp" line="502"/>
<location filename="../ui/mainwindow.cpp" line="446"/> <location filename="../ui/mainwindow.cpp" line="515"/>
<location filename="../ui/mainwindow.cpp" line="668"/> <location filename="../ui/mainwindow.cpp" line="728"/>
<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="439"/> <location filename="../ui/mainwindow.cpp" line="508"/>
<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="440"/> <location filename="../ui/mainwindow.cpp" line="509"/>
<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="577"/> <location filename="../ui/mainwindow.cpp" line="636"/>
<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="578"/> <location filename="../ui/mainwindow.cpp" line="637"/>
<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="580"/> <location filename="../ui/mainwindow.cpp" line="639"/>
<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="581"/> <location filename="../ui/mainwindow.cpp" line="640"/>
<source> Gen1:</source> <source> Gen1:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="581"/> <location filename="../ui/mainwindow.cpp" line="640"/>
<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="582"/> <location filename="../ui/mainwindow.cpp" line="641"/>
<source> Gen2:</source> <source> Gen2:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="582"/> <location filename="../ui/mainwindow.cpp" line="641"/>
<source> doesn&apos;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&apos;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="584"/> <location filename="../ui/mainwindow.cpp" line="643"/>
<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="585"/> <location filename="../ui/mainwindow.cpp" line="644"/>
<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="585"/> <location filename="../ui/mainwindow.cpp" line="644"/>
<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="586"/> <location filename="../ui/mainwindow.cpp" line="645"/>
<source> (hf mf wrbl 0 A FFFFFFFFFFFF &lt;the data you want to write&gt;)</source> <source> (hf mf wrbl 0 A FFFFFFFFFFFF &lt;the data you want to write&gt;)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="587"/> <location filename="../ui/mainwindow.cpp" line="646"/>
<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="587"/> <location filename="../ui/mainwindow.cpp" line="646"/>
<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="588"/> <location filename="../ui/mainwindow.cpp" line="647"/>
<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="589"/> <location filename="../ui/mainwindow.cpp" line="648"/>
<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="589"/> <location filename="../ui/mainwindow.cpp" line="648"/>
<source> It behaves like a CUID card(or UID card? I&apos;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&apos;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="591"/> <location filename="../ui/mainwindow.cpp" line="650"/>
<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="636"/> <location filename="../ui/mainwindow.cpp" line="696"/>
<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="637"/> <location filename="../ui/mainwindow.cpp" line="697"/>
<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="659"/> <location filename="../ui/mainwindow.cpp" line="719"/>
<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="660"/> <location filename="../ui/mainwindow.cpp" line="720"/>
<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="742"/> <location filename="../ui/mainwindow.cpp" line="805"/>
<location filename="../ui/mainwindow.cpp" line="897"/> <location filename="../ui/mainwindow.cpp" line="960"/>
<source>Idle</source> <source>Idle</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="749"/> <location filename="../ui/mainwindow.cpp" line="812"/>
<location filename="../ui/mainwindow.cpp" line="758"/> <location filename="../ui/mainwindow.cpp" line="821"/>
<source>Sec</source> <source>Sec</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="750"/> <location filename="../ui/mainwindow.cpp" line="813"/>
<source>Blk</source> <source>Blk</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="759"/> <location filename="../ui/mainwindow.cpp" line="822"/>
<source>KeyA</source> <source>KeyA</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="760"/> <location filename="../ui/mainwindow.cpp" line="823"/>
<source>KeyB</source> <source>KeyB</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="834"/> <location filename="../ui/mainwindow.cpp" line="897"/>
<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="836"/> <location filename="../ui/mainwindow.cpp" line="899"/>
<source>PM3:</source> <source>PM3:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="838"/> <location filename="../ui/mainwindow.cpp" line="901"/>
<source>State:</source> <source>State:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="893"/> <location filename="../ui/mainwindow.cpp" line="956"/>
<source>Running</source> <source>Running</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -843,18 +845,15 @@ It could make the whole sector blocked irreversibly!</source>
<context> <context>
<name>Mifare</name> <name>Mifare</name>
<message> <message>
<location filename="../module/mifare.cpp" line="524"/> <location filename="../module/mifare.cpp" line="592"/>
<location filename="../module/mifare.cpp" line="611"/>
<source>Success!</source> <source>Success!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../module/mifare.cpp" line="219"/> <location filename="../module/mifare.cpp" line="219"/>
<location filename="../module/mifare.cpp" line="524"/> <location filename="../module/mifare.cpp" line="592"/>
<location filename="../module/mifare.cpp" line="528"/> <location filename="../module/mifare.cpp" line="596"/>
<location filename="../module/mifare.cpp" line="611"/> <location filename="../module/mifare.cpp" line="661"/>
<location filename="../module/mifare.cpp" line="615"/>
<location filename="../module/mifare.cpp" line="665"/>
<source>Info</source> <source>Info</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -864,14 +863,13 @@ It could make the whole sector blocked irreversibly!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../module/mifare.cpp" line="411"/> <location filename="../module/mifare.cpp" line="443"/>
<location filename="../module/mifare.cpp" line="528"/> <location filename="../module/mifare.cpp" line="596"/>
<location filename="../module/mifare.cpp" line="615"/>
<source>Failed!</source> <source>Failed!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../module/mifare.cpp" line="665"/> <location filename="../module/mifare.cpp" line="661"/>
<source>Failed to read card.</source> <source>Failed to read card.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

@ -294,552 +294,554 @@ It could make the whole sector blocked irreversibly!</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="76"/> <location filename="../ui/mainwindow.ui" line="82"/>
<source>Refresh</source> <source>Refresh</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="83"/> <location filename="../ui/mainwindow.ui" line="95"/>
<source>Connect</source> <source>Connect</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="90"/> <location filename="../ui/mainwindow.ui" line="108"/>
<source>Disconnect</source> <source>Disconnect</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="109"/> <location filename="../ui/mainwindow.ui" line="127"/>
<source>Mifare</source> <source>Mifare</source>
<translation>Mifare(IC)</translation> <translation>Mifare(IC)</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="279"/> <location filename="../ui/mainwindow.ui" line="209"/>
<source>Select Trailer</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="347"/>
<source>Card Type</source> <source>Card Type</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="294"/> <location filename="../ui/mainwindow.ui" line="368"/>
<source>MINI</source> <source>MINI</source>
<extracomment>320</extracomment> <extracomment>320</extracomment>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="301"/> <location filename="../ui/mainwindow.ui" line="381"/>
<source>1K</source> <source>1K</source>
<extracomment>1024</extracomment> <extracomment>1024</extracomment>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="311"/> <location filename="../ui/mainwindow.ui" line="397"/>
<source>2K</source> <source>2K</source>
<extracomment>2048</extracomment> <extracomment>2048</extracomment>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="318"/> <location filename="../ui/mainwindow.ui" line="410"/>
<source>4K</source> <source>4K</source>
<extracomment>4096</extracomment> <extracomment>4096</extracomment>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="328"/> <location filename="../ui/mainwindow.ui" line="420"/>
<source>File</source> <source>File</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="349"/> <location filename="../ui/mainwindow.ui" line="441"/>
<location filename="../ui/mainwindow.ui" line="952"/> <location filename="../ui/mainwindow.ui" line="1134"/>
<source>Load</source> <source>Load</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="362"/> <location filename="../ui/mainwindow.ui" line="454"/>
<location filename="../ui/mainwindow.ui" line="965"/> <location filename="../ui/mainwindow.ui" line="1147"/>
<source>Save</source> <source>Save</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="382"/> <location filename="../ui/mainwindow.ui" line="474"/>
<location filename="../ui/mainwindow.cpp" line="751"/> <location filename="../ui/mainwindow.cpp" line="814"/>
<source>Data</source> <source>Data</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="392"/> <location filename="../ui/mainwindow.ui" line="484"/>
<source>Key</source> <source>Key</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="402"/> <location filename="../ui/mainwindow.ui" line="494"/>
<source>Attack</source> <source>Attack</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="430"/> <location filename="../ui/mainwindow.ui" line="528"/>
<source>Card Info</source> <source>Card Info</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="443"/> <location filename="../ui/mainwindow.ui" line="541"/>
<source>Check Default</source> <source>Check Default</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="456"/> <location filename="../ui/mainwindow.ui" line="554"/>
<source>Nested</source> <source>Nested</source>
<translation>Nested</translation> <translation>Nested</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="463"/> <location filename="../ui/mainwindow.ui" line="567"/>
<source>Hardnested</source> <source>Hardnested</source>
<translation>Hardested</translation> <translation>Hardested</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="488"/> <location filename="../ui/mainwindow.ui" line="592"/>
<source>Read/Write</source> <source>Read/Write</source>
<translation>/</translation> <translation>/</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="501"/> <location filename="../ui/mainwindow.ui" line="605"/>
<source>Block:</source> <source>Block:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="533"/> <location filename="../ui/mainwindow.ui" line="637"/>
<source>Key:</source> <source>Key:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="552"/> <location filename="../ui/mainwindow.ui" line="656"/>
<source>Key Type:</source> <source>Key Type:</source>
<translation>Key</translation> <translation>Key</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="926"/> <location filename="../ui/mainwindow.ui" line="1108"/>
<source>Snoop</source> <source>Snoop</source>
<translation>(Snoop)</translation> <translation>(Snoop)</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="939"/> <location filename="../ui/mainwindow.ui" line="1121"/>
<source>List Data</source> <source>List Data</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="575"/> <location filename="../ui/mainwindow.ui" line="679"/>
<source>Data:</source> <source>Data:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="597"/> <location filename="../ui/mainwindow.ui" line="701"/>
<source>Normal(Require Password)</source> <source>Normal(Require Password)</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="830"/> <location filename="../ui/mainwindow.ui" line="783"/>
<source>Read All</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="655"/>
<source>Dump</source> <source>Dump</source>
<translation>Dump</translation> <translation>Dump</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="668"/> <location filename="../ui/mainwindow.ui" line="802"/>
<source>Restore</source> <source>Restore</source>
<translation>Restore</translation> <translation>Restore</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="678"/> <location filename="../ui/mainwindow.ui" line="812"/>
<source>Chinese Magic Card(Without Password)</source> <source>Chinese Magic Card(Without Password)</source>
<translation>UID</translation> <translation>UID</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="693"/> <location filename="../ui/mainwindow.ui" line="833"/>
<source>Lock UFUID Card</source> <source>Lock UFUID Card</source>
<translation>UFUID</translation> <translation>UFUID</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="700"/> <location filename="../ui/mainwindow.ui" line="846"/>
<location filename="../ui/mainwindow.cpp" line="592"/> <location filename="../ui/mainwindow.cpp" line="651"/>
<source>About UID Card</source> <source>About UID Card</source>
<translation>UID</translation> <translation>UID</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="741"/> <location filename="../ui/mainwindow.ui" line="917"/>
<source>Set Parameter</source> <source>Set Parameter</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="760"/> <location filename="../ui/mainwindow.ui" line="936"/>
<source>Wipe</source> <source>Wipe</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="786"/> <location filename="../ui/mainwindow.ui" line="962"/>
<location filename="../ui/mainwindow.ui" line="856"/> <location filename="../ui/mainwindow.ui" line="1038"/>
<source>Simulate</source> <source>Simulate</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="817"/> <location filename="../ui/mainwindow.ui" line="467"/>
<source>Load from data above</source> <location filename="../ui/mainwindow.ui" line="1025"/>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="375"/>
<location filename="../ui/mainwindow.ui" line="843"/>
<source>Clear</source> <source>Clear</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="184"/> <location filename="../ui/mainwindow.ui" line="202"/>
<source>Select All</source> <source>Select All</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="194"/> <location filename="../ui/mainwindow.ui" line="238"/>
<source>KeyBlocks-&gt;Key</source> <source>KeyBlocks-&gt;Key</source>
<translation>-&gt;</translation> <translation>-&gt;</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="201"/> <location filename="../ui/mainwindow.ui" line="251"/>
<source>KeyBlocks&lt;-Key</source> <source>KeyBlocks&lt;-Key</source>
<translation>&lt;-</translation> <translation>&lt;-</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="208"/> <location filename="../ui/mainwindow.ui" line="264"/>
<source>Fill Keys</source> <source>Fill Keys</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="215"/> <location filename="../ui/mainwindow.ui" line="277"/>
<source>Trailer Decoder</source> <source>Trailer Decoder</source>
<translation>Trailer</translation> <translation>Trailer</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="222"/> <location filename="../ui/mainwindow.ui" line="290"/>
<source>Set Fonts</source> <source>Set Fonts</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="615"/> <location filename="../ui/mainwindow.ui" line="725"/>
<location filename="../ui/mainwindow.ui" line="707"/> <location filename="../ui/mainwindow.ui" line="859"/>
<source>Read One</source> <source>Read One</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="622"/> <location filename="../ui/mainwindow.ui" line="738"/>
<location filename="../ui/mainwindow.ui" line="714"/> <location filename="../ui/mainwindow.ui" line="872"/>
<source>Write One</source> <source>Write One</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="629"/> <location filename="../ui/mainwindow.ui" line="751"/>
<location filename="../ui/mainwindow.ui" line="721"/> <location filename="../ui/mainwindow.ui" line="885"/>
<location filename="../ui/mainwindow.ui" line="1012"/>
<source>Read Selected</source> <source>Read Selected</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="636"/> <location filename="../ui/mainwindow.ui" line="764"/>
<location filename="../ui/mainwindow.ui" line="728"/> <location filename="../ui/mainwindow.ui" line="898"/>
<location filename="../ui/mainwindow.ui" line="999"/>
<source>Write Selected</source> <source>Write Selected</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="879"/> <location filename="../ui/mainwindow.ui" line="1061"/>
<location filename="../ui/mainwindow.ui" line="913"/> <location filename="../ui/mainwindow.ui" line="1095"/>
<source>Sniff</source> <source>Sniff</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="991"/> <location filename="../ui/mainwindow.ui" line="1173"/>
<source>RawCommand</source> <source>RawCommand</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="1038"/> <location filename="../ui/mainwindow.ui" line="1220"/>
<location filename="../ui/mainwindow.cpp" line="145"/> <location filename="../ui/mainwindow.cpp" line="149"/>
<source>History:</source> <source>History:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="1070"/> <location filename="../ui/mainwindow.ui" line="1252"/>
<source>ClearHistory</source> <source>ClearHistory</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="1089"/> <location filename="../ui/mainwindow.ui" line="1271"/>
<source>Send</source> <source>Send</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.ui" line="1096"/> <location filename="../ui/mainwindow.ui" line="1278"/>
<source>ClearOutput</source> <source>ClearOutput</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="77"/> <location filename="../ui/mainwindow.cpp" line="81"/>
<location filename="../ui/mainwindow.cpp" line="184"/> <location filename="../ui/mainwindow.cpp" line="188"/>
<location filename="../ui/mainwindow.cpp" line="346"/> <location filename="../ui/mainwindow.cpp" line="414"/>
<location filename="../ui/mainwindow.cpp" line="365"/> <location filename="../ui/mainwindow.cpp" line="434"/>
<location filename="../ui/mainwindow.cpp" line="378"/> <location filename="../ui/mainwindow.cpp" line="447"/>
<location filename="../ui/mainwindow.cpp" line="397"/> <location filename="../ui/mainwindow.cpp" line="466"/>
<location filename="../ui/mainwindow.cpp" line="410"/> <location filename="../ui/mainwindow.cpp" line="479"/>
<location filename="../ui/mainwindow.cpp" line="433"/> <location filename="../ui/mainwindow.cpp" line="502"/>
<location filename="../ui/mainwindow.cpp" line="446"/> <location filename="../ui/mainwindow.cpp" line="515"/>
<location filename="../ui/mainwindow.cpp" line="649"/> <location filename="../ui/mainwindow.cpp" line="709"/>
<location filename="../ui/mainwindow.cpp" line="668"/> <location filename="../ui/mainwindow.cpp" line="728"/>
<source>Info</source> <source>Info</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="77"/> <location filename="../ui/mainwindow.cpp" line="81"/>
<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="92"/> <location filename="../ui/mainwindow.cpp" line="96"/>
<source>Connected</source> <source>Connected</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="97"/> <location filename="../ui/mainwindow.cpp" line="101"/>
<location filename="../ui/mainwindow.cpp" line="107"/> <location filename="../ui/mainwindow.cpp" line="111"/>
<location filename="../ui/mainwindow.cpp" line="741"/> <location filename="../ui/mainwindow.cpp" line="804"/>
<source>Not Connected</source> <source>Not Connected</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="391"/> <location filename="../ui/mainwindow.cpp" line="460"/>
<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>Data(*.bin *.dump);;Data(*.txt *.eml);;(*.*)</translation> <translation>Data(*.bin *.dump);;Data(*.txt *.eml);;(*.*)</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="397"/> <location filename="../ui/mainwindow.cpp" line="466"/>
<location filename="../ui/mainwindow.cpp" line="410"/> <location filename="../ui/mainwindow.cpp" line="479"/>
<location filename="../ui/mainwindow.cpp" line="649"/> <location filename="../ui/mainwindow.cpp" line="709"/>
<source>Failed to open</source> <source>Failed to open</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="184"/> <location filename="../ui/mainwindow.cpp" line="188"/>
<source>Continue?</source> <source>Continue?</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="184"/> <location filename="../ui/mainwindow.cpp" line="10"/>
<source>Check Update</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="188"/>
<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="252"/> <location filename="../ui/mainwindow.cpp" line="301"/>
<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>DataKey</translation> <translation>DataKey</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="346"/> <location filename="../ui/mainwindow.cpp" line="414"/>
<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>Data32</translation> <translation>Data32</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="365"/> <location filename="../ui/mainwindow.cpp" line="434"/>
<location filename="../ui/mainwindow.cpp" line="378"/> <location filename="../ui/mainwindow.cpp" line="447"/>
<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>Key12</translation> <translation>Key12</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="390"/> <location filename="../ui/mainwindow.cpp" line="459"/>
<source>Plz select the data file:</source> <source>Plz select the data file:</source>
<translation>data</translation> <translation>data</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="403"/> <location filename="../ui/mainwindow.cpp" line="472"/>
<source>Plz select the key file:</source> <source>Plz select the key file:</source>
<translation>key</translation> <translation>key</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="404"/> <location filename="../ui/mainwindow.cpp" line="473"/>
<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>Key(*.bin *.dump)Data(*.bin *.dump);;(*.*)</translation> <translation>Key(*.bin *.dump)Data(*.bin *.dump);;(*.*)</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="426"/> <location filename="../ui/mainwindow.cpp" line="495"/>
<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="427"/> <location filename="../ui/mainwindow.cpp" line="496"/>
<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>Data(*.bin *.dump);;Data(*.txt *.eml)</translation> <translation>Data(*.bin *.dump);;Data(*.txt *.eml)</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="433"/> <location filename="../ui/mainwindow.cpp" line="502"/>
<location filename="../ui/mainwindow.cpp" line="446"/> <location filename="../ui/mainwindow.cpp" line="515"/>
<location filename="../ui/mainwindow.cpp" line="668"/> <location filename="../ui/mainwindow.cpp" line="728"/>
<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="439"/> <location filename="../ui/mainwindow.cpp" line="508"/>
<source>Plz select the location to save key file:</source> <source>Plz select the location to save key file:</source>
<translation>key</translation> <translation>key</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="440"/> <location filename="../ui/mainwindow.cpp" line="509"/>
<source>Binary Key Files(*.bin *.dump)</source> <source>Binary Key Files(*.bin *.dump)</source>
<translation>Key(*.bin *.dump)</translation> <translation>Key(*.bin *.dump)</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="577"/> <location filename="../ui/mainwindow.cpp" line="636"/>
<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> MifareBlock0UID</translation> <translation> MifareBlock0UID</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="578"/> <location filename="../ui/mainwindow.cpp" line="637"/>
<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> UIDChinese Magic CardBlock0UID</translation> <translation> UIDChinese Magic CardBlock0UID</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="580"/> <location filename="../ui/mainwindow.cpp" line="639"/>
<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>UIDChinese Magic Card Gen1Gen2</translation> <translation>UIDChinese Magic Card Gen1Gen2</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="581"/> <location filename="../ui/mainwindow.cpp" line="640"/>
<source> Gen1:</source> <source> Gen1:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="581"/> <location filename="../ui/mainwindow.cpp" line="640"/>
<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> UIDPM3GUI</translation> <translation> UIDPM3GUI</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="582"/> <location filename="../ui/mainwindow.cpp" line="641"/>
<source> Gen2:</source> <source> Gen2:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="582"/> <location filename="../ui/mainwindow.cpp" line="641"/>
<source> doesn&apos;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&apos;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="584"/> <location filename="../ui/mainwindow.cpp" line="643"/>
<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="585"/> <location filename="../ui/mainwindow.cpp" line="644"/>
<source> CUID Card:</source> <source> CUID Card:</source>
<translation> CUID</translation> <translation> CUID</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="585"/> <location filename="../ui/mainwindow.cpp" line="644"/>
<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> Block0</translation> <translation> Block0</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="586"/> <location filename="../ui/mainwindow.cpp" line="645"/>
<source> (hf mf wrbl 0 A FFFFFFFFFFFF &lt;the data you want to write&gt;)</source> <source> (hf mf wrbl 0 A FFFFFFFFFFFF &lt;the data you want to write&gt;)</source>
<translation> (hf mf wrbl 0 A FFFFFFFFFFFF &lt;&gt;)</translation> <translation> (hf mf wrbl 0 A FFFFFFFFFFFF &lt;&gt;)</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="587"/> <location filename="../ui/mainwindow.cpp" line="646"/>
<source> FUID Card:</source> <source> FUID Card:</source>
<translation> FUID</translation> <translation> FUID</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="587"/> <location filename="../ui/mainwindow.cpp" line="646"/>
<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> Block0</translation> <translation> Block0</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="588"/> <location filename="../ui/mainwindow.cpp" line="647"/>
<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="589"/> <location filename="../ui/mainwindow.cpp" line="648"/>
<source> UFUID Card:</source> <source> UFUID Card:</source>
<translation> UFUID</translation> <translation> UFUID</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="589"/> <location filename="../ui/mainwindow.cpp" line="648"/>
<source> It behaves like a CUID card(or UID card? I&apos;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&apos;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/CUIDBlock0FUID</translation> <translation> UID/CUIDBlock0FUID</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="591"/> <location filename="../ui/mainwindow.cpp" line="650"/>
<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> UIDNested</translation> <translation> UIDNested</translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="636"/> <location filename="../ui/mainwindow.cpp" line="696"/>
<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="637"/> <location filename="../ui/mainwindow.cpp" line="697"/>
<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="659"/> <location filename="../ui/mainwindow.cpp" line="719"/>
<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="660"/> <location filename="../ui/mainwindow.cpp" line="720"/>
<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="742"/> <location filename="../ui/mainwindow.cpp" line="805"/>
<location filename="../ui/mainwindow.cpp" line="897"/> <location filename="../ui/mainwindow.cpp" line="960"/>
<source>Idle</source> <source>Idle</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="749"/> <location filename="../ui/mainwindow.cpp" line="812"/>
<location filename="../ui/mainwindow.cpp" line="758"/> <location filename="../ui/mainwindow.cpp" line="821"/>
<source>Sec</source> <source>Sec</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="750"/> <location filename="../ui/mainwindow.cpp" line="813"/>
<source>Blk</source> <source>Blk</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="759"/> <location filename="../ui/mainwindow.cpp" line="822"/>
<source>KeyA</source> <source>KeyA</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="760"/> <location filename="../ui/mainwindow.cpp" line="823"/>
<source>KeyB</source> <source>KeyB</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="834"/> <location filename="../ui/mainwindow.cpp" line="897"/>
<source>HW Version:</source> <source>HW Version:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="836"/> <location filename="../ui/mainwindow.cpp" line="899"/>
<source>PM3:</source> <source>PM3:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="838"/> <location filename="../ui/mainwindow.cpp" line="901"/>
<source>State:</source> <source>State:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/mainwindow.cpp" line="893"/> <location filename="../ui/mainwindow.cpp" line="956"/>
<source>Running</source> <source>Running</source>
<translation></translation> <translation></translation>
</message> </message>
@ -847,18 +849,15 @@ It could make the whole sector blocked irreversibly!</source>
<context> <context>
<name>Mifare</name> <name>Mifare</name>
<message> <message>
<location filename="../module/mifare.cpp" line="524"/> <location filename="../module/mifare.cpp" line="592"/>
<location filename="../module/mifare.cpp" line="611"/>
<source>Success!</source> <source>Success!</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../module/mifare.cpp" line="219"/> <location filename="../module/mifare.cpp" line="219"/>
<location filename="../module/mifare.cpp" line="524"/> <location filename="../module/mifare.cpp" line="592"/>
<location filename="../module/mifare.cpp" line="528"/> <location filename="../module/mifare.cpp" line="596"/>
<location filename="../module/mifare.cpp" line="611"/> <location filename="../module/mifare.cpp" line="661"/>
<location filename="../module/mifare.cpp" line="615"/>
<location filename="../module/mifare.cpp" line="665"/>
<source>Info</source> <source>Info</source>
<translation></translation> <translation></translation>
</message> </message>
@ -868,14 +867,13 @@ It could make the whole sector blocked irreversibly!</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../module/mifare.cpp" line="411"/> <location filename="../module/mifare.cpp" line="443"/>
<location filename="../module/mifare.cpp" line="528"/> <location filename="../module/mifare.cpp" line="596"/>
<location filename="../module/mifare.cpp" line="615"/>
<source>Failed!</source> <source>Failed!</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../module/mifare.cpp" line="665"/> <location filename="../module/mifare.cpp" line="661"/>
<source>Failed to read card.</source> <source>Failed to read card.</source>
<translation></translation> <translation></translation>
</message> </message>

@ -7,11 +7,17 @@ MainWindow::MainWindow(QWidget *parent):
{ {
ui->setupUi(this); ui->setupUi(this);
myInfo = new QAction("wh201906", this); myInfo = new QAction("wh201906", this);
checkUpdate = new QAction(tr("Check Update"), this);
connect(myInfo, &QAction::triggered, [ = ]() connect(myInfo, &QAction::triggered, [ = ]()
{ {
QDesktopServices::openUrl(QUrl("https://github.com/wh201906")); QDesktopServices::openUrl(QUrl("https://github.com/wh201906"));
}); });
connect(checkUpdate, &QAction::triggered, [ = ]()
{
QDesktopServices::openUrl(QUrl("https://github.com/wh201906/Proxmark3GUI/releases"));
});
this->addAction(myInfo); this->addAction(myInfo);
this->addAction(checkUpdate);
settings = new QSettings("GUIsettings.ini", QSettings::IniFormat); settings = new QSettings("GUIsettings.ini", QSettings::IniFormat);
@ -206,6 +212,7 @@ void MainWindow::on_MF_selectAllBox_stateChanged(int arg1)
{ {
ui->MF_dataWidget->blockSignals(true); ui->MF_dataWidget->blockSignals(true);
ui->MF_selectAllBox->blockSignals(true); ui->MF_selectAllBox->blockSignals(true);
ui->MF_selectTrailerBox->blockSignals(true);
if(arg1 == Qt::PartiallyChecked) if(arg1 == Qt::PartiallyChecked)
{ {
ui->MF_selectAllBox->setTristate(false); ui->MF_selectAllBox->setTristate(false);
@ -219,10 +226,54 @@ void MainWindow::on_MF_selectAllBox_stateChanged(int arg1)
{ {
ui->MF_dataWidget->item(mifare->cardType.blks[i], 0)->setCheckState(ui->MF_selectAllBox->checkState()); ui->MF_dataWidget->item(mifare->cardType.blks[i], 0)->setCheckState(ui->MF_selectAllBox->checkState());
} }
ui->MF_selectTrailerBox->setCheckState(ui->MF_selectAllBox->checkState());
ui->MF_dataWidget->blockSignals(false);
ui->MF_selectAllBox->blockSignals(false);
ui->MF_selectTrailerBox->blockSignals(false);
}
void MainWindow::on_MF_selectTrailerBox_stateChanged(int arg1)
{
int selectedSubBlocks = 0;
ui->MF_dataWidget->blockSignals(true);
ui->MF_selectAllBox->blockSignals(true);
ui->MF_selectTrailerBox->blockSignals(true);
if(arg1 == Qt::PartiallyChecked)
{
ui->MF_selectTrailerBox->setTristate(false);
ui->MF_selectTrailerBox->setCheckState(Qt::Checked);
}
for(int i = 0; i < mifare->cardType.sector_size; i++)
{
ui->MF_dataWidget->item(mifare->cardType.blks[i] + mifare->cardType.blk[i] - 1, 1)->setCheckState(ui->MF_selectTrailerBox->checkState());
selectedSubBlocks = 0;
for(int j = 0; j < mifare->cardType.blk[i]; j++)
{
if(ui->MF_dataWidget->item(j + mifare->cardType.blks[i], 1)->checkState() == Qt::Checked)
selectedSubBlocks++;
}
if(selectedSubBlocks == 0)
{
ui->MF_dataWidget->item(mifare->cardType.blks[i], 0)->setCheckState(Qt::Unchecked);
}
else if(selectedSubBlocks == mifare->cardType.blk[i])
{
ui->MF_dataWidget->item(mifare->cardType.blks[i], 0)->setCheckState(Qt::Checked);
}
else
{
ui->MF_dataWidget->item(mifare->cardType.blks[i], 0)->setCheckState(Qt::PartiallyChecked);
}
}
ui->MF_dataWidget->blockSignals(false); ui->MF_dataWidget->blockSignals(false);
ui->MF_selectAllBox->blockSignals(false); ui->MF_selectAllBox->blockSignals(false);
ui->MF_selectTrailerBox->blockSignals(false);
} }
void MainWindow::on_MF_data2KeyButton_clicked() void MainWindow::on_MF_data2KeyButton_clicked()
{ {
mifare->data_data2Key(); mifare->data_data2Key();
@ -260,6 +311,7 @@ void MainWindow::on_MF_dataWidget_itemChanged(QTableWidgetItem *item)
{ {
ui->MF_dataWidget->blockSignals(true); ui->MF_dataWidget->blockSignals(true);
ui->MF_selectAllBox->blockSignals(true); ui->MF_selectAllBox->blockSignals(true);
ui->MF_selectTrailerBox->blockSignals(true);
if(item->column() == 0) if(item->column() == 0)
{ {
int selectedSectors = 0; int selectedSectors = 0;
@ -278,34 +330,40 @@ void MainWindow::on_MF_dataWidget_itemChanged(QTableWidgetItem *item)
if(selectedSectors == 0) if(selectedSectors == 0)
{ {
ui->MF_selectAllBox->setCheckState(Qt::Unchecked); ui->MF_selectAllBox->setCheckState(Qt::Unchecked);
ui->MF_selectTrailerBox->setCheckState(Qt::Unchecked);
} }
else if(selectedSectors == mifare->cardType.sector_size) else if(selectedSectors == mifare->cardType.sector_size)
{ {
ui->MF_selectAllBox->setCheckState(Qt::Checked); ui->MF_selectAllBox->setCheckState(Qt::Checked);
ui->MF_selectTrailerBox->setCheckState(Qt::Checked);
} }
else else
{ {
ui->MF_selectAllBox->setCheckState(Qt::PartiallyChecked); ui->MF_selectAllBox->setCheckState(Qt::PartiallyChecked);
ui->MF_selectTrailerBox->setCheckState(Qt::PartiallyChecked);
} }
} }
else if(item->column() == 1) else if(item->column() == 1)
{ {
int selectedSubBlocks = 0; int selectedSubBlocks = 0;
int selectedBlocks = 0; int selectedBlocks = 0;
int selectedTrailers = 0;
for(int i = 0; i < mifare->cardType.block_size; i++) for(int i = 0; i < mifare->cardType.block_size; i++)
{ {
if(ui->MF_dataWidget->item(i, 1)->checkState() == Qt::Checked) if(ui->MF_dataWidget->item(i, 1)->checkState() == Qt::Checked)
{
selectedBlocks++; selectedBlocks++;
} }
}
for(int i = 0; i < mifare->cardType.blk[Mifare::data_b2s(item->row())]; i++) for(int i = 0; i < mifare->cardType.blk[Mifare::data_b2s(item->row())]; i++)
{ {
if(ui->MF_dataWidget->item(i + mifare->cardType.blks[Mifare::data_b2s(item->row())], 1)->checkState() == Qt::Checked) if(ui->MF_dataWidget->item(i + mifare->cardType.blks[Mifare::data_b2s(item->row())], 1)->checkState() == Qt::Checked)
{
selectedSubBlocks++; selectedSubBlocks++;
} }
for(int i = 0; i < mifare->cardType.sector_size; i++)
{
int targetBlock = mifare->cardType.blks[i] + mifare->cardType.blk[i] - 1;
if(ui->MF_dataWidget->item(targetBlock, 1)->checkState() == Qt::Checked)
selectedTrailers++;
} }
if(selectedBlocks == 0) if(selectedBlocks == 0)
{ {
@ -331,6 +389,18 @@ void MainWindow::on_MF_dataWidget_itemChanged(QTableWidgetItem *item)
{ {
ui->MF_dataWidget->item(mifare->cardType.blks[Mifare::data_b2s(item->row())], 0)->setCheckState(Qt::PartiallyChecked); ui->MF_dataWidget->item(mifare->cardType.blks[Mifare::data_b2s(item->row())], 0)->setCheckState(Qt::PartiallyChecked);
} }
if(selectedTrailers == 0)
{
ui->MF_selectTrailerBox->setCheckState(Qt::Unchecked);
}
else if(selectedTrailers == mifare->cardType.sector_size)
{
ui->MF_selectTrailerBox->setCheckState(Qt::Checked);
}
else
{
ui->MF_selectTrailerBox->setCheckState(Qt::PartiallyChecked);
}
} }
else if(item->column() == 2) else if(item->column() == 2)
{ {
@ -347,6 +417,7 @@ void MainWindow::on_MF_dataWidget_itemChanged(QTableWidgetItem *item)
} }
ui->MF_dataWidget->blockSignals(false); ui->MF_dataWidget->blockSignals(false);
ui->MF_selectAllBox->blockSignals(false); ui->MF_selectAllBox->blockSignals(false);
ui->MF_selectTrailerBox->blockSignals(false);
} }
void MainWindow::on_MF_keyWidget_itemChanged(QTableWidgetItem *item) void MainWindow::on_MF_keyWidget_itemChanged(QTableWidgetItem *item)
@ -691,6 +762,7 @@ void MainWindow::MF_widgetReset()
ui->MF_dataWidget->blockSignals(true); ui->MF_dataWidget->blockSignals(true);
ui->MF_keyWidget->blockSignals(true); ui->MF_keyWidget->blockSignals(true);
ui->MF_selectAllBox->blockSignals(true); ui->MF_selectAllBox->blockSignals(true);
ui->MF_selectTrailerBox->blockSignals(true);
for(int i = 0; i < blks; i++) for(int i = 0; i < blks; i++)
{ {
@ -710,10 +782,12 @@ void MainWindow::MF_widgetReset()
ui->MF_dataWidget->item(mifare->cardType.blks[i], 0)->setCheckState(Qt::Checked); ui->MF_dataWidget->item(mifare->cardType.blks[i], 0)->setCheckState(Qt::Checked);
} }
ui->MF_selectAllBox->setCheckState(Qt::Checked); ui->MF_selectAllBox->setCheckState(Qt::Checked);
ui->MF_selectTrailerBox->setCheckState(Qt::Checked);
ui->MF_dataWidget->blockSignals(false); ui->MF_dataWidget->blockSignals(false);
ui->MF_keyWidget->blockSignals(false); ui->MF_keyWidget->blockSignals(false);
ui->MF_selectAllBox->blockSignals(false); ui->MF_selectAllBox->blockSignals(false);
ui->MF_selectTrailerBox->blockSignals(false);
} }
// ************************************************ // ************************************************

@ -146,6 +146,8 @@ private slots:
void on_MF_trailerDecoderButton_clicked(); void on_MF_trailerDecoderButton_clicked();
void on_MF_selectTrailerBox_stateChanged(int arg1);
private: private:
Ui::MainWindow* ui; Ui::MainWindow* ui;
QButtonGroup* typeBtnGroup; QButtonGroup* typeBtnGroup;
@ -153,6 +155,7 @@ private:
QLabel* programStatusBar; QLabel* programStatusBar;
QLabel* PM3VersionBar; QLabel* PM3VersionBar;
QAction* myInfo; QAction* myInfo;
QAction* checkUpdate;
QSettings* settings; QSettings* settings;
void uiInit(); void uiInit();

@ -201,24 +201,31 @@
<property name="text"> <property name="text">
<string>Select All</string> <string>Select All</string>
</property> </property>
<property name="tristate">
<bool>false</bool>
</property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QCheckBox" name="MF_selectTrailerBox"> <widget class="QCheckBox" name="MF_selectTrailerBox">
<property name="minimumSize">
<size>
<width>40</width>
<height>0</height>
</size>
</property>
<property name="text"> <property name="text">
<string>Select Trailer</string> <string>Select Trailer</string>
</property> </property>
</widget> </widget>
</item> </item>
<item>
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item> <item>
<widget class="QPushButton" name="MF_data2KeyButton"> <widget class="QPushButton" name="MF_data2KeyButton">
<property name="minimumSize"> <property name="minimumSize">
@ -530,12 +537,6 @@
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
<property name="minimumSize">
<size>
<width>40</width>
<height>0</height>
</size>
</property>
<property name="text"> <property name="text">
<string>Check Default</string> <string>Check Default</string>
</property> </property>
@ -660,7 +661,7 @@
<widget class="QComboBox" name="MF_RW_keyTypeBox"> <widget class="QComboBox" name="MF_RW_keyTypeBox">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>35</width> <width>45</width>
<height>0</height> <height>0</height>
</size> </size>
</property> </property>

Loading…
Cancel
Save