#ifndef AIRODUMP_H #define AIRODUMP_H #include <QMainWindow> #include "qlayout.h" #include "stdio.h" #include "QTimer" #include "qprocess.h" #include "qstring.h" #include "infoessid.h" #include "infoconnectionbssid.h" #include "DEFINES.h" #include "GLOBALS.h" #include "qmutex.h" #include "time.h" #include "QProgressBar" #include "qmessagebox.h" namespace Ui { class Airodump; } class Airodump : public QWidget { Q_OBJECT private: //info about BSSID's, first table infoESSIDV infoE; //info about connections in the BSSID'S, second table infoConnectionBssidV infoC; //process to execute airodump QProcess *process; //file buffer where we can read data to print in the tables QFile fileM4; //mutex QMutex mutex; //timer elapsed QTimer time; public: explicit Airodump(QWidget *parent = 0); ~Airodump(); //insert a essid row info into a table of essid info bool insertRow(const infoESSID &info, QTableWidget *table); //the same to other table of infoConnectionBssid bool insertRow(const infoConnectionBssid &infoC, QTableWidget *table); //convert a table of info essid. After read the file buffer, we call this function to store info in the vectors infoESSIDV, infoConnectionBssidV. int convertInfo(); //get rows selected infoESSID getSelectedInfoESSID(); infoConnectionBssid getSelectedInfoConnectionBssid(); public slots: //start airodump with flags indicated in interface (channel, filter encrypt...) void startMonitor(bool capture = false); //stop process airodump void stop(); //update data in tables void update(); //clear the tables void clearTables(); //upload time (we can execute each second to upload time) void uploadTime(); //test void test(); //sort void sort(); //select stations associated in the bottom table when we select a bssid in the top table void selectStationsAssociated(); //new stations appear below void newStationAppear(infoConnectionBssid infoC); //receive the order to do attack deauth void attackDeauth(); //receive the order to do attack auth void attackAuth(); //receive the order to do attack broadcast void attackBroadcast(); //receive the order to crack void aircrack(); //normal start void start(); //capture start void capture(); //set status void setStatus(QString s); //show correct options depends of the status void enableCorrectOptions(QString status); //xD void notImplemented(){utils::mostrarMensaje("Not Implemented yet", "Sorry, Alpha Version!");} signals: //to emit a command or error void toLog(QString com); //attack deauth void doAttackDeauth(QString Bssid, int count, QString MAC); //attack auth void doAttackAuth(QString Bssid, int count, QString MAC); //attack broadcast void doAttackBroadcast(QString BSSID, QString MAC); //aircrack void doAircrack(QString BSSID); //status changed void statusChanged(QString newStatus); //new station void stationAppear(infoConnectionBssid infoC); private: Ui::Airodump *ui; //clear vectors of infoESSIDV and infoConnectionBssidV void clearInfoVectors(); //open the M4 buffer bool openFileM4(); //get rows infoESSID getRowInfoESSID(int row); infoConnectionBssid getRowInfoConnectionBssid(int row); }; #endif // AIRODUMP_H