mirror of
				https://github.com/wh201906/Proxmark3GUI.git
				synced 2025-11-04 08:13:22 +08:00 
			
		
		
		
	dev commit
This commit is contained in:
		
							parent
							
								
									d651d2788d
								
							
						
					
					
						commit
						643c298662
					
				@ -18,10 +18,12 @@ DEFINES += QT_DEPRECATED_WARNINGS
 | 
			
		||||
SOURCES += \
 | 
			
		||||
    main.cpp \
 | 
			
		||||
    mainwindow.cpp \
 | 
			
		||||
    mifare.cpp \
 | 
			
		||||
    pm3process.cpp
 | 
			
		||||
 | 
			
		||||
HEADERS += \
 | 
			
		||||
    mainwindow.h \
 | 
			
		||||
    mifare.h \
 | 
			
		||||
    pm3process.h
 | 
			
		||||
 | 
			
		||||
FORMS += \
 | 
			
		||||
 | 
			
		||||
@ -7,13 +7,10 @@ MainWindow::MainWindow(QWidget *parent)
 | 
			
		||||
{
 | 
			
		||||
    ui->setupUi(this);
 | 
			
		||||
    pm3=new PM3Process;
 | 
			
		||||
    mifare=new Mifare;
 | 
			
		||||
    connect(pm3,&PM3Process::readyRead,this,&MainWindow::refresh);
 | 
			
		||||
    connect(ui->commandEdit,&QLineEdit::editingFinished,this,&MainWindow::sendMSG);
 | 
			
		||||
    ui->portBox->addItem("");
 | 
			
		||||
    foreach(QString port,pm3->findPort())
 | 
			
		||||
    {
 | 
			
		||||
        ui->portBox->addItem(port);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    dataModel=new QStandardItemModel;
 | 
			
		||||
    dataModel->setColumnCount(3);
 | 
			
		||||
@ -70,7 +67,7 @@ void MainWindow::on_sendButton_clicked()
 | 
			
		||||
 | 
			
		||||
void MainWindow::refresh()
 | 
			
		||||
{
 | 
			
		||||
    QByteArray btay=pm3->readLine();
 | 
			
		||||
    QString btay=pm3->readLine();
 | 
			
		||||
    while(btay!="")
 | 
			
		||||
    {
 | 
			
		||||
        qDebug()<<btay;
 | 
			
		||||
@ -95,3 +92,13 @@ void MainWindow::on_clearButton_clicked()
 | 
			
		||||
{
 | 
			
		||||
    ui->outputEdit->clear();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MainWindow::on_portButton_clicked()
 | 
			
		||||
{
 | 
			
		||||
    ui->portBox->clear();
 | 
			
		||||
    ui->portBox->addItem("");
 | 
			
		||||
    foreach(QString port,pm3->findPort())
 | 
			
		||||
    {
 | 
			
		||||
        ui->portBox->addItem(port);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -7,6 +7,7 @@
 | 
			
		||||
#include <QMessageBox>
 | 
			
		||||
#include <QStandardItemModel>
 | 
			
		||||
#include "pm3process.h"
 | 
			
		||||
#include "mifare.h"
 | 
			
		||||
 | 
			
		||||
QT_BEGIN_NAMESPACE
 | 
			
		||||
namespace Ui { class MainWindow; }
 | 
			
		||||
@ -32,9 +33,12 @@ private slots:
 | 
			
		||||
    void on_clearButton_clicked();
 | 
			
		||||
 | 
			
		||||
    void sendMSG();
 | 
			
		||||
    void on_portButton_clicked();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    Ui::MainWindow *ui;
 | 
			
		||||
    PM3Process* pm3;
 | 
			
		||||
    Mifare* mifare;
 | 
			
		||||
    QStandardItemModel* dataModel;
 | 
			
		||||
    QStandardItemModel* keyModel;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										207
									
								
								mainwindow.ui
									
									
									
									
									
								
							
							
						
						
									
										207
									
								
								mainwindow.ui
									
									
									
									
									
								
							@ -49,6 +49,13 @@
 | 
			
		||||
      <item>
 | 
			
		||||
       <widget class="QComboBox" name="portBox"/>
 | 
			
		||||
      </item>
 | 
			
		||||
      <item>
 | 
			
		||||
       <widget class="QPushButton" name="portButton">
 | 
			
		||||
        <property name="text">
 | 
			
		||||
         <string>Refresh</string>
 | 
			
		||||
        </property>
 | 
			
		||||
       </widget>
 | 
			
		||||
      </item>
 | 
			
		||||
      <item>
 | 
			
		||||
       <widget class="QPushButton" name="connectButton">
 | 
			
		||||
        <property name="text">
 | 
			
		||||
@ -80,44 +87,168 @@
 | 
			
		||||
       <attribute name="title">
 | 
			
		||||
        <string>Mifare</string>
 | 
			
		||||
       </attribute>
 | 
			
		||||
       <layout class="QVBoxLayout" name="verticalLayout_3">
 | 
			
		||||
        <item>
 | 
			
		||||
         <layout class="QHBoxLayout" name="horizontalLayout_2">
 | 
			
		||||
          <item>
 | 
			
		||||
           <widget class="QTableView" name="dataView">
 | 
			
		||||
            <property name="sizePolicy">
 | 
			
		||||
             <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
 | 
			
		||||
              <horstretch>2</horstretch>
 | 
			
		||||
              <verstretch>0</verstretch>
 | 
			
		||||
             </sizepolicy>
 | 
			
		||||
            </property>
 | 
			
		||||
            <attribute name="verticalHeaderMinimumSectionSize">
 | 
			
		||||
             <number>20</number>
 | 
			
		||||
            </attribute>
 | 
			
		||||
            <attribute name="verticalHeaderDefaultSectionSize">
 | 
			
		||||
             <number>20</number>
 | 
			
		||||
            </attribute>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <widget class="QTableView" name="keyView">
 | 
			
		||||
            <property name="sizePolicy">
 | 
			
		||||
             <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
 | 
			
		||||
              <horstretch>1</horstretch>
 | 
			
		||||
              <verstretch>0</verstretch>
 | 
			
		||||
             </sizepolicy>
 | 
			
		||||
            </property>
 | 
			
		||||
            <attribute name="verticalHeaderMinimumSectionSize">
 | 
			
		||||
             <number>20</number>
 | 
			
		||||
            </attribute>
 | 
			
		||||
            <attribute name="verticalHeaderDefaultSectionSize">
 | 
			
		||||
             <number>20</number>
 | 
			
		||||
            </attribute>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
         </layout>
 | 
			
		||||
        </item>
 | 
			
		||||
       </layout>
 | 
			
		||||
       <widget class="QWidget" name="gridLayoutWidget">
 | 
			
		||||
        <property name="geometry">
 | 
			
		||||
         <rect>
 | 
			
		||||
          <x>90</x>
 | 
			
		||||
          <y>290</y>
 | 
			
		||||
          <width>320</width>
 | 
			
		||||
          <height>80</height>
 | 
			
		||||
         </rect>
 | 
			
		||||
        </property>
 | 
			
		||||
        <layout class="QGridLayout" name="gridLayout">
 | 
			
		||||
         <item row="0" column="0">
 | 
			
		||||
          <widget class="QPushButton" name="pushButton">
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>PushButton</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </widget>
 | 
			
		||||
         </item>
 | 
			
		||||
         <item row="0" column="1">
 | 
			
		||||
          <widget class="QPushButton" name="pushButton_4">
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>PushButton</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </widget>
 | 
			
		||||
         </item>
 | 
			
		||||
         <item row="0" column="2">
 | 
			
		||||
          <widget class="QPushButton" name="pushButton_6">
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>PushButton</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </widget>
 | 
			
		||||
         </item>
 | 
			
		||||
         <item row="0" column="3">
 | 
			
		||||
          <widget class="QPushButton" name="pushButton_8">
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>PushButton</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </widget>
 | 
			
		||||
         </item>
 | 
			
		||||
        </layout>
 | 
			
		||||
       </widget>
 | 
			
		||||
       <widget class="QGroupBox" name="groupBox">
 | 
			
		||||
        <property name="geometry">
 | 
			
		||||
         <rect>
 | 
			
		||||
          <x>150</x>
 | 
			
		||||
          <y>410</y>
 | 
			
		||||
          <width>338</width>
 | 
			
		||||
          <height>55</height>
 | 
			
		||||
         </rect>
 | 
			
		||||
        </property>
 | 
			
		||||
        <property name="title">
 | 
			
		||||
         <string>Read/Write</string>
 | 
			
		||||
        </property>
 | 
			
		||||
        <layout class="QHBoxLayout" name="horizontalLayout_4">
 | 
			
		||||
         <item>
 | 
			
		||||
          <widget class="QPushButton" name="pushButton_2">
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>PushButton</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </widget>
 | 
			
		||||
         </item>
 | 
			
		||||
         <item>
 | 
			
		||||
          <widget class="QPushButton" name="pushButton_3">
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>PushButton</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </widget>
 | 
			
		||||
         </item>
 | 
			
		||||
         <item>
 | 
			
		||||
          <widget class="QPushButton" name="pushButton_5">
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>PushButton</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </widget>
 | 
			
		||||
         </item>
 | 
			
		||||
         <item>
 | 
			
		||||
          <widget class="QPushButton" name="pushButton_7">
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>PushButton</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </widget>
 | 
			
		||||
         </item>
 | 
			
		||||
        </layout>
 | 
			
		||||
       </widget>
 | 
			
		||||
       <widget class="QGroupBox" name="groupBox_2">
 | 
			
		||||
        <property name="geometry">
 | 
			
		||||
         <rect>
 | 
			
		||||
          <x>170</x>
 | 
			
		||||
          <y>480</y>
 | 
			
		||||
          <width>338</width>
 | 
			
		||||
          <height>55</height>
 | 
			
		||||
         </rect>
 | 
			
		||||
        </property>
 | 
			
		||||
        <property name="title">
 | 
			
		||||
         <string>Attack</string>
 | 
			
		||||
        </property>
 | 
			
		||||
        <layout class="QHBoxLayout" name="horizontalLayout_5">
 | 
			
		||||
         <item>
 | 
			
		||||
          <widget class="QPushButton" name="pushButton_9">
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>PushButton</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </widget>
 | 
			
		||||
         </item>
 | 
			
		||||
         <item>
 | 
			
		||||
          <widget class="QPushButton" name="pushButton_10">
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>PushButton</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </widget>
 | 
			
		||||
         </item>
 | 
			
		||||
         <item>
 | 
			
		||||
          <widget class="QPushButton" name="pushButton_11">
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>PushButton</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </widget>
 | 
			
		||||
         </item>
 | 
			
		||||
         <item>
 | 
			
		||||
          <widget class="QPushButton" name="pushButton_12">
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>PushButton</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </widget>
 | 
			
		||||
         </item>
 | 
			
		||||
        </layout>
 | 
			
		||||
       </widget>
 | 
			
		||||
       <widget class="QWidget" name="">
 | 
			
		||||
        <layout class="QHBoxLayout" name="horizontalLayout_2">
 | 
			
		||||
         <item>
 | 
			
		||||
          <widget class="QTableView" name="dataView">
 | 
			
		||||
           <property name="sizePolicy">
 | 
			
		||||
            <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
 | 
			
		||||
             <horstretch>2</horstretch>
 | 
			
		||||
             <verstretch>0</verstretch>
 | 
			
		||||
            </sizepolicy>
 | 
			
		||||
           </property>
 | 
			
		||||
           <attribute name="verticalHeaderMinimumSectionSize">
 | 
			
		||||
            <number>20</number>
 | 
			
		||||
           </attribute>
 | 
			
		||||
           <attribute name="verticalHeaderDefaultSectionSize">
 | 
			
		||||
            <number>20</number>
 | 
			
		||||
           </attribute>
 | 
			
		||||
          </widget>
 | 
			
		||||
         </item>
 | 
			
		||||
         <item>
 | 
			
		||||
          <widget class="QTableView" name="keyView">
 | 
			
		||||
           <property name="sizePolicy">
 | 
			
		||||
            <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
 | 
			
		||||
             <horstretch>1</horstretch>
 | 
			
		||||
             <verstretch>0</verstretch>
 | 
			
		||||
            </sizepolicy>
 | 
			
		||||
           </property>
 | 
			
		||||
           <attribute name="verticalHeaderMinimumSectionSize">
 | 
			
		||||
            <number>20</number>
 | 
			
		||||
           </attribute>
 | 
			
		||||
           <attribute name="verticalHeaderDefaultSectionSize">
 | 
			
		||||
            <number>20</number>
 | 
			
		||||
           </attribute>
 | 
			
		||||
          </widget>
 | 
			
		||||
         </item>
 | 
			
		||||
        </layout>
 | 
			
		||||
       </widget>
 | 
			
		||||
      </widget>
 | 
			
		||||
      <widget class="QWidget" name="rawTab">
 | 
			
		||||
       <attribute name="title">
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										44
									
								
								mifare.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								mifare.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,44 @@
 | 
			
		||||
#include "mifare.h"
 | 
			
		||||
 | 
			
		||||
Mifare::Mifare(QObject *parent) : QObject(parent)
 | 
			
		||||
{
 | 
			
		||||
    isProcessingData=false;
 | 
			
		||||
    isProcessingKey=false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Mifare::processData(const QString str)
 | 
			
		||||
{
 | 
			
		||||
    if(isProcessingData)
 | 
			
		||||
    {
 | 
			
		||||
        if(inputType==FROM_RDBL)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
void Mifare::processKey(const QString str)
 | 
			
		||||
{
 | 
			
		||||
    if(isProcessingKey)
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
void Mifare::setProcessingState(ProcessingState st)
 | 
			
		||||
{
 | 
			
		||||
    if(st==Mifare::NONE)
 | 
			
		||||
    {
 | 
			
		||||
        isProcessingKey=false;
 | 
			
		||||
        isProcessingData=false;
 | 
			
		||||
    }
 | 
			
		||||
    else if(st==Mifare::KEY)
 | 
			
		||||
    {
 | 
			
		||||
        isProcessingKey=true;
 | 
			
		||||
        isProcessingData=false;
 | 
			
		||||
    }
 | 
			
		||||
    else if(st==Mifare::DATA)
 | 
			
		||||
    {
 | 
			
		||||
        isProcessingKey=false;
 | 
			
		||||
        isProcessingData=true;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
void Mifare::setInputType(InputType tp)
 | 
			
		||||
{
 | 
			
		||||
    inputType=tp;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										40
									
								
								mifare.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								mifare.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,40 @@
 | 
			
		||||
#ifndef MIFARE_H
 | 
			
		||||
#define MIFARE_H
 | 
			
		||||
 | 
			
		||||
#include <QObject>
 | 
			
		||||
 | 
			
		||||
class Mifare : public QObject
 | 
			
		||||
{
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
public:
 | 
			
		||||
    explicit Mifare(QObject *parent = nullptr);
 | 
			
		||||
    enum ProcessingState
 | 
			
		||||
    {
 | 
			
		||||
        NONE,
 | 
			
		||||
        DATA,
 | 
			
		||||
        KEY,
 | 
			
		||||
    };
 | 
			
		||||
    enum InputType
 | 
			
		||||
    {
 | 
			
		||||
        FROM_RDBL,
 | 
			
		||||
        FROM_RDSC,
 | 
			
		||||
        FROM_CHK,
 | 
			
		||||
        FROM_NESTED,
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    void setProcessingState(ProcessingState st);
 | 
			
		||||
    void setInputType(InputType tp);
 | 
			
		||||
public slots:
 | 
			
		||||
    void processData(const QString str);
 | 
			
		||||
    void processKey(const QString str);
 | 
			
		||||
signals:
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    bool isProcessingData=false;
 | 
			
		||||
    bool isProcessingKey=false;
 | 
			
		||||
    InputType inputType;
 | 
			
		||||
    QStringList dataList;
 | 
			
		||||
    QStringList keyList[2];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // MIFARE_H
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user