Support backdoor command for Chinese Magic Card(GEN 1a)

This commit is contained in:
wh201906
2020-04-25 00:57:28 +08:00
parent 41015fd1fe
commit d793c41aa5
9 changed files with 308 additions and 19 deletions
+30 -11
View File
@@ -198,16 +198,6 @@ void MainWindow::on_MF_Attack_hardnestedButton_clicked()
mifare->hardnested();
}
void MainWindow::on_MF_Attack_sniffButton_clicked()
{
mifare->sniff();
}
void MainWindow::on_MF_Attack_listButton_clicked()
{
mifare->list();
}
void MainWindow::on_MF_RW_readAllButton_clicked()
{
mifare->readAll();
@@ -238,6 +228,36 @@ void MainWindow::on_MF_RW_restoreButton_clicked()
mifare->restore();
}
void MainWindow::on_MF_UID_readAllButton_clicked()
{
mifare->readAllC();
}
void MainWindow::on_MF_UID_readBlockButton_clicked()
{
mifare->readC();
}
void MainWindow::on_MF_UID_writeAllButton_clicked()
{
mifare->writeAllC();
}
void MainWindow::on_MF_UID_writeBlockButton_clicked()
{
mifare->writeC();
}
void MainWindow::on_MF_Sniff_sniffButton_clicked()
{
mifare->sniff();
}
void MainWindow::on_MF_Sniff_listButton_clicked()
{
mifare->list();
}
void MainWindow::MF_widgetReset()
{
int secs = mifare->cardType.sectors;
@@ -352,4 +372,3 @@ void MainWindow::setTableItem(QTableWidget* widget, int row, int column, const Q
widget->item(row, column)->setText(text);
}
// ***********************************************
+10 -2
View File
@@ -61,9 +61,9 @@ private slots:
void on_MF_Attack_hardnestedButton_clicked();
void on_MF_Attack_sniffButton_clicked();
void on_MF_Sniff_sniffButton_clicked();
void on_MF_Attack_listButton_clicked();
void on_MF_Sniff_listButton_clicked();
void on_MF_RW_readAllButton_clicked();
@@ -80,6 +80,14 @@ private slots:
void on_MF_RW_restoreButton_clicked();
void on_MF_UID_readAllButton_clicked();
void on_MF_UID_readBlockButton_clicked();
void on_MF_UID_writeAllButton_clicked();
void on_MF_UID_writeBlockButton_clicked();
private:
Ui::MainWindow *ui;
QButtonGroup* typeBtnGroup;
+6 -6
View File
@@ -670,7 +670,7 @@
</widget>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="MF_UID_writeUIDButton">
<widget class="QPushButton" name="MF_UID_setParaButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
@@ -678,7 +678,7 @@
</sizepolicy>
</property>
<property name="text">
<string>Write UID</string>
<string>Set Parameter</string>
</property>
</widget>
</item>
@@ -824,7 +824,7 @@
</spacer>
</item>
<item>
<widget class="QPushButton" name="MF_Attack_sniffButton">
<widget class="QPushButton" name="MF_Sniff_sniffButton">
<property name="minimumSize">
<size>
<width>40</width>
@@ -837,14 +837,14 @@
</widget>
</item>
<item>
<widget class="QPushButton" name="MF_Attack_listButton">
<widget class="QPushButton" name="MF_Sniff_listButton">
<property name="text">
<string>List Sniff Data</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton">
<widget class="QPushButton" name="MF_Sniff_loadButton">
<property name="minimumSize">
<size>
<width>40</width>
@@ -857,7 +857,7 @@
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_2">
<widget class="QPushButton" name="MF_Sniff_saveButton">
<property name="minimumSize">
<size>
<width>40</width>
+14
View File
@@ -0,0 +1,14 @@
#include "mf_uid_parameterdialog.h"
#include "ui_mf_uid_parameterdialog.h"
MF_UID_parameterDialog::MF_UID_parameterDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::MF_UID_parameterDialog)
{
ui->setupUi(this);
}
MF_UID_parameterDialog::~MF_UID_parameterDialog()
{
delete ui;
}
+22
View File
@@ -0,0 +1,22 @@
#ifndef MF_UID_PARAMETERDIALOG_H
#define MF_UID_PARAMETERDIALOG_H
#include <QDialog>
namespace Ui {
class MF_UID_parameterDialog;
}
class MF_UID_parameterDialog : public QDialog
{
Q_OBJECT
public:
explicit MF_UID_parameterDialog(QWidget *parent = nullptr);
~MF_UID_parameterDialog();
private:
Ui::MF_UID_parameterDialog *ui;
};
#endif // MF_UID_PARAMETERDIALOG_H
+121
View File
@@ -0,0 +1,121 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MF_UID_parameterDialog</class>
<widget class="QDialog" name="MF_UID_parameterDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>205</width>
<height>186</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<widget class="QLabel" name="uIDLabel">
<property name="text">
<string>UID:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="UIDLineEdit"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="ATQALabel">
<property name="text">
<string>ATQA:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="ATQALineEdit"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="SAKLabel">
<property name="text">
<string>SAK:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="SAKLineEdit"/>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>The parameter will not change if you leave it empty.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>MF_UID_parameterDialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>MF_UID_parameterDialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>