mirror of
				https://github.com/wh201906/Proxmark3GUI.git
				synced 2025-11-04 08:13:22 +08:00 
			
		
		
		
	Try to process the origin output(in hf mf chk)
This commit is contained in:
		
							parent
							
								
									d2689c333c
								
							
						
					
					
						commit
						5d793eb764
					
				@ -139,3 +139,22 @@ void MainWindow::uiInit()
 | 
			
		||||
    on_moreFuncCheckBox_stateChanged(0);
 | 
			
		||||
    on_portButton_clicked();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MainWindow::on_MFChkButton_clicked()
 | 
			
		||||
{
 | 
			
		||||
    pm3->setRequiringOutput(true);
 | 
			
		||||
    ui->commandEdit->setText("hf mf chk *1 ?");
 | 
			
		||||
    on_sendButton_clicked();
 | 
			
		||||
    while(pm3->waitForReadyRead(5000))
 | 
			
		||||
        ;
 | 
			
		||||
    QString result=pm3->getRequiredOutput();
 | 
			
		||||
     pm3->setRequiringOutput(false);
 | 
			
		||||
    result=result.mid(result.indexOf("|---|----------------|----------------|"));
 | 
			
		||||
    QStringList keys=result.split("\r\n");
 | 
			
		||||
    for(int i=0;i<16;i++)
 | 
			
		||||
    {
 | 
			
		||||
        ui->MFKeyWidget->setItem(i,1,new QTableWidgetItem(keys[i+3].mid(7,12).trimmed().toUpper()));
 | 
			
		||||
        ui->MFKeyWidget->setItem(i,2,new QTableWidgetItem(keys[i+3].mid(24,12).trimmed().toUpper()));
 | 
			
		||||
    }
 | 
			
		||||
    qDebug()<<"***********\n"<<keys<<"***********\n";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -41,6 +41,8 @@ private slots:
 | 
			
		||||
 | 
			
		||||
    void on_CMDHistoryWidget_itemDoubleClicked(QListWidgetItem *item);
 | 
			
		||||
 | 
			
		||||
    void on_MFChkButton_clicked();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    Ui::MainWindow *ui;
 | 
			
		||||
    PM3Process* pm3;
 | 
			
		||||
 | 
			
		||||
@ -81,7 +81,7 @@
 | 
			
		||||
       </sizepolicy>
 | 
			
		||||
      </property>
 | 
			
		||||
      <property name="currentIndex">
 | 
			
		||||
       <number>1</number>
 | 
			
		||||
       <number>0</number>
 | 
			
		||||
      </property>
 | 
			
		||||
      <widget class="QWidget" name="mifareTab">
 | 
			
		||||
       <attribute name="title">
 | 
			
		||||
@ -130,8 +130,8 @@
 | 
			
		||||
       <widget class="QGroupBox" name="groupBox">
 | 
			
		||||
        <property name="geometry">
 | 
			
		||||
         <rect>
 | 
			
		||||
          <x>150</x>
 | 
			
		||||
          <y>410</y>
 | 
			
		||||
          <x>120</x>
 | 
			
		||||
          <y>370</y>
 | 
			
		||||
          <width>338</width>
 | 
			
		||||
          <height>55</height>
 | 
			
		||||
         </rect>
 | 
			
		||||
@ -174,9 +174,9 @@
 | 
			
		||||
        <property name="geometry">
 | 
			
		||||
         <rect>
 | 
			
		||||
          <x>170</x>
 | 
			
		||||
          <y>480</y>
 | 
			
		||||
          <y>440</y>
 | 
			
		||||
          <width>338</width>
 | 
			
		||||
          <height>55</height>
 | 
			
		||||
          <height>71</height>
 | 
			
		||||
         </rect>
 | 
			
		||||
        </property>
 | 
			
		||||
        <property name="title">
 | 
			
		||||
@ -184,30 +184,85 @@
 | 
			
		||||
        </property>
 | 
			
		||||
        <layout class="QHBoxLayout" name="horizontalLayout_5">
 | 
			
		||||
         <item>
 | 
			
		||||
          <widget class="QPushButton" name="pushButton_9">
 | 
			
		||||
          <widget class="QPushButton" name="MFChkButton">
 | 
			
		||||
           <property name="sizePolicy">
 | 
			
		||||
            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
 | 
			
		||||
             <horstretch>0</horstretch>
 | 
			
		||||
             <verstretch>0</verstretch>
 | 
			
		||||
            </sizepolicy>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="minimumSize">
 | 
			
		||||
            <size>
 | 
			
		||||
             <width>0</width>
 | 
			
		||||
             <height>40</height>
 | 
			
		||||
            </size>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="maximumSize">
 | 
			
		||||
            <size>
 | 
			
		||||
             <width>16777215</width>
 | 
			
		||||
             <height>40</height>
 | 
			
		||||
            </size>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>PushButton</string>
 | 
			
		||||
            <string>Check
 | 
			
		||||
Default</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </widget>
 | 
			
		||||
         </item>
 | 
			
		||||
         <item>
 | 
			
		||||
          <widget class="QPushButton" name="pushButton_10">
 | 
			
		||||
          <widget class="QPushButton" name="MFNestedButton">
 | 
			
		||||
           <property name="minimumSize">
 | 
			
		||||
            <size>
 | 
			
		||||
             <width>0</width>
 | 
			
		||||
             <height>40</height>
 | 
			
		||||
            </size>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="maximumSize">
 | 
			
		||||
            <size>
 | 
			
		||||
             <width>16777215</width>
 | 
			
		||||
             <height>40</height>
 | 
			
		||||
            </size>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>PushButton</string>
 | 
			
		||||
            <string>Nested</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </widget>
 | 
			
		||||
         </item>
 | 
			
		||||
         <item>
 | 
			
		||||
          <widget class="QPushButton" name="pushButton_11">
 | 
			
		||||
          <widget class="QPushButton" name="MFHardnestedButton">
 | 
			
		||||
           <property name="minimumSize">
 | 
			
		||||
            <size>
 | 
			
		||||
             <width>0</width>
 | 
			
		||||
             <height>40</height>
 | 
			
		||||
            </size>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="maximumSize">
 | 
			
		||||
            <size>
 | 
			
		||||
             <width>16777215</width>
 | 
			
		||||
             <height>40</height>
 | 
			
		||||
            </size>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>PushButton</string>
 | 
			
		||||
            <string>Hardnested</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </widget>
 | 
			
		||||
         </item>
 | 
			
		||||
         <item>
 | 
			
		||||
          <widget class="QPushButton" name="pushButton_12">
 | 
			
		||||
          <widget class="QPushButton" name="MFSniffButton">
 | 
			
		||||
           <property name="minimumSize">
 | 
			
		||||
            <size>
 | 
			
		||||
             <width>0</width>
 | 
			
		||||
             <height>40</height>
 | 
			
		||||
            </size>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="maximumSize">
 | 
			
		||||
            <size>
 | 
			
		||||
             <width>16777215</width>
 | 
			
		||||
             <height>40</height>
 | 
			
		||||
            </size>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>PushButton</string>
 | 
			
		||||
            <string>Sniff</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </widget>
 | 
			
		||||
         </item>
 | 
			
		||||
 | 
			
		||||
@ -3,6 +3,8 @@
 | 
			
		||||
PM3Process::PM3Process(QObject* parent): QProcess(parent)
 | 
			
		||||
{
 | 
			
		||||
    setProcessChannelMode(PM3Process::MergedChannels);
 | 
			
		||||
    isRequiringOutput=false;
 | 
			
		||||
    requiredOutput=new QString();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
QStringList PM3Process::findPort()
 | 
			
		||||
@ -27,3 +29,22 @@ bool PM3Process::start(const QString path, const QString port)
 | 
			
		||||
    QProcess::start(path, QStringList()<<port<<"-f",QProcess::Unbuffered|QProcess::ReadWrite);
 | 
			
		||||
    return waitForStarted();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void PM3Process::setRequiringOutput(bool st)
 | 
			
		||||
{
 | 
			
		||||
    isRequiringOutput=st;
 | 
			
		||||
    if(isRequiringOutput)
 | 
			
		||||
        requiredOutput->clear();
 | 
			
		||||
}
 | 
			
		||||
QByteArray PM3Process::readLine(qint64 maxlen)
 | 
			
		||||
{
 | 
			
		||||
    QByteArray buff;
 | 
			
		||||
    buff=QProcess::readLine(maxlen);
 | 
			
		||||
    if(isRequiringOutput)
 | 
			
		||||
        requiredOutput->append(buff);
 | 
			
		||||
    return buff;
 | 
			
		||||
}
 | 
			
		||||
QString PM3Process::getRequiredOutput()
 | 
			
		||||
{
 | 
			
		||||
    return *requiredOutput;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -14,6 +14,12 @@ public:
 | 
			
		||||
    explicit PM3Process(QObject* parent=nullptr);
 | 
			
		||||
    bool start(const QString path, const QString port);
 | 
			
		||||
    QStringList findPort();
 | 
			
		||||
    QByteArray readLine(qint64 maxlen = 0);
 | 
			
		||||
    void setRequiringOutput(bool st);
 | 
			
		||||
    QString getRequiredOutput();
 | 
			
		||||
private:
 | 
			
		||||
    bool isRequiringOutput;
 | 
			
		||||
    QString* requiredOutput;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // PM3PROCESS_H
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user