Support Choose Trailer block

This commit is contained in:
wh201906 2020-08-08 21:49:43 +08:00
parent bf8136a7fe
commit ad10a6e789
5 changed files with 400 additions and 326 deletions

View file

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

View file

@ -294,552 +294,554 @@ It could make the whole sector blocked irreversibly!</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="76"/>
<location filename="../ui/mainwindow.ui" line="82"/>
<source>Refresh</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="83"/>
<location filename="../ui/mainwindow.ui" line="95"/>
<source>Connect</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="90"/>
<location filename="../ui/mainwindow.ui" line="108"/>
<source>Disconnect</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="109"/>
<location filename="../ui/mainwindow.ui" line="127"/>
<source>Mifare</source>
<translation>Mifare(IC)</translation>
</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>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="294"/>
<location filename="../ui/mainwindow.ui" line="368"/>
<source>MINI</source>
<extracomment>320</extracomment>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="301"/>
<location filename="../ui/mainwindow.ui" line="381"/>
<source>1K</source>
<extracomment>1024</extracomment>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="311"/>
<location filename="../ui/mainwindow.ui" line="397"/>
<source>2K</source>
<extracomment>2048</extracomment>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="318"/>
<location filename="../ui/mainwindow.ui" line="410"/>
<source>4K</source>
<extracomment>4096</extracomment>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="328"/>
<location filename="../ui/mainwindow.ui" line="420"/>
<source>File</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="349"/>
<location filename="../ui/mainwindow.ui" line="952"/>
<location filename="../ui/mainwindow.ui" line="441"/>
<location filename="../ui/mainwindow.ui" line="1134"/>
<source>Load</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="362"/>
<location filename="../ui/mainwindow.ui" line="965"/>
<location filename="../ui/mainwindow.ui" line="454"/>
<location filename="../ui/mainwindow.ui" line="1147"/>
<source>Save</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="382"/>
<location filename="../ui/mainwindow.cpp" line="751"/>
<location filename="../ui/mainwindow.ui" line="474"/>
<location filename="../ui/mainwindow.cpp" line="814"/>
<source>Data</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="392"/>
<location filename="../ui/mainwindow.ui" line="484"/>
<source>Key</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="402"/>
<location filename="../ui/mainwindow.ui" line="494"/>
<source>Attack</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="430"/>
<location filename="../ui/mainwindow.ui" line="528"/>
<source>Card Info</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="443"/>
<location filename="../ui/mainwindow.ui" line="541"/>
<source>Check Default</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="456"/>
<location filename="../ui/mainwindow.ui" line="554"/>
<source>Nested</source>
<translation>Nested攻击</translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="463"/>
<location filename="../ui/mainwindow.ui" line="567"/>
<source>Hardnested</source>
<translation>Hardested攻击</translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="488"/>
<location filename="../ui/mainwindow.ui" line="592"/>
<source>Read/Write</source>
<translation>/</translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="501"/>
<location filename="../ui/mainwindow.ui" line="605"/>
<source>Block:</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="533"/>
<location filename="../ui/mainwindow.ui" line="637"/>
<source>Key:</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="552"/>
<location filename="../ui/mainwindow.ui" line="656"/>
<source>Key Type:</source>
<translation>Key类型</translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="926"/>
<location filename="../ui/mainwindow.ui" line="1108"/>
<source>Snoop</source>
<translation>(Snoop)</translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="939"/>
<location filename="../ui/mainwindow.ui" line="1121"/>
<source>List Data</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="575"/>
<location filename="../ui/mainwindow.ui" line="679"/>
<source>Data:</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="597"/>
<location filename="../ui/mainwindow.ui" line="701"/>
<source>Normal(Require Password)</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="830"/>
<source>Read All</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="655"/>
<location filename="../ui/mainwindow.ui" line="783"/>
<source>Dump</source>
<translation>Dump命令</translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="668"/>
<location filename="../ui/mainwindow.ui" line="802"/>
<source>Restore</source>
<translation>Restore命令</translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="678"/>
<location filename="../ui/mainwindow.ui" line="812"/>
<source>Chinese Magic Card(Without Password)</source>
<translation>UID卡</translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="693"/>
<location filename="../ui/mainwindow.ui" line="833"/>
<source>Lock UFUID Card</source>
<translation>UFUID卡</translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="700"/>
<location filename="../ui/mainwindow.cpp" line="592"/>
<location filename="../ui/mainwindow.ui" line="846"/>
<location filename="../ui/mainwindow.cpp" line="651"/>
<source>About UID Card</source>
<translation>UID卡</translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="741"/>
<location filename="../ui/mainwindow.ui" line="917"/>
<source>Set Parameter</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="760"/>
<location filename="../ui/mainwindow.ui" line="936"/>
<source>Wipe</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="786"/>
<location filename="../ui/mainwindow.ui" line="856"/>
<location filename="../ui/mainwindow.ui" line="962"/>
<location filename="../ui/mainwindow.ui" line="1038"/>
<source>Simulate</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="817"/>
<source>Load from data above</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="375"/>
<location filename="../ui/mainwindow.ui" line="843"/>
<location filename="../ui/mainwindow.ui" line="467"/>
<location filename="../ui/mainwindow.ui" line="1025"/>
<source>Clear</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="184"/>
<location filename="../ui/mainwindow.ui" line="202"/>
<source>Select All</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="194"/>
<location filename="../ui/mainwindow.ui" line="238"/>
<source>KeyBlocks-&gt;Key</source>
<translation>-&gt;</translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="201"/>
<location filename="../ui/mainwindow.ui" line="251"/>
<source>KeyBlocks&lt;-Key</source>
<translation>&lt;-</translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="208"/>
<location filename="../ui/mainwindow.ui" line="264"/>
<source>Fill Keys</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="215"/>
<location filename="../ui/mainwindow.ui" line="277"/>
<source>Trailer Decoder</source>
<translation>Trailer解码</translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="222"/>
<location filename="../ui/mainwindow.ui" line="290"/>
<source>Set Fonts</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="615"/>
<location filename="../ui/mainwindow.ui" line="707"/>
<location filename="../ui/mainwindow.ui" line="725"/>
<location filename="../ui/mainwindow.ui" line="859"/>
<source>Read One</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="622"/>
<location filename="../ui/mainwindow.ui" line="714"/>
<location filename="../ui/mainwindow.ui" line="738"/>
<location filename="../ui/mainwindow.ui" line="872"/>
<source>Write One</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="629"/>
<location filename="../ui/mainwindow.ui" line="721"/>
<location filename="../ui/mainwindow.ui" line="751"/>
<location filename="../ui/mainwindow.ui" line="885"/>
<location filename="../ui/mainwindow.ui" line="1012"/>
<source>Read Selected</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="636"/>
<location filename="../ui/mainwindow.ui" line="728"/>
<location filename="../ui/mainwindow.ui" line="764"/>
<location filename="../ui/mainwindow.ui" line="898"/>
<location filename="../ui/mainwindow.ui" line="999"/>
<source>Write Selected</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="879"/>
<location filename="../ui/mainwindow.ui" line="913"/>
<location filename="../ui/mainwindow.ui" line="1061"/>
<location filename="../ui/mainwindow.ui" line="1095"/>
<source>Sniff</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="991"/>
<location filename="../ui/mainwindow.ui" line="1173"/>
<source>RawCommand</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="1038"/>
<location filename="../ui/mainwindow.cpp" line="145"/>
<location filename="../ui/mainwindow.ui" line="1220"/>
<location filename="../ui/mainwindow.cpp" line="149"/>
<source>History:</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="1070"/>
<location filename="../ui/mainwindow.ui" line="1252"/>
<source>ClearHistory</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="1089"/>
<location filename="../ui/mainwindow.ui" line="1271"/>
<source>Send</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.ui" line="1096"/>
<location filename="../ui/mainwindow.ui" line="1278"/>
<source>ClearOutput</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="77"/>
<location filename="../ui/mainwindow.cpp" line="184"/>
<location filename="../ui/mainwindow.cpp" line="346"/>
<location filename="../ui/mainwindow.cpp" line="365"/>
<location filename="../ui/mainwindow.cpp" line="378"/>
<location filename="../ui/mainwindow.cpp" line="397"/>
<location filename="../ui/mainwindow.cpp" line="410"/>
<location filename="../ui/mainwindow.cpp" line="433"/>
<location filename="../ui/mainwindow.cpp" line="446"/>
<location filename="../ui/mainwindow.cpp" line="649"/>
<location filename="../ui/mainwindow.cpp" line="668"/>
<location filename="../ui/mainwindow.cpp" line="81"/>
<location filename="../ui/mainwindow.cpp" line="188"/>
<location filename="../ui/mainwindow.cpp" line="414"/>
<location filename="../ui/mainwindow.cpp" line="434"/>
<location filename="../ui/mainwindow.cpp" line="447"/>
<location filename="../ui/mainwindow.cpp" line="466"/>
<location filename="../ui/mainwindow.cpp" line="479"/>
<location filename="../ui/mainwindow.cpp" line="502"/>
<location filename="../ui/mainwindow.cpp" line="515"/>
<location filename="../ui/mainwindow.cpp" line="709"/>
<location filename="../ui/mainwindow.cpp" line="728"/>
<source>Info</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="77"/>
<location filename="../ui/mainwindow.cpp" line="81"/>
<source>Plz choose a port first</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="92"/>
<location filename="../ui/mainwindow.cpp" line="96"/>
<source>Connected</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="97"/>
<location filename="../ui/mainwindow.cpp" line="107"/>
<location filename="../ui/mainwindow.cpp" line="741"/>
<location filename="../ui/mainwindow.cpp" line="101"/>
<location filename="../ui/mainwindow.cpp" line="111"/>
<location filename="../ui/mainwindow.cpp" line="804"/>
<source>Not Connected</source>
<translation></translation>
</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>
<translation>Data文件(*.bin *.dump);;Data文件(*.txt *.eml);;(*.*)</translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="397"/>
<location filename="../ui/mainwindow.cpp" line="410"/>
<location filename="../ui/mainwindow.cpp" line="649"/>
<location filename="../ui/mainwindow.cpp" line="466"/>
<location filename="../ui/mainwindow.cpp" line="479"/>
<location filename="../ui/mainwindow.cpp" line="709"/>
<source>Failed to open</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="184"/>
<location filename="../ui/mainwindow.cpp" line="188"/>
<source>Continue?</source>
<translation></translation>
</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>
<translation></translation>
</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>
<translation>Data窗口和Key窗口的字体</translation>
</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>
<translation>Data必须由32个十六进制字符组成</translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="365"/>
<location filename="../ui/mainwindow.cpp" line="378"/>
<location filename="../ui/mainwindow.cpp" line="434"/>
<location filename="../ui/mainwindow.cpp" line="447"/>
<source>Key must consists of 12 Hex symbols(Whitespace is allowed)</source>
<translation>Key必须由12个十六进制字符组成</translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="390"/>
<location filename="../ui/mainwindow.cpp" line="459"/>
<source>Plz select the data file:</source>
<translation>data文件</translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="403"/>
<location filename="../ui/mainwindow.cpp" line="472"/>
<source>Plz select the key file:</source>
<translation>key文件</translation>
</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>
<translation>Key文件(*.bin *.dump)Data文件(*.bin *.dump);;(*.*)</translation>
</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>
<translation></translation>
</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>
<translation>Data文件(*.bin *.dump);;Data文件(*.txt *.eml)</translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="433"/>
<location filename="../ui/mainwindow.cpp" line="446"/>
<location filename="../ui/mainwindow.cpp" line="668"/>
<location filename="../ui/mainwindow.cpp" line="502"/>
<location filename="../ui/mainwindow.cpp" line="515"/>
<location filename="../ui/mainwindow.cpp" line="728"/>
<source>Failed to save to</source>
<translation></translation>
</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>
<translation>key文件保存的位置</translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="440"/>
<location filename="../ui/mainwindow.cpp" line="509"/>
<source>Binary Key Files(*.bin *.dump)</source>
<translation>Key文件(*.bin *.dump)</translation>
</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>
<translation> Mifare卡的Block0无法写入UID也不能更改</translation>
</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>
<translation> UID卡Chinese Magic CardBlock0可写UID可变</translation>
</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>
<translation>UID卡分为Chinese Magic Card Gen1和Gen2</translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="581"/>
<location filename="../ui/mainwindow.cpp" line="640"/>
<source> Gen1:</source>
<translation></translation>
</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>
<translation> UID卡PM3和此GUI中有特殊命令处理这类卡片</translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="582"/>
<location filename="../ui/mainwindow.cpp" line="641"/>
<source> Gen2:</source>
<translation></translation>
</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>
<translation> CUID/FUID/UFUID这类对后门指令不响应的卡</translation>
</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>
<translation>Gen2卡的详细介绍</translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="585"/>
<location filename="../ui/mainwindow.cpp" line="644"/>
<source> CUID Card:</source>
<translation> CUID卡</translation>
</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>
<translation> Block0</translation>
</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>
<translation> (hf mf wrbl 0 A FFFFFFFFFFFF &lt;&gt;)</translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="587"/>
<location filename="../ui/mainwindow.cpp" line="646"/>
<source> FUID Card:</source>
<translation> FUID卡</translation>
</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>
<translation> Block0只能写入一次</translation>
</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>
<translation> (穿CUID卡的读卡器)</translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="589"/>
<location filename="../ui/mainwindow.cpp" line="648"/>
<source> UFUID Card:</source>
<translation> UFUID卡</translation>
</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>
<translation> UID/CUID卡一样可以反复读写Block0FUID卡一样了</translation>
</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>
<translation> UID卡都似乎更容易被Nested攻击破解</translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="636"/>
<location filename="../ui/mainwindow.cpp" line="696"/>
<source>Plz select the trace file:</source>
<translation>trace文件</translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="637"/>
<location filename="../ui/mainwindow.cpp" line="697"/>
<source>Trace Files(*.trc);;All Files(*.*)</source>
<translation>Trace文件(*.trc);;(*.*)</translation>
</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>
<translation>trace文件保存的位置</translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="660"/>
<location filename="../ui/mainwindow.cpp" line="720"/>
<source>Trace Files(*.trc)</source>
<translation>Trace文件(*.trc)</translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="742"/>
<location filename="../ui/mainwindow.cpp" line="897"/>
<location filename="../ui/mainwindow.cpp" line="805"/>
<location filename="../ui/mainwindow.cpp" line="960"/>
<source>Idle</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="749"/>
<location filename="../ui/mainwindow.cpp" line="758"/>
<location filename="../ui/mainwindow.cpp" line="812"/>
<location filename="../ui/mainwindow.cpp" line="821"/>
<source>Sec</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="750"/>
<location filename="../ui/mainwindow.cpp" line="813"/>
<source>Blk</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="759"/>
<location filename="../ui/mainwindow.cpp" line="822"/>
<source>KeyA</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="760"/>
<location filename="../ui/mainwindow.cpp" line="823"/>
<source>KeyB</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="834"/>
<location filename="../ui/mainwindow.cpp" line="897"/>
<source>HW Version:</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="836"/>
<location filename="../ui/mainwindow.cpp" line="899"/>
<source>PM3:</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="838"/>
<location filename="../ui/mainwindow.cpp" line="901"/>
<source>State:</source>
<translation></translation>
</message>
<message>
<location filename="../ui/mainwindow.cpp" line="893"/>
<location filename="../ui/mainwindow.cpp" line="956"/>
<source>Running</source>
<translation></translation>
</message>
@ -847,18 +849,15 @@ It could make the whole sector blocked irreversibly!</source>
<context>
<name>Mifare</name>
<message>
<location filename="../module/mifare.cpp" line="524"/>
<location filename="../module/mifare.cpp" line="611"/>
<location filename="../module/mifare.cpp" line="592"/>
<source>Success!</source>
<translation></translation>
</message>
<message>
<location filename="../module/mifare.cpp" line="219"/>
<location filename="../module/mifare.cpp" line="524"/>
<location filename="../module/mifare.cpp" line="528"/>
<location filename="../module/mifare.cpp" line="611"/>
<location filename="../module/mifare.cpp" line="615"/>
<location filename="../module/mifare.cpp" line="665"/>
<location filename="../module/mifare.cpp" line="592"/>
<location filename="../module/mifare.cpp" line="596"/>
<location filename="../module/mifare.cpp" line="661"/>
<source>Info</source>
<translation></translation>
</message>
@ -868,14 +867,13 @@ It could make the whole sector blocked irreversibly!</source>
<translation></translation>
</message>
<message>
<location filename="../module/mifare.cpp" line="411"/>
<location filename="../module/mifare.cpp" line="528"/>
<location filename="../module/mifare.cpp" line="615"/>
<location filename="../module/mifare.cpp" line="443"/>
<location filename="../module/mifare.cpp" line="596"/>
<source>Failed!</source>
<translation></translation>
</message>
<message>
<location filename="../module/mifare.cpp" line="665"/>
<location filename="../module/mifare.cpp" line="661"/>
<source>Failed to read card.</source>
<translation></translation>
</message>

View file

@ -7,11 +7,17 @@ MainWindow::MainWindow(QWidget *parent):
{
ui->setupUi(this);
myInfo = new QAction("wh201906", this);
checkUpdate = new QAction(tr("Check Update"), this);
connect(myInfo, &QAction::triggered, [ = ]()
{
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(checkUpdate);
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_selectAllBox->blockSignals(true);
ui->MF_selectTrailerBox->blockSignals(true);
if(arg1 == Qt::PartiallyChecked)
{
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_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_selectAllBox->blockSignals(false);
ui->MF_selectTrailerBox->blockSignals(false);
}
void MainWindow::on_MF_data2KeyButton_clicked()
{
mifare->data_data2Key();
@ -260,6 +311,7 @@ void MainWindow::on_MF_dataWidget_itemChanged(QTableWidgetItem *item)
{
ui->MF_dataWidget->blockSignals(true);
ui->MF_selectAllBox->blockSignals(true);
ui->MF_selectTrailerBox->blockSignals(true);
if(item->column() == 0)
{
int selectedSectors = 0;
@ -278,34 +330,40 @@ void MainWindow::on_MF_dataWidget_itemChanged(QTableWidgetItem *item)
if(selectedSectors == 0)
{
ui->MF_selectAllBox->setCheckState(Qt::Unchecked);
ui->MF_selectTrailerBox->setCheckState(Qt::Unchecked);
}
else if(selectedSectors == mifare->cardType.sector_size)
{
ui->MF_selectAllBox->setCheckState(Qt::Checked);
ui->MF_selectTrailerBox->setCheckState(Qt::Checked);
}
else
{
ui->MF_selectAllBox->setCheckState(Qt::PartiallyChecked);
ui->MF_selectTrailerBox->setCheckState(Qt::PartiallyChecked);
}
}
else if(item->column() == 1)
{
int selectedSubBlocks = 0;
int selectedBlocks = 0;
int selectedTrailers = 0;
for(int i = 0; i < mifare->cardType.block_size; i++)
{
if(ui->MF_dataWidget->item(i, 1)->checkState() == Qt::Checked)
{
selectedBlocks++;
}
}
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)
{
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)
{
@ -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);
}
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)
{
@ -347,6 +417,7 @@ void MainWindow::on_MF_dataWidget_itemChanged(QTableWidgetItem *item)
}
ui->MF_dataWidget->blockSignals(false);
ui->MF_selectAllBox->blockSignals(false);
ui->MF_selectTrailerBox->blockSignals(false);
}
void MainWindow::on_MF_keyWidget_itemChanged(QTableWidgetItem *item)
@ -691,6 +762,7 @@ void MainWindow::MF_widgetReset()
ui->MF_dataWidget->blockSignals(true);
ui->MF_keyWidget->blockSignals(true);
ui->MF_selectAllBox->blockSignals(true);
ui->MF_selectTrailerBox->blockSignals(true);
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_selectAllBox->setCheckState(Qt::Checked);
ui->MF_selectTrailerBox->setCheckState(Qt::Checked);
ui->MF_dataWidget->blockSignals(false);
ui->MF_keyWidget->blockSignals(false);
ui->MF_selectAllBox->blockSignals(false);
ui->MF_selectTrailerBox->blockSignals(false);
}
// ************************************************

View file

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

View file

@ -201,24 +201,31 @@
<property name="text">
<string>Select All</string>
</property>
<property name="tristate">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="MF_selectTrailerBox">
<property name="minimumSize">
<size>
<width>40</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Select Trailer</string>
</property>
</widget>
</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>
<widget class="QPushButton" name="MF_data2KeyButton">
<property name="minimumSize">
@ -530,12 +537,6 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>40</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Check Default</string>
</property>
@ -660,7 +661,7 @@
<widget class="QComboBox" name="MF_RW_keyTypeBox">
<property name="minimumSize">
<size>
<width>35</width>
<width>45</width>
<height>0</height>
</size>
</property>