目录
5.2 拓展 2: 宅男福利-在控制台上跳极乐净土(音频版)
项目一、黑客攻击系统-功能菜单
第 1 节:项目介绍
为看书困难的小伙伴推荐视频教程:百度网盘 提取码:r59a
黑客/骇客/红客
- 黑客: 精于计算机技术的计算机专家或程序员(有伤害能力,但是不做任何伤害)
- 骇客: 恶意或非法地破解、破坏程序、系统及网络安全的人, 又称“黑帽黑客”。
- 红客,为捍卫中国主权而战的黑客(或骇客)
实际上,界限非常模糊,常常统称为黑客.
臭名昭著(声名显赫)的[希拉里邮件门]黑客-金姆·多特康姆
![](https://img-blog.csdnimg.cn/3191e94ce95e440ea989c52b3bd992f2.png)
汪正扬,中国最小黑客,13岁向360提交多个系统漏洞
中美黑客大战
中美撞击事件(王伟在中国南海领空牺牲)引发”中美黑客大战”
中国红客与美国黑客激烈交战.
中国600多个网站被攻陷,美国92个网站陷落.
2001年5月4日,中国红客攻陷美国白宫网站,白宫网站被迫关闭2小时.
![](https://img-blog.csdnimg.cn/2782d2c3f60f4c62b457d0b077b4125d.png)
说明:为提升中国南海的国防实力,研发了广州军区南海无线微波系统. 实现了南海主要岛屿在恶劣气候下的稳定通信,该项目的主体架构将在本课程的后续项目中带大家学习.
黑客攻击系统拓扑图
开发要求
配置要求:
1. 系统要求: windows7/8/10 系统, 或 Mac 系统
2.
开发工具
: visual c++ 2015 Express,
或其他
IDE
。
推荐配置:
1. 系统要求
: windows7/8/10
系统
2.
开发工具
: visual c++ 2015 Express
或其他
VS
版本
项目说明
1.
直接从项目需求入手
,
搞清需求后
,
直接开发项目
,
在项目实现中学习
C++
2.
通过
6
个子项目迭代代码
,
实现黑客攻击功能
.
第 2 节:项目需求
黑客打开这个攻击系统后,首先看到的就是一个“功能菜单”。
以便让黑客选择所需要的功能。
假设需求如下:
1.
网站
404
攻击
2.
网站篡改攻击
3.
网站攻击记录
4. DNS
攻击
5.
服务器重启攻击
第 3 节:项目实现
创建一个空项目
CP1
添加文件
admin.c
#include <iostream>
#include <Windows.h>
/*
1.网站 404 攻击
2.网站篡改攻击
3.网站攻击记录
4.DNS 攻击
5.服务器重启攻击
*/
int main(void) {
std::cout << "1.网站 404 攻击" << std::endl;
std::cout << "2.网站篡改攻击" << std::endl;
std::cout << "3.网站攻击记录" << std::endl;
std::cout << "4.DNS 攻击" << std::endl;
std::cout << "5.服务器重启攻击" << std::endl;
system("pause");
return 0;
}
3.1执行方式 1(开发时使用)
使用调试模式执行:
1、选择 Debug 模式(默认);2、单击开始按钮
3.2执行方式 2
直接双击运行调试模式下的可执行文件:
3.3执行方式 3
使用发布模式:
3.4执行方式 4
直接运行发布模式下编译后的可执行文件:
发布模式和调试模式的区别
调试模式中会生成很多调试信息,便于排查错误,但是对执行效率有影响。
确认程序正确后,使用发布模式生成可执行文件。
第 4 节:项目精讲
4.1编程的本质
电影:骇客帝国
完全由程序控制的虚拟世界
电影《源代码》:多个平行世界
已投入使用的家庭服务机器人:
编程的本质
“程序员”预先编写一系列命令,
控制
程序执行特定的任务。
“程序员”就是“上帝
|
体验编程本质:控制! 控制! 本质就是控制!
失去控制?除非程序有
Bug...
计算机时钟 BUG 导致美军海湾战争中,唯一过百的伤亡(死 28 人,伤 100 余人)
BUG 事件:1991 年 2 月,美军的爱国者反导弹系统失效,未能拦截伊拉克的飞毛腿导弹,宰
赫兰基地被炸毁,场炸死 28 个美国士兵,炸伤 100 多人,造成美军海湾战争中唯一一次伤
亡超过百人的重大损失。
BUG 分析:爱国者反导弹系统,每工作 1 小时,系统时钟延时 3ms 左右,当时已经连续工作
了 100 小时,延时达到三分之一秒!飞毛腿导弹足以击中目标了!
需要关机重启,战事太急,没时间关机 :-(
重要的事情再说一遍:
编程,就是使用程序员的思维,来控制计算机做事情。
编程思维修炼中的“编程闯关”,就是让玩家自己写代码,来控制游戏中的
Hero
打怪、捡
宝、闯关。
4.2极简的 C/C++ 语言语法规则
不做孔乙己,要做说干就干的平头哥
仅记原始规则,把握编程的本质
原始的规则:
1.
各“语法单位”(组成部分)使用任意个(至少
1
个)分隔符隔开。
分隔符有:空格,或
tab
键,或换行符。
int main(void)
int
main(void)
都是合法的。
intmain(void)
是非法的。
2.
必须使用英文输入法输入
(仅双引号括起来的“字符串”中可使用中文)
3.
每条代码的后面使用 ;表示这个指令代码结束。
4. #include
等预处理指令
,
必须一条指令占一行
其他规则不需记忆,在后面的项目实践中掌握。
以下代码也能编译运行
![](https://img-blog.csdnimg.cn/3e04ef12752246ab8d6885c6614b8784.png)
以上风格的代码, 常见于报价低但是由要求给源码的外包软件中.(目的:让人看不懂)
高逼格的代码: (推荐)
无论如何
,
只要遵循最基本的原则
,
代码就是合法的
,
就能编译执行
.
懂得最基本的规则之后
,
再追求优雅风格的代码
(
高逼格风格
)
再次强调:
不要刻意记忆
C++
的语法规则(记也没有意义)
初学时,仅掌握最基本的语法规则即可!
4.3头文件的使用
为什么要使用头文件
事件回顾
: <
吐槽大会
>
第一季
嘉宾
”
王建国
”
吐槽另一名嘉宾
”
常远
”.
![](https://img-blog.csdnimg.cn/9caf1ee6c7724b5989d4ed6acd886c8a.png)
小咖见小咖, 互不认识. 不聊显得没礼貌, 强聊又太尴尬...
粉丝见蒙面偶像...
拜年走亲戚,分不清七大姑、八大姨...
原因
:
各种因素导致的互不认识!
程序如戏
程序中有很多元素
(std::cout, system),
都是一个个演员
但是他们之间都互不认识
,
但是却要一起合作, 强行编译
,
就会导致错误
!
得预先介绍他们, 知道他们各自的名号和用法
解决方案
:
包含相应的头文件
! (
头文件中
,
含有相关元素的介绍说明
)
std::cout
头文件
: iostream
system
头文件
: Windows.h
#include <Windows.h>
表示把文件
Windows.h
中的所有内容拷贝
(
复制
)
到“这里”。
头文件的查找路径
#include <Windows.h>
<>
表示,从编译器默认的路径中去找文件
stdio.h
这个默认路径,取决于编译器。不同平台下不同编译器的路径都不相同。
这个默认路径下,已经包含了
c
标准库所需要的所有头文件。
使用
C++
标准库的头文件使用该方式。
#include “mytest.h”
“”
表示从当前目录下寻找文件
mytest.h
如果在当前目录下找不到,再从编译器默认的路径中查找。
使用用户自定义的头文件使用该方式。
头文件的位置
要求放在文件的最前面。
#include 的作用是,把相关的声明拷贝到这个文件内,
所以都习惯把#include 放到文件的最前面。
如果放到后面,当 include 之前出现了相关的函数,就会有问题,例如
![](https://img-blog.csdnimg.cn/08be67ff59a349d891887969a2b503d3.png)
4.4程序从哪里开始执行-main 函数
人生,就是一个程序。在不同的阶段,做不同的事。
每件事,就是一个函数。
每个人的人生都不相同