/***************************************************************************** * checkbrute Checksum Bruteforcing Tool * Copyright (C) 2020 Syping * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * This software is provided as-is, no warranties are given to you, we are not * responsible for anything with use of the software, you are self responsible. *****************************************************************************/ #ifndef MAINTHREAD_H #define MAINTHREAD_H // Qt includes #include #include // checkbrute includes #include "brutethread.h" #include "checksum.h" class mainthread : public QObject { Q_OBJECT public: explicit mainthread(const QString &bruteforceFile, const QString &checksumsFile, const QString &algorithms, const QString &start, const QString &stop, const QString &lenghts, const QString &threads, bool strictHash, const std::map &checksum_map); bool isInitialised(); void run(); public slots: void threadFinished(); void matched(); private: std::map checksum_map; QVector checksum_vector; QVector checksums; QVector lengths; QByteArray fileContent; QEventLoop eventLoop; bool doneThreads; bool initialised; bool strictHash; quint8 mthreads; quint8 threads; quint64 found; quint64 begin; quint64 end; signals: void finished(); }; #endif // MAINTHREAD_H