本帖最后由 cqr2287 于 2017-11-12 17:01 编辑
ida对于qt的分析十分准确,已经精确到上一层基类了,大结构是完全符合的。现在开源
[C++] 纯文本查看 复制代码 #ifndef CRACKME1_3A_H
#define CRACKME1_3A_H
#include <QtGui/QMainWindow>
#include "ui_crackme1_3a.h"
#include <QMessageBox>
class CrackMe1_3A : public QMainWindow
{
Q_OBJECT
public:
CrackMe1_3A(QWidget *parent = 0, Qt::WFlags flags = 0);
~CrackMe1_3A();
int checkBox_noCheck();
int checkBox_check();
private slots:
int judge_register();
private:
Ui::CrackMe1_3AClass ui;
int flag;
};
#endif // CRACKME1_3A_H
[C++] 纯文本查看 复制代码 #include "crackme1_3a.h"
CrackMe1_3A::CrackMe1_3A(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
flag = 0;
ui.setupUi(this);
connect(ui.pushButtonCheck,SIGNAL(clicked(bool)),this,SLOT(judge_register()));
}
CrackMe1_3A::~CrackMe1_3A()
{
}
//1 is check, 0 is not check
int CrackMe1_3A::judge_register()
{
if(!ui.checkBoxSure->isChecked()) //not check
{
QMessageBox::warning(this,"sure?","you don't sure??if you don't sure,why you activated my crackme?");
return 0;
}
if(ui.m_lineEdit->text() == "zycqryyh2h2h8k7n")
{
QMessageBox::warning(this,"good job","you win");
}
QMessageBox::warning(this,"warning","Nuclear missile launched.");
QMessageBox::warning(this,"warning","Iron Curtain Activated");
QMessageBox::warning(this,"warning","Chronosphere Activated");
QMessageBox::warning(this,"warning","Lightning Storm Created");
QMessageBox::warning(this,"warning","Genetic Mutator Activated");
QMessageBox::warning(this,"warning","Psychic Dominator Activated");
return 0;
}
[C++] 纯文本查看 复制代码
#ifndef UI_CRACKME1_3A_H
#define UI_CRACKME1_3A_H
#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QCheckBox>
#include <QtGui/QHBoxLayout>
#include <QtGui/QHeaderView>
#include <QtGui/QLineEdit>
#include <QtGui/QMainWindow>
#include <QtGui/QMenuBar>
#include <QtGui/QPushButton>
#include <QtGui/QStatusBar>
#include <QtGui/QToolBar>
#include <QtGui/QVBoxLayout>
#include <QtGui/QWidget>
QT_BEGIN_NAMESPACE
class Ui_CrackMe1_3AClass
{
public:
QWidget *centralWidget;
QVBoxLayout *verticalLayout;
QLineEdit *m_lineEdit;
QHBoxLayout *horizontalLayout;
QCheckBox *checkBoxSure;
QPushButton *pushButtonCheck;
QMenuBar *menuBar;
QToolBar *mainToolBar;
QStatusBar *statusBar;
void setupUi(QMainWindow *CrackMe1_3AClass)
{
if (CrackMe1_3AClass->objectName().isEmpty())
CrackMe1_3AClass->setObjectName(QString::fromUtf8("CrackMe1_3AClass"));
CrackMe1_3AClass->resize(557, 268);
centralWidget = new QWidget(CrackMe1_3AClass);
centralWidget->setObjectName(QString::fromUtf8("centralWidget"));
verticalLayout = new QVBoxLayout(centralWidget);
verticalLayout->setSpacing(6);
verticalLayout->setContentsMargins(11, 11, 11, 11);
verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
m_lineEdit = new QLineEdit(centralWidget);
m_lineEdit->setObjectName(QString::fromUtf8("m_lineEdit"));
verticalLayout->addWidget(m_lineEdit);
horizontalLayout = new QHBoxLayout();
horizontalLayout->setSpacing(6);
horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
checkBoxSure = new QCheckBox(centralWidget);
checkBoxSure->setObjectName(QString::fromUtf8("checkBoxSure"));
horizontalLayout->addWidget(checkBoxSure);
pushButtonCheck = new QPushButton(centralWidget);
pushButtonCheck->setObjectName(QString::fromUtf8("pushButtonCheck"));
horizontalLayout->addWidget(pushButtonCheck);
verticalLayout->addLayout(horizontalLayout);
CrackMe1_3AClass->setCentralWidget(centralWidget);
menuBar = new QMenuBar(CrackMe1_3AClass);
menuBar->setObjectName(QString::fromUtf8("menuBar"));
menuBar->setGeometry(QRect(0, 0, 557, 23));
CrackMe1_3AClass->setMenuBar(menuBar);
mainToolBar = new QToolBar(CrackMe1_3AClass);
mainToolBar->setObjectName(QString::fromUtf8("mainToolBar"));
CrackMe1_3AClass->addToolBar(Qt::TopToolBarArea, mainToolBar);
statusBar = new QStatusBar(CrackMe1_3AClass);
statusBar->setObjectName(QString::fromUtf8("statusBar"));
CrackMe1_3AClass->setStatusBar(statusBar);
retranslateUi(CrackMe1_3AClass);
QMetaObject::connectSlotsByName(CrackMe1_3AClass);
} // setupUi
void retranslateUi(QMainWindow *CrackMe1_3AClass)
{
CrackMe1_3AClass->setWindowTitle(QApplication::translate("CrackMe1_3AClass", "CrackMe1_3A", 0, QApplication::UnicodeUTF8));
checkBoxSure->setText(QApplication::translate("CrackMe1_3AClass", "sure????????????????", 0, QApplication::UnicodeUTF8));
pushButtonCheck->setText(QApplication::translate("CrackMe1_3AClass", "check", 0, QApplication::UnicodeUTF8));
} // retranslateUi
};
namespace Ui {
class CrackMe1_3AClass: public Ui_CrackMe1_3AClass {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_CRACKME1_3A_H
|