mirror of
https://github.com/wh201906/Proxmark3GUI.git
synced 2025-02-17 06:31:33 +08:00
All functions are compatible to Iceman/RRG fork
Use different foreground color for Trailer block and Block 0
This commit is contained in:
parent
63f3424871
commit
4f10e3d75c
1
.gitignore
vendored
1
.gitignore
vendored
@ -14,7 +14,6 @@
|
|||||||
*.so.*
|
*.so.*
|
||||||
*_pch.h.cpp
|
*_pch.h.cpp
|
||||||
*_resource.rc
|
*_resource.rc
|
||||||
*.qm
|
|
||||||
.#*
|
.#*
|
||||||
*.*#
|
*.*#
|
||||||
core
|
core
|
||||||
|
BIN
lang/en_US.qm
Normal file
BIN
lang/en_US.qm
Normal file
Binary file not shown.
170
lang/en_US.ts
170
lang/en_US.ts
@ -45,72 +45,102 @@
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mf_sim_simdialog.ui" line="37"/>
|
<location filename="../ui/mf_sim_simdialog.ui" line="38"/>
|
||||||
<source>u</source>
|
<source>u</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mf_sim_simdialog.ui" line="66"/>
|
<location filename="../ui/mf_sim_simdialog.ui" line="67"/>
|
||||||
<source>UID 4 or 7 bytes. If not specified, the UID 4B from emulator memory will be used</source>
|
<source>UID 4 or 7 bytes. If not specified, the UID 4B from emulator memory will be used</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mf_sim_simdialog.ui" line="87"/>
|
<location filename="../ui/mf_sim_simdialog.ui" line="105"/>
|
||||||
<source>n</source>
|
<source>--atqa</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mf_sim_simdialog.ui" line="116"/>
|
<location filename="../ui/mf_sim_simdialog.ui" line="134"/>
|
||||||
<source>Automatically exit simulation after <numreads> blocks have been read by reader. 0 = infinite</source>
|
<source>Provide explicit ATQA (2 bytes)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mf_sim_simdialog.ui" line="137"/>
|
<location filename="../ui/mf_sim_simdialog.ui" line="172"/>
|
||||||
<source>i</source>
|
<source>--sak</source>
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../ui/mf_sim_simdialog.ui" line="150"/>
|
|
||||||
<source>Interactive, means that console will not be returned until simulation finishes or is aborted</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../ui/mf_sim_simdialog.ui" line="171"/>
|
|
||||||
<source>x</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../ui/mf_sim_simdialog.ui" line="184"/>
|
|
||||||
<source>Crack, performs the 'reader attack', nr/ar attack against a legitimate reader, fishes out the key(s)</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../ui/mf_sim_simdialog.ui" line="205"/>
|
|
||||||
<source>e</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../ui/mf_sim_simdialog.ui" line="218"/>
|
|
||||||
<source>set keys found from 'reader attack' to emulator memory (implies x and i)</source>
|
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mf_sim_simdialog.ui" line="239"/>
|
<location filename="../ui/mf_sim_simdialog.ui" line="239"/>
|
||||||
<source>f</source>
|
<source>n</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mf_sim_simdialog.ui" line="268"/>
|
<location filename="../ui/mf_sim_simdialog.ui" line="268"/>
|
||||||
|
<source>Automatically exit simulation after <numreads> blocks have been read by reader. 0 = infinite</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/mf_sim_simdialog.ui" line="306"/>
|
||||||
|
<source>i</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/mf_sim_simdialog.ui" line="319"/>
|
||||||
|
<source>Interactive, means that console will not be returned until simulation finishes or is aborted</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/mf_sim_simdialog.ui" line="357"/>
|
||||||
|
<source>x</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/mf_sim_simdialog.ui" line="370"/>
|
||||||
|
<source>Crack, performs the 'reader attack', nr/ar attack against a legitimate reader, fishes out the key(s)</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/mf_sim_simdialog.ui" line="408"/>
|
||||||
|
<source>e</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/mf_sim_simdialog.ui" line="421"/>
|
||||||
|
<source>set keys found from 'reader attack' to emulator memory (implies x(--crack) and i)</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/mf_sim_simdialog.ui" line="577"/>
|
||||||
|
<source>-v</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/mf_sim_simdialog.ui" line="590"/>
|
||||||
|
<source>verbose output</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/mf_sim_simdialog.ui" line="459"/>
|
||||||
|
<source>f</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/mf_sim_simdialog.ui" line="201"/>
|
||||||
|
<source>Provide explicit SAK (1 byte)</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/mf_sim_simdialog.ui" line="488"/>
|
||||||
<source>get UIDs to use for 'reader attack' from file 'f <filename.txt>' (implies x and i)</source>
|
<source>get UIDs to use for 'reader attack' from file 'f <filename.txt>' (implies x and i)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mf_sim_simdialog.ui" line="289"/>
|
<location filename="../ui/mf_sim_simdialog.ui" line="526"/>
|
||||||
<source>r</source>
|
<source>r</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mf_sim_simdialog.ui" line="302"/>
|
<location filename="../ui/mf_sim_simdialog.ui" line="539"/>
|
||||||
<source>Generate random nonces instead of sequential nonces. Standard reader attack won't work with this option, only moebius attack works</source>
|
<source>Generate random nonces instead of sequential nonces. Standard reader attack won't work with this option, only moebius attack works</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@ -352,7 +382,7 @@ It could make the whole sector blocked irreversibly!</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="493"/>
|
<location filename="../ui/mainwindow.ui" line="493"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="918"/>
|
<location filename="../ui/mainwindow.cpp" line="921"/>
|
||||||
<source>Data</source>
|
<source>Data</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@ -411,11 +441,6 @@ It could make the whole sector blocked irreversibly!</source>
|
|||||||
<source>Key Type:</source>
|
<source>Key Type:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<location filename="../ui/mainwindow.ui" line="1140"/>
|
|
||||||
<source>Snoop</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="1153"/>
|
<location filename="../ui/mainwindow.ui" line="1153"/>
|
||||||
<source>List Data</source>
|
<source>List Data</source>
|
||||||
@ -556,6 +581,11 @@ It could make the whole sector blocked irreversibly!</source>
|
|||||||
<source>Sniff</source>
|
<source>Sniff</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/mainwindow.ui" line="1140"/>
|
||||||
|
<source>Sniff(14a)</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="1208"/>
|
<location filename="../ui/mainwindow.ui" line="1208"/>
|
||||||
<source>LF/Data</source>
|
<source>LF/Data</source>
|
||||||
@ -739,7 +769,7 @@ or "-p <port> -f"</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="134"/>
|
<location filename="../ui/mainwindow.cpp" line="134"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="906"/>
|
<location filename="../ui/mainwindow.cpp" line="909"/>
|
||||||
<source>Not Connected</source>
|
<source>Not Connected</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@ -934,54 +964,54 @@ or "-p <port> -f"</source>
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="907"/>
|
<location filename="../ui/mainwindow.cpp" line="910"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1076"/>
|
<location filename="../ui/mainwindow.cpp" line="1079"/>
|
||||||
<source>Idle</source>
|
<source>Idle</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="909"/>
|
<location filename="../ui/mainwindow.cpp" line="912"/>
|
||||||
<source>Stop</source>
|
<source>Stop</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="916"/>
|
<location filename="../ui/mainwindow.cpp" line="919"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="923"/>
|
<location filename="../ui/mainwindow.cpp" line="926"/>
|
||||||
<source>Sec</source>
|
<source>Sec</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="917"/>
|
<location filename="../ui/mainwindow.cpp" line="920"/>
|
||||||
<source>Blk</source>
|
<source>Blk</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="924"/>
|
<location filename="../ui/mainwindow.cpp" line="927"/>
|
||||||
<source>KeyA</source>
|
<source>KeyA</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="925"/>
|
<location filename="../ui/mainwindow.cpp" line="928"/>
|
||||||
<source>KeyB</source>
|
<source>KeyB</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1013"/>
|
<location filename="../ui/mainwindow.cpp" line="1016"/>
|
||||||
<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="1015"/>
|
<location filename="../ui/mainwindow.cpp" line="1018"/>
|
||||||
<source>PM3:</source>
|
<source>PM3:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1017"/>
|
<location filename="../ui/mainwindow.cpp" line="1020"/>
|
||||||
<source>State:</source>
|
<source>State:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1072"/>
|
<location filename="../ui/mainwindow.cpp" line="1075"/>
|
||||||
<source>Running</source>
|
<source>Running</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@ -989,56 +1019,56 @@ or "-p <port> -f"</source>
|
|||||||
<context>
|
<context>
|
||||||
<name>Mifare</name>
|
<name>Mifare</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="617"/>
|
<location filename="../module/mifare.cpp" line="641"/>
|
||||||
<source>Success!</source>
|
<source>Success!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="229"/>
|
<location filename="../module/mifare.cpp" line="228"/>
|
||||||
<location filename="../module/mifare.cpp" line="617"/>
|
<location filename="../module/mifare.cpp" line="641"/>
|
||||||
<location filename="../module/mifare.cpp" line="621"/>
|
|
||||||
<location filename="../module/mifare.cpp" line="645"/>
|
<location filename="../module/mifare.cpp" line="645"/>
|
||||||
<location filename="../module/mifare.cpp" line="684"/>
|
<location filename="../module/mifare.cpp" line="669"/>
|
||||||
<location filename="../module/mifare.cpp" line="697"/>
|
<location filename="../module/mifare.cpp" line="708"/>
|
||||||
<location filename="../module/mifare.cpp" line="743"/>
|
<location filename="../module/mifare.cpp" line="721"/>
|
||||||
|
<location filename="../module/mifare.cpp" line="776"/>
|
||||||
<source>Info</source>
|
<source>Info</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="229"/>
|
<location filename="../module/mifare.cpp" line="228"/>
|
||||||
<source>Plz provide at least one known key</source>
|
<source>Plz provide at least one known key</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="468"/>
|
<location filename="../module/mifare.cpp" line="492"/>
|
||||||
<location filename="../module/mifare.cpp" line="621"/>
|
<location filename="../module/mifare.cpp" line="645"/>
|
||||||
<source>Failed!</source>
|
<source>Failed!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="646"/>
|
<location filename="../module/mifare.cpp" line="670"/>
|
||||||
<source>The Access Bits is invalid!
|
<source>The Access Bits is invalid!
|
||||||
It could make the whole sector blocked irreversibly!
|
It could make the whole sector blocked irreversibly!
|
||||||
Continue to write?</source>
|
Continue to write?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="684"/>
|
<location filename="../module/mifare.cpp" line="708"/>
|
||||||
<source>Successful!</source>
|
<source>Successful!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="697"/>
|
<location filename="../module/mifare.cpp" line="721"/>
|
||||||
<source>Failed to write to these blocks:</source>
|
<source>Failed to write to these blocks:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="701"/>
|
<location filename="../module/mifare.cpp" line="725"/>
|
||||||
<source>Select them?</source>
|
<source>Select them?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="743"/>
|
<location filename="../module/mifare.cpp" line="776"/>
|
||||||
<source>Failed to read card.</source>
|
<source>Failed to read card.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
BIN
lang/zh_CN.qm
Normal file
BIN
lang/zh_CN.qm
Normal file
Binary file not shown.
130
lang/zh_CN.ts
130
lang/zh_CN.ts
@ -45,72 +45,102 @@
|
|||||||
<translation>模拟</translation>
|
<translation>模拟</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mf_sim_simdialog.ui" line="37"/>
|
<location filename="../ui/mf_sim_simdialog.ui" line="38"/>
|
||||||
<source>u</source>
|
<source>u</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mf_sim_simdialog.ui" line="66"/>
|
<location filename="../ui/mf_sim_simdialog.ui" line="67"/>
|
||||||
<source>UID 4 or 7 bytes. If not specified, the UID 4B from emulator memory will be used</source>
|
<source>UID 4 or 7 bytes. If not specified, the UID 4B from emulator memory will be used</source>
|
||||||
<translation>4或7字节的UID,如果不指定,则使用模拟器内存中的4字节UID</translation>
|
<translation>4或7字节的UID,如果不指定,则使用模拟器内存中的4字节UID</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mf_sim_simdialog.ui" line="87"/>
|
<location filename="../ui/mf_sim_simdialog.ui" line="105"/>
|
||||||
|
<source>--atqa</source>
|
||||||
|
<translation></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/mf_sim_simdialog.ui" line="134"/>
|
||||||
|
<source>Provide explicit ATQA (2 bytes)</source>
|
||||||
|
<translation>指定ATQA(2个字节)</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/mf_sim_simdialog.ui" line="172"/>
|
||||||
|
<source>--sak</source>
|
||||||
|
<translation></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/mf_sim_simdialog.ui" line="201"/>
|
||||||
|
<source>Provide explicit SAK (1 byte)</source>
|
||||||
|
<translation>指定SAK(1个字节)</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/mf_sim_simdialog.ui" line="239"/>
|
||||||
<source>n</source>
|
<source>n</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mf_sim_simdialog.ui" line="116"/>
|
<location filename="../ui/mf_sim_simdialog.ui" line="268"/>
|
||||||
<source>Automatically exit simulation after <numreads> blocks have been read by reader. 0 = infinite</source>
|
<source>Automatically exit simulation after <numreads> blocks have been read by reader. 0 = infinite</source>
|
||||||
<translation>在读卡器读取<n>个块后自动退出模拟,n为0或不指定时永远不退出</translation>
|
<translation>在读卡器读取<n>个块后自动退出模拟,n为0或不指定时永远不退出</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mf_sim_simdialog.ui" line="137"/>
|
<location filename="../ui/mf_sim_simdialog.ui" line="306"/>
|
||||||
<source>i</source>
|
<source>i</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mf_sim_simdialog.ui" line="150"/>
|
<location filename="../ui/mf_sim_simdialog.ui" line="319"/>
|
||||||
<source>Interactive, means that console will not be returned until simulation finishes or is aborted</source>
|
<source>Interactive, means that console will not be returned until simulation finishes or is aborted</source>
|
||||||
<translation>交互模式,勾选后PM3客户端将在模拟完成或者模拟中断后才可继续使用</translation>
|
<translation>交互模式,勾选后PM3客户端将在模拟完成或者模拟中断后才可继续使用</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mf_sim_simdialog.ui" line="171"/>
|
<location filename="../ui/mf_sim_simdialog.ui" line="357"/>
|
||||||
<source>x</source>
|
<source>x</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mf_sim_simdialog.ui" line="184"/>
|
<location filename="../ui/mf_sim_simdialog.ui" line="370"/>
|
||||||
<source>Crack, performs the 'reader attack', nr/ar attack against a legitimate reader, fishes out the key(s)</source>
|
<source>Crack, performs the 'reader attack', nr/ar attack against a legitimate reader, fishes out the key(s)</source>
|
||||||
<translation>破解,对读卡器进行攻击,通过nr/ar攻击来钓出密码(无卡嗅探)</translation>
|
<translation>破解,对读卡器进行攻击,通过nr/ar攻击来钓出密码(无卡嗅探)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mf_sim_simdialog.ui" line="205"/>
|
<location filename="../ui/mf_sim_simdialog.ui" line="408"/>
|
||||||
<source>e</source>
|
<source>e</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mf_sim_simdialog.ui" line="218"/>
|
<location filename="../ui/mf_sim_simdialog.ui" line="421"/>
|
||||||
<source>set keys found from 'reader attack' to emulator memory (implies x and i)</source>
|
<source>set keys found from 'reader attack' to emulator memory (implies x(--crack) and i)</source>
|
||||||
<translation>在获得密码后自动将密码写入模拟器内存(自动勾选x和i)</translation>
|
<translation>在获得密码后自动将密码写入模拟器内存(自动勾选x(--crack)和i)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mf_sim_simdialog.ui" line="239"/>
|
<location filename="../ui/mf_sim_simdialog.ui" line="577"/>
|
||||||
|
<source>-v</source>
|
||||||
|
<translation></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/mf_sim_simdialog.ui" line="590"/>
|
||||||
|
<source>verbose output</source>
|
||||||
|
<translation>更多输出内容</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/mf_sim_simdialog.ui" line="459"/>
|
||||||
<source>f</source>
|
<source>f</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mf_sim_simdialog.ui" line="268"/>
|
<location filename="../ui/mf_sim_simdialog.ui" line="488"/>
|
||||||
<source>get UIDs to use for 'reader attack' from file 'f <filename.txt>' (implies x and i)</source>
|
<source>get UIDs to use for 'reader attack' from file 'f <filename.txt>' (implies x and i)</source>
|
||||||
<translation>从<filename.txt>当中获取用于破解读卡器的UID(批量模拟)(自动勾选x和i)</translation>
|
<translation>从<filename.txt>当中获取用于破解读卡器的UID(批量模拟)(自动勾选x和i)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mf_sim_simdialog.ui" line="289"/>
|
<location filename="../ui/mf_sim_simdialog.ui" line="526"/>
|
||||||
<source>r</source>
|
<source>r</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mf_sim_simdialog.ui" line="302"/>
|
<location filename="../ui/mf_sim_simdialog.ui" line="539"/>
|
||||||
<source>Generate random nonces instead of sequential nonces. Standard reader attack won't work with this option, only moebius attack works</source>
|
<source>Generate random nonces instead of sequential nonces. Standard reader attack won't work with this option, only moebius attack works</source>
|
||||||
<translation>生成随机nonce而不是顺序的nonce,这种情况下PM3将不对读卡器进行标准攻击,只进行moebius攻击</translation>
|
<translation>生成随机nonce而不是顺序的nonce,这种情况下PM3将不对读卡器进行标准攻击,只进行moebius攻击</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -356,7 +386,7 @@ It could make the whole sector blocked irreversibly!</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="493"/>
|
<location filename="../ui/mainwindow.ui" line="493"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="918"/>
|
<location filename="../ui/mainwindow.cpp" line="921"/>
|
||||||
<source>Data</source>
|
<source>Data</source>
|
||||||
<translation>数据</translation>
|
<translation>数据</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -415,11 +445,6 @@ It could make the whole sector blocked irreversibly!</source>
|
|||||||
<source>Key Type:</source>
|
<source>Key Type:</source>
|
||||||
<translation>密钥类型:</translation>
|
<translation>密钥类型:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<location filename="../ui/mainwindow.ui" line="1140"/>
|
|
||||||
<source>Snoop</source>
|
|
||||||
<translation>嗅探(Snoop)</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="1153"/>
|
<location filename="../ui/mainwindow.ui" line="1153"/>
|
||||||
<source>List Data</source>
|
<source>List Data</source>
|
||||||
@ -560,6 +585,11 @@ It could make the whole sector blocked irreversibly!</source>
|
|||||||
<source>Sniff</source>
|
<source>Sniff</source>
|
||||||
<translation>嗅探</translation>
|
<translation>嗅探</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui/mainwindow.ui" line="1140"/>
|
||||||
|
<source>Sniff(14a)</source>
|
||||||
|
<translation>嗅探(14a)</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.ui" line="1208"/>
|
<location filename="../ui/mainwindow.ui" line="1208"/>
|
||||||
<source>LF/Data</source>
|
<source>LF/Data</source>
|
||||||
@ -747,7 +777,7 @@ or "-p <port> -f"</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="134"/>
|
<location filename="../ui/mainwindow.cpp" line="134"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="906"/>
|
<location filename="../ui/mainwindow.cpp" line="909"/>
|
||||||
<source>Not Connected</source>
|
<source>Not Connected</source>
|
||||||
<translation>未连接</translation>
|
<translation>未连接</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -942,54 +972,54 @@ or "-p <port> -f"</source>
|
|||||||
<translation>Trace文件(*.trc)</translation>
|
<translation>Trace文件(*.trc)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="907"/>
|
<location filename="../ui/mainwindow.cpp" line="910"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1076"/>
|
<location filename="../ui/mainwindow.cpp" line="1079"/>
|
||||||
<source>Idle</source>
|
<source>Idle</source>
|
||||||
<translation>空闲</translation>
|
<translation>空闲</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="909"/>
|
<location filename="../ui/mainwindow.cpp" line="912"/>
|
||||||
<source>Stop</source>
|
<source>Stop</source>
|
||||||
<translation>停止</translation>
|
<translation>停止</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="916"/>
|
<location filename="../ui/mainwindow.cpp" line="919"/>
|
||||||
<location filename="../ui/mainwindow.cpp" line="923"/>
|
<location filename="../ui/mainwindow.cpp" line="926"/>
|
||||||
<source>Sec</source>
|
<source>Sec</source>
|
||||||
<translation>扇区</translation>
|
<translation>扇区</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="917"/>
|
<location filename="../ui/mainwindow.cpp" line="920"/>
|
||||||
<source>Blk</source>
|
<source>Blk</source>
|
||||||
<translation>块</translation>
|
<translation>块</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="924"/>
|
<location filename="../ui/mainwindow.cpp" line="927"/>
|
||||||
<source>KeyA</source>
|
<source>KeyA</source>
|
||||||
<translation>密钥A</translation>
|
<translation>密钥A</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="925"/>
|
<location filename="../ui/mainwindow.cpp" line="928"/>
|
||||||
<source>KeyB</source>
|
<source>KeyB</source>
|
||||||
<translation>密钥B</translation>
|
<translation>密钥B</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1013"/>
|
<location filename="../ui/mainwindow.cpp" line="1016"/>
|
||||||
<source>HW Version:</source>
|
<source>HW Version:</source>
|
||||||
<translation>固件版本:</translation>
|
<translation>固件版本:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1015"/>
|
<location filename="../ui/mainwindow.cpp" line="1018"/>
|
||||||
<source>PM3:</source>
|
<source>PM3:</source>
|
||||||
<translation>连接状态:</translation>
|
<translation>连接状态:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1017"/>
|
<location filename="../ui/mainwindow.cpp" line="1020"/>
|
||||||
<source>State:</source>
|
<source>State:</source>
|
||||||
<translation>运行状态:</translation>
|
<translation>运行状态:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui/mainwindow.cpp" line="1072"/>
|
<location filename="../ui/mainwindow.cpp" line="1075"/>
|
||||||
<source>Running</source>
|
<source>Running</source>
|
||||||
<translation>正在运行</translation>
|
<translation>正在运行</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -997,34 +1027,34 @@ or "-p <port> -f"</source>
|
|||||||
<context>
|
<context>
|
||||||
<name>Mifare</name>
|
<name>Mifare</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="617"/>
|
<location filename="../module/mifare.cpp" line="641"/>
|
||||||
<source>Success!</source>
|
<source>Success!</source>
|
||||||
<translation>成功!</translation>
|
<translation>成功!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="229"/>
|
<location filename="../module/mifare.cpp" line="228"/>
|
||||||
<location filename="../module/mifare.cpp" line="617"/>
|
<location filename="../module/mifare.cpp" line="641"/>
|
||||||
<location filename="../module/mifare.cpp" line="621"/>
|
|
||||||
<location filename="../module/mifare.cpp" line="645"/>
|
<location filename="../module/mifare.cpp" line="645"/>
|
||||||
<location filename="../module/mifare.cpp" line="684"/>
|
<location filename="../module/mifare.cpp" line="669"/>
|
||||||
<location filename="../module/mifare.cpp" line="697"/>
|
<location filename="../module/mifare.cpp" line="708"/>
|
||||||
<location filename="../module/mifare.cpp" line="743"/>
|
<location filename="../module/mifare.cpp" line="721"/>
|
||||||
|
<location filename="../module/mifare.cpp" line="776"/>
|
||||||
<source>Info</source>
|
<source>Info</source>
|
||||||
<translation>信息</translation>
|
<translation>信息</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="229"/>
|
<location filename="../module/mifare.cpp" line="228"/>
|
||||||
<source>Plz provide at least one known key</source>
|
<source>Plz provide at least one known key</source>
|
||||||
<translation>请至少提供一个已知密码</translation>
|
<translation>请至少提供一个已知密码</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="468"/>
|
<location filename="../module/mifare.cpp" line="492"/>
|
||||||
<location filename="../module/mifare.cpp" line="621"/>
|
<location filename="../module/mifare.cpp" line="645"/>
|
||||||
<source>Failed!</source>
|
<source>Failed!</source>
|
||||||
<translation>失败!</translation>
|
<translation>失败!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="646"/>
|
<location filename="../module/mifare.cpp" line="670"/>
|
||||||
<source>The Access Bits is invalid!
|
<source>The Access Bits is invalid!
|
||||||
It could make the whole sector blocked irreversibly!
|
It could make the whole sector blocked irreversibly!
|
||||||
Continue to write?</source>
|
Continue to write?</source>
|
||||||
@ -1033,22 +1063,22 @@ Continue to write?</source>
|
|||||||
确定要写入吗?</translation>
|
确定要写入吗?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="684"/>
|
<location filename="../module/mifare.cpp" line="708"/>
|
||||||
<source>Successful!</source>
|
<source>Successful!</source>
|
||||||
<translation>成功!</translation>
|
<translation>成功!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="697"/>
|
<location filename="../module/mifare.cpp" line="721"/>
|
||||||
<source>Failed to write to these blocks:</source>
|
<source>Failed to write to these blocks:</source>
|
||||||
<translation>写入以下块失败:</translation>
|
<translation>写入以下块失败:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="701"/>
|
<location filename="../module/mifare.cpp" line="725"/>
|
||||||
<source>Select them?</source>
|
<source>Select them?</source>
|
||||||
<translation>选中这些块?</translation>
|
<translation>选中这些块?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../module/mifare.cpp" line="743"/>
|
<location filename="../module/mifare.cpp" line="776"/>
|
||||||
<source>Failed to read card.</source>
|
<source>Failed to read card.</source>
|
||||||
<translation>读卡失败。</translation>
|
<translation>读卡失败。</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -89,7 +89,7 @@ Mifare::Mifare(Ui::MainWindow *ui, Util *addr, QWidget *parent): QObject(parent)
|
|||||||
|
|
||||||
QString Mifare::info(bool isRequiringOutput)
|
QString Mifare::info(bool isRequiringOutput)
|
||||||
{
|
{
|
||||||
if(util->getClientType() == Util::CLIENTTYPE_OFFICIAL || util->getClientType() == Util::CLIENTTYPE_ICEMAN)
|
if(Util::getClientType() == Util::CLIENTTYPE_OFFICIAL || Util::getClientType() == Util::CLIENTTYPE_ICEMAN)
|
||||||
{
|
{
|
||||||
if(isRequiringOutput)
|
if(isRequiringOutput)
|
||||||
{
|
{
|
||||||
@ -120,7 +120,7 @@ void Mifare::chk()
|
|||||||
QString result;
|
QString result;
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
QString data;
|
QString data;
|
||||||
if(util->getClientType() == Util::CLIENTTYPE_OFFICIAL)
|
if(Util::getClientType() == Util::CLIENTTYPE_OFFICIAL)
|
||||||
{
|
{
|
||||||
result = util->execCMDWithOutput(
|
result = util->execCMDWithOutput(
|
||||||
"hf mf chk *"
|
"hf mf chk *"
|
||||||
@ -148,7 +148,7 @@ void Mifare::chk()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(util->getClientType() == Util::CLIENTTYPE_ICEMAN)
|
else if(Util::getClientType() == Util::CLIENTTYPE_ICEMAN)
|
||||||
{
|
{
|
||||||
result = util->execCMDWithOutput(
|
result = util->execCMDWithOutput(
|
||||||
"hf mf chk --"
|
"hf mf chk --"
|
||||||
@ -185,7 +185,7 @@ void Mifare::nested()
|
|||||||
QString result;
|
QString result;
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
QString data;
|
QString data;
|
||||||
if(util->getClientType() == Util::CLIENTTYPE_OFFICIAL)
|
if(Util::getClientType() == Util::CLIENTTYPE_OFFICIAL)
|
||||||
{
|
{
|
||||||
result = util->execCMDWithOutput(
|
result = util->execCMDWithOutput(
|
||||||
"hf mf nested "
|
"hf mf nested "
|
||||||
@ -193,7 +193,7 @@ void Mifare::nested()
|
|||||||
+ " *",
|
+ " *",
|
||||||
Util::ReturnTrigger(15000, {"Can't found", "\\|000\\|"}));
|
Util::ReturnTrigger(15000, {"Can't found", "\\|000\\|"}));
|
||||||
}
|
}
|
||||||
else if(util->getClientType() == Util::CLIENTTYPE_ICEMAN)
|
else if(Util::getClientType() == Util::CLIENTTYPE_ICEMAN)
|
||||||
{
|
{
|
||||||
QString knownKeyInfo = "";
|
QString knownKeyInfo = "";
|
||||||
for(int i = 0; i < cardType.sector_size; i++)
|
for(int i = 0; i < cardType.sector_size; i++)
|
||||||
@ -262,34 +262,41 @@ void Mifare::hardnested()
|
|||||||
|
|
||||||
void Mifare::darkside()
|
void Mifare::darkside()
|
||||||
{
|
{
|
||||||
if(util->getClientType() == Util::CLIENTTYPE_OFFICIAL)
|
if(Util::getClientType() == Util::CLIENTTYPE_OFFICIAL)
|
||||||
{
|
|
||||||
util->execCMD("hf mf mifare");
|
util->execCMD("hf mf mifare");
|
||||||
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
else if(Util::getClientType() == Util::CLIENTTYPE_ICEMAN)
|
||||||
}
|
|
||||||
else if(util->getClientType() == Util::CLIENTTYPE_ICEMAN)
|
|
||||||
{
|
|
||||||
util->execCMD("hf mf darkside");
|
util->execCMD("hf mf darkside");
|
||||||
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Mifare::sniff()
|
void Mifare::sniff()
|
||||||
{
|
{
|
||||||
|
if(Util::getClientType() == Util::CLIENTTYPE_OFFICIAL)
|
||||||
util->execCMD("hf mf sniff");
|
util->execCMD("hf mf sniff");
|
||||||
|
else if(Util::getClientType() == Util::CLIENTTYPE_ICEMAN)
|
||||||
|
util->execCMD("hf sniff");
|
||||||
|
|
||||||
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Mifare::snoop()
|
void Mifare::sniff14a()
|
||||||
{
|
{
|
||||||
|
if(Util::getClientType() == Util::CLIENTTYPE_OFFICIAL)
|
||||||
util->execCMD("hf 14a snoop");
|
util->execCMD("hf 14a snoop");
|
||||||
|
else if(Util::getClientType() == Util::CLIENTTYPE_ICEMAN)
|
||||||
|
util->execCMD("hf 14a sniff");
|
||||||
|
|
||||||
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Mifare::list()
|
void Mifare::list()
|
||||||
{
|
{
|
||||||
|
if(Util::getClientType() == Util::CLIENTTYPE_OFFICIAL)
|
||||||
util->execCMD("hf list mf");
|
util->execCMD("hf list mf");
|
||||||
|
else if(Util::getClientType() == Util::CLIENTTYPE_ICEMAN)
|
||||||
|
util->execCMD("trace list -t mf");
|
||||||
|
|
||||||
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -300,7 +307,7 @@ QString Mifare::_readblk(int blockId, KeyType keyType, const QString& key, Targe
|
|||||||
QRegularExpressionMatch currMatch;
|
QRegularExpressionMatch currMatch;
|
||||||
bool isTrailerBlock = (blockId < 128 && ((blockId + 1) % 4 == 0)) || ((blockId + 1) % 16 == 0);
|
bool isTrailerBlock = (blockId < 128 && ((blockId + 1) % 4 == 0)) || ((blockId + 1) % 16 == 0);
|
||||||
|
|
||||||
if(util->getClientType() == Util::CLIENTTYPE_OFFICIAL || util->getClientType() == Util::CLIENTTYPE_ICEMAN)
|
if(Util::getClientType() == Util::CLIENTTYPE_OFFICIAL || Util::getClientType() == Util::CLIENTTYPE_ICEMAN)
|
||||||
{
|
{
|
||||||
if(targetType == TARGET_MIFARE)
|
if(targetType == TARGET_MIFARE)
|
||||||
{
|
{
|
||||||
@ -358,7 +365,7 @@ QString Mifare::_readblk(int blockId, KeyType keyType, const QString& key, Targe
|
|||||||
data = "";
|
data = "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(util->getClientType() == Util::CLIENTTYPE_OFFICIAL)
|
if(Util::getClientType() == Util::CLIENTTYPE_OFFICIAL)
|
||||||
{
|
{
|
||||||
if(targetType == TARGET_EMULATOR)
|
if(targetType == TARGET_EMULATOR)
|
||||||
{
|
{
|
||||||
@ -370,7 +377,7 @@ QString Mifare::_readblk(int blockId, KeyType keyType, const QString& key, Targe
|
|||||||
data.remove(" ");
|
data.remove(" ");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(util->getClientType() == Util::CLIENTTYPE_ICEMAN)
|
else if(Util::getClientType() == Util::CLIENTTYPE_ICEMAN)
|
||||||
{
|
{
|
||||||
if(targetType == TARGET_EMULATOR)
|
if(targetType == TARGET_EMULATOR)
|
||||||
{
|
{
|
||||||
@ -397,7 +404,7 @@ QStringList Mifare::_readsec(int sectorId, KeyType keyType, const QString& key,
|
|||||||
data.append("");
|
data.append("");
|
||||||
}
|
}
|
||||||
|
|
||||||
if(util->getClientType() == Util::CLIENTTYPE_OFFICIAL || util->getClientType() == Util::CLIENTTYPE_ICEMAN)
|
if(Util::getClientType() == Util::CLIENTTYPE_OFFICIAL || Util::getClientType() == Util::CLIENTTYPE_ICEMAN)
|
||||||
{
|
{
|
||||||
// try to read all blocks together
|
// try to read all blocks together
|
||||||
if(targetType == TARGET_MIFARE)
|
if(targetType == TARGET_MIFARE)
|
||||||
@ -583,7 +590,7 @@ bool Mifare::_writeblk(int blockId, KeyType keyType, const QString& key, const Q
|
|||||||
if(data_isDataValid(input) != DATA_NOSPACE)
|
if(data_isDataValid(input) != DATA_NOSPACE)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if(util->getClientType() == Util::CLIENTTYPE_OFFICIAL || util->getClientType() == Util::CLIENTTYPE_ICEMAN)
|
if(Util::getClientType() == Util::CLIENTTYPE_OFFICIAL || Util::getClientType() == Util::CLIENTTYPE_ICEMAN)
|
||||||
{
|
{
|
||||||
if(targetType == TARGET_MIFARE)
|
if(targetType == TARGET_MIFARE)
|
||||||
{
|
{
|
||||||
@ -734,26 +741,28 @@ void Mifare::writeSelected(TargetType targetType)
|
|||||||
|
|
||||||
void Mifare::dump()
|
void Mifare::dump()
|
||||||
{
|
{
|
||||||
|
if(Util::getClientType() == Util::CLIENTTYPE_OFFICIAL || Util::getClientType() == Util::CLIENTTYPE_ICEMAN)
|
||||||
util->execCMD("hf mf dump");
|
util->execCMD("hf mf dump");
|
||||||
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Mifare::restore()
|
void Mifare::restore()
|
||||||
{
|
{
|
||||||
|
if(Util::getClientType() == Util::CLIENTTYPE_OFFICIAL || Util::getClientType() == Util::CLIENTTYPE_ICEMAN)
|
||||||
util->execCMD("hf mf restore");
|
util->execCMD("hf mf restore");
|
||||||
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Mifare::wipeC()
|
void Mifare::wipeC()
|
||||||
{
|
{
|
||||||
if(util->getClientType() == Util::CLIENTTYPE_OFFICIAL)
|
if(Util::getClientType() == Util::CLIENTTYPE_OFFICIAL)
|
||||||
{
|
{
|
||||||
util->execCMD(
|
util->execCMD(
|
||||||
"hf mf cwipe "
|
"hf mf cwipe "
|
||||||
+ QString::number(cardType.type)
|
+ QString::number(cardType.type)
|
||||||
+ " f");
|
+ " f");
|
||||||
}
|
}
|
||||||
else if(util->getClientType() == Util::CLIENTTYPE_ICEMAN)
|
else if(Util::getClientType() == Util::CLIENTTYPE_ICEMAN)
|
||||||
{
|
{
|
||||||
util->execCMD("hf mf cwipe");
|
util->execCMD("hf mf cwipe");
|
||||||
}
|
}
|
||||||
@ -784,7 +793,7 @@ void Mifare::setParameterC()
|
|||||||
|
|
||||||
void Mifare::lockC()
|
void Mifare::lockC()
|
||||||
{
|
{
|
||||||
if(util->getClientType() == Util::CLIENTTYPE_OFFICIAL)
|
if(Util::getClientType() == Util::CLIENTTYPE_OFFICIAL)
|
||||||
{
|
{
|
||||||
util->execCMD("hf 14a raw -pa -b7 40");
|
util->execCMD("hf 14a raw -pa -b7 40");
|
||||||
util->execCMD("hf 14a raw -pa 43");
|
util->execCMD("hf 14a raw -pa 43");
|
||||||
@ -793,7 +802,7 @@ void Mifare::lockC()
|
|||||||
util->execCMD("hf 14a raw -pa 85 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 18 47");
|
util->execCMD("hf 14a raw -pa 85 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 18 47");
|
||||||
util->execCMD("hf 14a raw -a 52");
|
util->execCMD("hf 14a raw -a 52");
|
||||||
}
|
}
|
||||||
else if(util->getClientType() == Util::CLIENTTYPE_ICEMAN)
|
else if(Util::getClientType() == Util::CLIENTTYPE_ICEMAN)
|
||||||
{
|
{
|
||||||
util->execCMD("hf 14a raw -ak -b 7 40");
|
util->execCMD("hf 14a raw -ak -b 7 40");
|
||||||
util->execCMD("hf 14a raw -ak 43");
|
util->execCMD("hf 14a raw -ak 43");
|
||||||
@ -806,12 +815,13 @@ void Mifare::lockC()
|
|||||||
|
|
||||||
void Mifare::wipeE()
|
void Mifare::wipeE()
|
||||||
{
|
{
|
||||||
|
if(Util::getClientType() == Util::CLIENTTYPE_OFFICIAL || Util::getClientType() == Util::CLIENTTYPE_ICEMAN)
|
||||||
util->execCMD("hf mf eclr");
|
util->execCMD("hf mf eclr");
|
||||||
}
|
}
|
||||||
|
|
||||||
void Mifare::simulate()
|
void Mifare::simulate()
|
||||||
{
|
{
|
||||||
MF_Sim_simDialog dialog(cardType.type);
|
MF_Sim_simDialog dialog(cardType.type, cardType.typeText);
|
||||||
connect(&dialog, &MF_Sim_simDialog::sendCMD, util, &Util::execCMD);
|
connect(&dialog, &MF_Sim_simDialog::sendCMD, util, &Util::execCMD);
|
||||||
if(dialog.exec() == QDialog::Accepted)
|
if(dialog.exec() == QDialog::Accepted)
|
||||||
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
||||||
@ -819,13 +829,24 @@ void Mifare::simulate()
|
|||||||
|
|
||||||
void Mifare::loadSniff(const QString& file)
|
void Mifare::loadSniff(const QString& file)
|
||||||
{
|
{
|
||||||
|
if(Util::getClientType() == Util::CLIENTTYPE_OFFICIAL)
|
||||||
util->execCMD("hf list mf -l " + file);
|
util->execCMD("hf list mf -l " + file);
|
||||||
|
else if(Util::getClientType() == Util::CLIENTTYPE_ICEMAN)
|
||||||
|
{
|
||||||
|
if(util->execCMDWithOutput("trace load -f " + file, Util::ReturnTrigger({"loaded"})) != "")
|
||||||
|
util->execCMD("trace list -t mf");
|
||||||
|
}
|
||||||
|
|
||||||
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Mifare::saveSniff(const QString& file)
|
void Mifare::saveSniff(const QString& file)
|
||||||
{
|
{
|
||||||
|
if(Util::getClientType() == Util::CLIENTTYPE_OFFICIAL)
|
||||||
util->execCMD("hf list mf -s " + file);
|
util->execCMD("hf list mf -s " + file);
|
||||||
|
else if(Util::getClientType() == Util::CLIENTTYPE_ICEMAN)
|
||||||
|
util->execCMD("trace save -f " + file);
|
||||||
|
|
||||||
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
ui->funcTab->setCurrentIndex(Util::rawTabIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ public:
|
|||||||
void darkside();
|
void darkside();
|
||||||
void hardnested();
|
void hardnested();
|
||||||
void sniff();
|
void sniff();
|
||||||
void snoop();
|
void sniff14a();
|
||||||
void list();
|
void list();
|
||||||
void readOne(TargetType targetType = TARGET_MIFARE);
|
void readOne(TargetType targetType = TARGET_MIFARE);
|
||||||
void readSelected(TargetType targetType = TARGET_MIFARE);
|
void readSelected(TargetType targetType = TARGET_MIFARE);
|
||||||
|
@ -836,10 +836,10 @@ void MainWindow::on_MF_Sniff_sniffButton_clicked()
|
|||||||
setState(true);
|
setState(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_MF_Sniff_snoopButton_clicked()
|
void MainWindow::on_MF_14aSniff_snoopButton_clicked()
|
||||||
{
|
{
|
||||||
setState(false);
|
setState(false);
|
||||||
mifare->snoop();
|
mifare->sniff14a();
|
||||||
setState(true);
|
setState(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -852,6 +852,7 @@ void MainWindow::MF_widgetReset()
|
|||||||
{
|
{
|
||||||
int secs = mifare->cardType.sector_size;
|
int secs = mifare->cardType.sector_size;
|
||||||
int blks = mifare->cardType.block_size;
|
int blks = mifare->cardType.block_size;
|
||||||
|
QBrush trailerItemForeColor = QBrush(QColor(0, 160, 255));
|
||||||
ui->MF_RW_blockBox->clear();
|
ui->MF_RW_blockBox->clear();
|
||||||
ui->MF_keyWidget->setRowCount(secs);
|
ui->MF_keyWidget->setRowCount(secs);
|
||||||
ui->MF_dataWidget->setRowCount(blks);
|
ui->MF_dataWidget->setRowCount(blks);
|
||||||
@ -876,8 +877,10 @@ void MainWindow::MF_widgetReset()
|
|||||||
setTableItem(ui->MF_keyWidget, i, 1, "");
|
setTableItem(ui->MF_keyWidget, i, 1, "");
|
||||||
setTableItem(ui->MF_keyWidget, i, 2, "");
|
setTableItem(ui->MF_keyWidget, i, 2, "");
|
||||||
setTableItem(ui->MF_dataWidget, mifare->cardType.blks[i], 0, QString::number(i));
|
setTableItem(ui->MF_dataWidget, mifare->cardType.blks[i], 0, QString::number(i));
|
||||||
|
ui->MF_dataWidget->item(mifare->cardType.blks[i] + mifare->cardType.blk[i] - 1, 2)->setForeground(trailerItemForeColor);
|
||||||
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_dataWidget->item(0, 2)->setForeground(QBrush(QColor(255, 160, 0)));
|
||||||
ui->MF_selectAllBox->setCheckState(Qt::Checked);
|
ui->MF_selectAllBox->setCheckState(Qt::Checked);
|
||||||
ui->MF_selectTrailerBox->setCheckState(Qt::Checked);
|
ui->MF_selectTrailerBox->setCheckState(Qt::Checked);
|
||||||
|
|
||||||
|
@ -149,7 +149,7 @@ private slots:
|
|||||||
|
|
||||||
void on_MF_fillKeysButton_clicked();
|
void on_MF_fillKeysButton_clicked();
|
||||||
|
|
||||||
void on_MF_Sniff_snoopButton_clicked();
|
void on_MF_14aSniff_snoopButton_clicked();
|
||||||
|
|
||||||
void on_MF_trailerDecoderButton_clicked();
|
void on_MF_trailerDecoderButton_clicked();
|
||||||
|
|
||||||
|
@ -1129,7 +1129,7 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="MF_Sniff_snoopButton">
|
<widget class="QPushButton" name="MF_14aSniff_snoopButton">
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>40</width>
|
<width>40</width>
|
||||||
@ -1137,7 +1137,7 @@
|
|||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Snoop</string>
|
<string>Sniff(14a)</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -1,12 +1,34 @@
|
|||||||
#include "mf_sim_simdialog.h"
|
#include "mf_sim_simdialog.h"
|
||||||
#include "ui_mf_sim_simdialog.h"
|
#include "ui_mf_sim_simdialog.h"
|
||||||
|
|
||||||
MF_Sim_simDialog::MF_Sim_simDialog(int cardType, QWidget *parent) :
|
MF_Sim_simDialog::MF_Sim_simDialog(int cardType, QString cardTypeText, QWidget *parent) :
|
||||||
QDialog(parent),
|
QDialog(parent),
|
||||||
ui(new Ui::MF_Sim_simDialog)
|
ui(new Ui::MF_Sim_simDialog)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
if(Util::getClientType() == Util::CLIENTTYPE_OFFICIAL)
|
||||||
|
{
|
||||||
|
ui->atqaGroupBox->setVisible(false);
|
||||||
|
ui->atqaLine->setVisible(false);
|
||||||
|
ui->sakGroupBox->setVisible(false);
|
||||||
|
ui->sakLine->setVisible(false);
|
||||||
|
ui->vGroupBox->setVisible(false);
|
||||||
|
ui->vLine->setVisible(false);
|
||||||
|
}
|
||||||
|
else if(Util::getClientType() == Util::CLIENTTYPE_ICEMAN)
|
||||||
|
{
|
||||||
|
ui->fGroupBox->setVisible(false);
|
||||||
|
ui->fLine->setVisible(false);
|
||||||
|
ui->rGroupBox->setVisible(false);
|
||||||
|
ui->rLine->setVisible(false);
|
||||||
|
ui->uBox->setText("-u");
|
||||||
|
ui->nBox->setText("-n");
|
||||||
|
ui->iBox->setText("-i");
|
||||||
|
ui->xBox->setText("--crack");
|
||||||
|
ui->eBox->setText("-e");
|
||||||
|
}
|
||||||
this->cardType = cardType;
|
this->cardType = cardType;
|
||||||
|
this->cardTypeText = cardTypeText;
|
||||||
}
|
}
|
||||||
|
|
||||||
MF_Sim_simDialog::~MF_Sim_simDialog()
|
MF_Sim_simDialog::~MF_Sim_simDialog()
|
||||||
@ -55,6 +77,8 @@ void MF_Sim_simDialog::on_fBox_clicked(bool checked)
|
|||||||
void MF_Sim_simDialog::on_buttonBox_accepted()
|
void MF_Sim_simDialog::on_buttonBox_accepted()
|
||||||
{
|
{
|
||||||
QString paras;
|
QString paras;
|
||||||
|
if(Util::getClientType() == Util::CLIENTTYPE_OFFICIAL)
|
||||||
|
{
|
||||||
paras += (ui->uBox->isChecked() ? "u " + ui->uEdit->text() + " " : "");
|
paras += (ui->uBox->isChecked() ? "u " + ui->uEdit->text() + " " : "");
|
||||||
paras += (ui->nBox->isChecked() ? "n " + ui->nEdit->text() + " " : "");
|
paras += (ui->nBox->isChecked() ? "n " + ui->nEdit->text() + " " : "");
|
||||||
paras += (ui->iBox->isChecked() ? "i " : "");
|
paras += (ui->iBox->isChecked() ? "i " : "");
|
||||||
@ -63,4 +87,17 @@ void MF_Sim_simDialog::on_buttonBox_accepted()
|
|||||||
paras += (ui->fBox->isChecked() ? "f " + ui->fEdit->text() + " " : "");
|
paras += (ui->fBox->isChecked() ? "f " + ui->fEdit->text() + " " : "");
|
||||||
paras += (ui->rBox->isChecked() ? "r " : "");
|
paras += (ui->rBox->isChecked() ? "r " : "");
|
||||||
emit sendCMD(QString("hf mf sim ") + "*" + QString::number(cardType) + " " + paras.trimmed());
|
emit sendCMD(QString("hf mf sim ") + "*" + QString::number(cardType) + " " + paras.trimmed());
|
||||||
|
}
|
||||||
|
else if(Util::getClientType() == Util::CLIENTTYPE_ICEMAN)
|
||||||
|
{
|
||||||
|
paras += (ui->uBox->isChecked() ? "-u " + ui->uEdit->text() + " " : "");
|
||||||
|
paras += (ui->atqaBox->isChecked() ? "--atqa " + ui->atqaEdit->text() + " " : "");
|
||||||
|
paras += (ui->sakBox->isChecked() ? "--sak " + ui->sakEdit->text() + " " : "");
|
||||||
|
paras += (ui->nBox->isChecked() ? "-n " + ui->nEdit->text() + " " : "");
|
||||||
|
paras += (ui->iBox->isChecked() ? "-i " : "");
|
||||||
|
paras += (ui->xBox->isChecked() ? "--crack " : "");
|
||||||
|
paras += (ui->eBox->isChecked() ? "-e " : "");
|
||||||
|
paras += (ui->vBox->isChecked() ? "-v " : "");
|
||||||
|
emit sendCMD(QString("hf mf sim --") + cardTypeText + " " + paras.trimmed());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
#include "common/util.h"
|
||||||
|
|
||||||
namespace Ui
|
namespace Ui
|
||||||
{
|
{
|
||||||
@ -14,7 +15,7 @@ class MF_Sim_simDialog : public QDialog
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit MF_Sim_simDialog(int cardType, QWidget *parent = nullptr);
|
explicit MF_Sim_simDialog(int cardType, QString cardTypeText, QWidget *parent = nullptr);
|
||||||
~MF_Sim_simDialog();
|
~MF_Sim_simDialog();
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
@ -25,6 +26,7 @@ private slots:
|
|||||||
private:
|
private:
|
||||||
Ui::MF_Sim_simDialog *ui;
|
Ui::MF_Sim_simDialog *ui;
|
||||||
int cardType;
|
int cardType;
|
||||||
|
QString cardTypeText;
|
||||||
signals:
|
signals:
|
||||||
void sendCMD(const QString& cmd);
|
void sendCMD(const QString& cmd);
|
||||||
private slots:
|
private slots:
|
||||||
|
@ -7,30 +7,31 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>461</width>
|
<width>461</width>
|
||||||
<height>456</height>
|
<height>524</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>Simulate</string>
|
<string>Simulate</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="uGroupBox">
|
||||||
|
<layout class="QHBoxLayout" name="uLayout">
|
||||||
<property name="spacing">
|
<property name="spacing">
|
||||||
<number>5</number>
|
<number>5</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="leftMargin">
|
<property name="leftMargin">
|
||||||
<number>5</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="topMargin">
|
<property name="topMargin">
|
||||||
<number>5</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="rightMargin">
|
<property name="rightMargin">
|
||||||
<number>5</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="bottomMargin">
|
<property name="bottomMargin">
|
||||||
<number>5</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<item>
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="uBox">
|
<widget class="QCheckBox" name="uBox">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@ -71,16 +72,167 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="Line" name="line_6">
|
<widget class="Line" name="uLine">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
<widget class="QGroupBox" name="atqaGroupBox">
|
||||||
|
<layout class="QHBoxLayout" name="atqaLayout">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="atqaBox">
|
||||||
|
<property name="text">
|
||||||
|
<string>--atqa</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLineEdit" name="atqaEdit">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_8">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Provide explicit ATQA (2 bytes)</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="Line" name="atqaLine">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="sakGroupBox">
|
||||||
|
<layout class="QHBoxLayout" name="sakLayout">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="sakBox">
|
||||||
|
<property name="text">
|
||||||
|
<string>--sak</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLineEdit" name="sakEdit">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_9">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Provide explicit SAK (1 byte)</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="Line" name="sakLine">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="nGroupBox">
|
||||||
|
<layout class="QHBoxLayout" name="nLayout">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="nBox">
|
<widget class="QCheckBox" name="nBox">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@ -121,16 +273,33 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="Line" name="line_5">
|
<widget class="Line" name="nLine">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
<widget class="QGroupBox" name="iGroupBox">
|
||||||
|
<layout class="QHBoxLayout" name="iLayout">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="iBox">
|
<widget class="QCheckBox" name="iBox">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@ -155,16 +324,33 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="Line" name="line_4">
|
<widget class="Line" name="iLine">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
<widget class="QGroupBox" name="xGroupBox">
|
||||||
|
<layout class="QHBoxLayout" name="xLayout">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="xBox">
|
<widget class="QCheckBox" name="xBox">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@ -189,16 +375,33 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="Line" name="line_3">
|
<widget class="Line" name="xLine">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_6">
|
<widget class="QGroupBox" name="eGroupBox">
|
||||||
|
<layout class="QHBoxLayout" name="eLayout">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="eBox">
|
<widget class="QCheckBox" name="eBox">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@ -215,7 +418,7 @@
|
|||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>set keys found from 'reader attack' to emulator memory (implies x and i)</string>
|
<string>set keys found from 'reader attack' to emulator memory (implies x(--crack) and i)</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="wordWrap">
|
<property name="wordWrap">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
@ -223,16 +426,33 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="Line" name="line_2">
|
<widget class="Line" name="eLine">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
<widget class="QGroupBox" name="fGroupBox">
|
||||||
|
<layout class="QHBoxLayout" name="fLayout">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="fBox">
|
<widget class="QCheckBox" name="fBox">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@ -273,16 +493,33 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="Line" name="line">
|
<widget class="Line" name="fLine">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_7">
|
<widget class="QGroupBox" name="rGroupBox">
|
||||||
|
<layout class="QHBoxLayout" name="rLayout">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="rBox">
|
<widget class="QCheckBox" name="rBox">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@ -307,9 +544,61 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="Line" name="line_7">
|
<widget class="Line" name="rLine">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="vGroupBox">
|
||||||
|
<layout class="QHBoxLayout" name="vLayout">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="vBox">
|
||||||
|
<property name="text">
|
||||||
|
<string>-v</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_11">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>verbose output</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="Line" name="vLine">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user