“功实现 莫非实现 ”攻击?“ “小森
“非也非也,只是模拟而已 “小程
“如何模拟攻击呢”小森
“使用函数啦”小程
“那函数能干什么?”小森
“这个嘛…有了 ” 小程
“这么跟你说吧:函数就是功能, 比如说你想实现一个加法 运算。”
“num1 + num2 这样有错吗”,“没有错,但是不能复用性 ”小程
“复用性?”小森
“你想想 如果这个重复的复制,代码是不是很傻, ”小程
“确实有点…”小森
"所以加法运算 是一个功能 “小程
加法函数:
int Add(int leftNum,int rightNum){
return leftNum + rightNum;
}
cout << Add(1,1) << endl; cout << Add(1,2) << endl;
"这样用法,很不错的“ 小程
“确实不错,但是为啥这样用呀,如何模拟攻击” 小森
来看看实现黑客攻击系统功能实现、优化系统代码
#include#include #include #include"hacker.h" using namespace std; #define WIDE 40//窗口宽度 #define HIGH 15//窗口高度 void Inputpwd(char pwd[], int size) { int i = 0; char ch; bool flag = false; while (true){ ch = _getch(); if (i >= size - 1) { flag = true; break; } if (ch=='r'){ pwd[i]=' '; break; } pwd[i++] = ch; cout << "*"; } if (flag){ cout << endl; cerr << "数组已越界!!" << endl; system("pause"); exit(1); } } void login(void){ string name; char password[32]; while (true) { system("cls"); cout << "请输入账号:"; cin >> name; cout << "请输入密码:"; Inputpwd(password, sizeof(password)); if (name == "54hk" && !strcmp( password , "123456")) { break; }else { cout << "用户名和密码 错误" << endl; system("pause"); } } } void printInMidde(string Msg) { int leftSpace = (WIDE - Msg.length()) / 2; for (int i = 0; i < leftSpace; i++){ cout << " "; } cout << Msg << endl; } void menuShow(void) { //"黑客攻击系统" string menu[] = { "1.网站404攻击", "2.网站篡改攻击", "3.网站攻击修复", "4.查看攻击记录", "5.退出", "请输入:" }; //计算菜单项最大长度 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(); } } system("cls"); //打印标题 printInMidde("---黑客攻击系统---"); int leftSpace = (WIDE - max) / 2; for (int i = 0; i < menuCount; i++) { for (int i = 0; i < leftSpace; i++){ cout << " "; } if (i < menuCount - 1) { cout << menu[i] << endl; }else{ cout << menu[i]; } } } int menuChoise(void) { int n = 0;//用户输入的编号 while (true) { cin >> n; if (cin.fail()) { cin.clear(); cin.sync(); cout << "无效输入,请重新输入" << endl; }else { break; } } return n; } void attack404(void) { system("cls"); char id[64];//网站id char response[MAXSIZE]{ 0 };//攻击后,从服务器返回结果 printInMidde("--- 网站404攻击---"); cout << "请输入网站id;"; cin >> id; cout << "正在执行404攻击..." << endl; //发起攻击 hk_404(id, response); string retStr = UTF8ToGBK(response); cout << retStr << endl; system("pause"); } void siteEdit(void) { system("cls"); //cout << "网站篡改攻击..." << endl; char id[64]; char response[MAXSIZE]; string attackText; printInMidde("---网站篡改攻击---"); cout << "请输入网站id:"; cin >> id; cout << "请输入你要写入的内容:"; cin >> attackText; cout << "正在执行篡改攻击..." << endl; GBKToUTF8(attackText);//编码转换 // 发起攻击 hk_tamper(id, (char*)attackText.c_str(), response); string reStr = UTF8ToGBK(response); cout << reStr << endl; system("pause"); } void attackRepair(void) { system("cls"); //cout << "攻击修复..." << endl; char id[64]; char response[MAXSIZE]; printInMidde("---网站攻击修复---"); cout << "请输入网站id:"; cin >> id; cout << "正在执行攻击修复..." << endl; //攻击修复 hk_restore(id, response); string retStr = UTF8ToGBK(response); cout << retStr << endl; system("pause"); } void attackRecord(void) { system("cls"); //cout << "查看攻击记录..." << endl; char id[64];//网站id char response[MAXSIZE]; printInMidde("---查看攻击记录---"); cout << "请输入需要查看网站id:"; cin >> id; cout << "正在执行查看攻击记录..." << endl; hk_record(id, response); string reStr = UTF8ToGBK(response); cout << reStr << endl; system("pause"); } void init(void) { char cmd[128]; sprintf_s(cmd, sizeof(cmd), "mode con cols=%d lines=%d", WIDE, HIGH); system(cmd); } int main(void) { init();//初始化 login();//登录功能 while (true) { menuShow(); //输入编号 int n = menuChoise(); switch (n) { case 1: attack404(); break; case 2: siteEdit(); break; case 3: attackRepair(); break; case 4: attackRecord(); break; case 5: return 0; break; default: cout << "无效输入,重新输入" << endl; break; } } system("pause"); return 0; }
“想象到了没 ,函数的作用?” 小程
“需要什么功能 ,就需要什么样函数”
“ 比如说 :需要判断数值是否 >5“
你需要知道这个需要返回什么 称之为返回值类型
很明显这是bool类型
需要那些参数 参数的类型
返回值;
bool is_greater(int num,const int src_num=5){
return num>src_num;
}
这样你就会玩函数了



