首页 > 编程语言 >C++ 黑客攻击系统

C++ 黑客攻击系统

时间:2022-08-22 23:23:09浏览次数:130  
标签:cout 黑客攻击 int 系统 C++ char pwd include id

#include <iostream>
#include <Windows.h>
#include <string>
#include <conio.h>  //getch使用
#include "hacker.h"
using namespace std;

#define WIDTH 40
#define HEIGHT 15

void inputPwd(char pwd[], int size) {
    char c;
    int i = 0;

    while (1)
    {
        c = getch();  //这个getch连回车符都吃!!!
        if (c == '\r') {
            pwd[i] = 0;
            break;
        }
        pwd[i++] = c;
        cout << "*" ;
    }
    cout << endl;
}
void init() {
    char cmd[128];
    sprintf_s(cmd, "mode con cols=%d lines=%d", WIDTH, HEIGHT);
    system(cmd);
}
void printInMiddle(string msg) {
    int space = (WIDTH - msg.length()) / 2;
    for (int i = 0; i < space; i++) {
        cout << " ";
    }
    cout << msg << endl;
}
void login(void) {
    string name;
    //string pwd;
    char pwd[32];

    while (1) {
        system("cls");

        std::cout << "请输入账号:";
        std::cin >> name;

        std::cout << "请输入密码:";
        //std::cin >> pwd;
        //实现密码的输入
        inputPwd(pwd, sizeof(pwd));

        if (name == "54hk" && !strcmp(pwd,"123456")) { //若比较结果是相等的就会等于0,非0为真
            //break;
            return;
        }
        else {
            cout << "用户名或密码错误!" << endl;
            system("pause");
        }
    }
}

void menuShow(void) {
    system("cls");
    string menu[] = {
        "1.网站404攻击",
        "2.网站篡改攻击",
        "3.网站攻击修复",
        "4.查看攻击记录",
        "5.退出"
    };

    system("cls");
    printInMiddle("---黑客攻击系统---");

    // 计算菜单最大长度:
    int max = 0;
    int menuCount = sizeof(menu) / sizeof(menu[0]);
    for (int i = 0; i < menuCount; i++) {
        if (menu[i].length() > max) {
            max = menu[i].length();
        }
    }

    int leftSpace = (WIDTH - max) / 2;

    for (int i = 0; i < menuCount; i++) {
        for (int i = 0; i < leftSpace; i++) {
            printf(" ");

        }
        cout << menu[i] << endl;
    }
}

int menuChoise(void) {
    int n = 0;

    while (1) {
        cout << "请选择菜单项:";
        cin >> n;
        if (cin.fail()) {
            cin.clear();
            cin.sync();
            cout << "无效输入. 请重新输入." << endl;
            system("pause");
        }
        else {
            break;
        }
    }

    return n;
}

void attack404(void) {
    char id[64];
    char response[4096];

    system("cls");
    printInMiddle("---网站404攻击---");

    cout << "请输入准备攻击的网站ID:";
    cin >> id;

    cout << "正在执行404攻击..." << endl;

    hk_404(id, response);  //发起攻击
    //id指对应网站的端口号
    //服务器返回的结果是utf-8编码格式

    string retStr = UTF8ToGBK(response);
    cout << retStr << endl;

    // int hk_404(char *id, char *response) ;
    //cout << "404攻击..." << endl;   
    system("pause");
}
void siteEdit(void) { system("cls"); char id[64]; char response[4096]; string attackText; //cout << "网站篡改攻击..." << endl; cout << "请输入准备攻击的网站ID:"; scanf_s("%s",id, size(id)); cout << "请输入你要写入的内容:"; cin>> attackText; cout << "正在执行网站篡改攻击...\n"; GBKToUTF8(attackText); hk_tamper(id, (char*)attackText.c_str(),response); string retStr = UTF8ToGBK(response); cout << retStr << endl; system("pause"); } void siteRepair(void) { char id[64]; char response[4096]; system("cls"); printInMiddle("---网站攻击修复---"); cout << "请输入准备修复的网站ID:"; cin >> id; cout << "正在执行攻击修复..." << endl; hk_restore(id, response); //发起攻击 //id指对应网站的端口号 //服务器返回的结果是utf-8编码格式 string retStr = UTF8ToGBK(response); cout << retStr << endl; system("pause"); } void attckRecord(void) { char id[64]; char response[4096]; system("cls"); printInMiddle("---网站攻击记录---"); cout << "请输入需要查看记录的网站ID:"; cin >> id; cout << "正在查看攻击记录..." << endl; hk_record(id, response); //id指对应网站的端口号 //服务器返回的结果是utf-8编码格式 string retStr = UTF8ToGBK(response); cout << retStr << endl; system("pause"); } int main(void) { // 登录 init(); login(); while (1) { menuShow(); int n = menuChoise(); switch (n) { case 1: attack404(); break; case 2: siteEdit(); break; case 3: siteRepair(); break; case 4: attckRecord(); break; case 5: //break; return 0; default: cout << "无效输入. 请重新输入." << endl; system("pause"); break; } } system("pause"); return 0; }

 

标签:cout,黑客攻击,int,系统,C++,char,pwd,include,id
From: https://www.cnblogs.com/smartlearn/p/16614635.html

相关文章

  • C++ 黑客攻击系统实现
    #include<iostream>#include<Windows.h>#include<string>#include<conio.h>//getch使用#include"hacker.h"usingnamespacestd;#defineWIDTH40#define......
  • C++ 函数的定义
     函数的定义: 1.确定函数的功能; 2.确定函数的参数; 3.确定函数的返回值; 4.确定函数名; 5.函数的实现。 #include<iostream>usingnamespacestd;intsum(intn)......
  • C++Beginner(3)-Compile
    compilingsourcecodefile(.cpp,.cxx,.cc,.C,.c++)->objectfiles(.o,.obj)->linkobjectfilestogetherintoanexecutable(app.exe,app),staticlibrary(.lib......
  • 节选 软件建模与文档:架构师怎样绘制系统架构蓝图?
    软件建模所谓软件建模,就是为要开发的软件建造模型。模型是对客观存在的抽象,例如著名的物理学公式E=mc2,就是质量能量转换的物理规律的数学模型。除了物理学公式以外,还有一......
  • 在cmd中获取系统信息
     1.电脑设备序列号 在cmd中输入命令 wmicbiosgetserialnumber输出SerialNumber*************(设备号) 2.CPU序列号 在cmd中输入命令 wmiccpuge......
  • c++ 智能指针
    智能指针,是模板类,意在避免在使用动态内存时,出现异常等意外,或忘记使用delete,而造成内存泄漏。这个智能指针,在指针变量结束声明周期后,调用对象的析构函数,并自动去释放这个指......
  • 【C++-笔记】访问说明符public、protected和private的用途和区别
    在C++当中,访问说明符主要在如下两个场景中使用:成员访问说明符当我们在定义/声明一个类时,需要使用成员访问说明符来说明成员的访问权限,public、protected和private的区别......
  • VRP系统命令
    <用户视图>[系统视图]  <Huawei>system-view//进入系统视图<Huawei>undoxxx//恢复默认、禁用或删除 文件系统命令<Huawei>pwd//显示目录<Huawei>......
  • haddoob分布式文件系统架构
    一、apacheApache基金会是专门为支持开源软件项目而办的一个非盈利性组织二、分布式文件系统1、FSFileSystem文件系统时极域硬盘之上的文件管理的工具我们用户......
  • 从C过渡到C++——换一个视角深入数组[真的存在高效吗?](2)
    从C过渡到C++——换一个视角深入数组[真的存在高效吗?](2)C风格高效的数组遍历在过渡到C++之前我还是想谈一谈如何书写高效的C的代码,这里的高效指的是C代码的高效,也就是在不......