C++入门实现黑客攻击系统(准备工作)

这篇具有很好参考价值的文章主要介绍了C++入门实现黑客攻击系统(准备工作)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

分析项目需求

黑客打开这个攻击系统后,首先看到的就是一个“功能菜单”。

以便让黑客选择所需要的功能。

假设需求如下:

1.网站404攻击

2.网站篡改攻击

3.网站攻击记录

4.DNS攻击

5.服务器重启攻击

项目实现

创建一个空项目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;
}

运行结果:

C++入门实现黑客攻击系统(准备工作)

执行方式1(开发时使用)

使用调试模式执行:再单击按钮 C++入门实现黑客攻击系统(准备工作)

执行方式 2

直接双击运行调试模式下的可执行文件:

C++入门实现黑客攻击系统(准备工作)

执行方式 3

使用发布模式:

C++入门实现黑客攻击系统(准备工作)

 最后直接运行:C++入门实现黑客攻击系统(准备工作)

执行方式 4

直接运行发布模式下编译后的可执行文件:

C++入门实现黑客攻击系统(准备工作)

发布模式和调试模式的区别:

调试模式中会生成很多调试信息,便于排查错误,但是对执行效率有影响。  确认程序正确后,使用发布模式生成可执行文件。

下面对于初学者c++的基础语法:

原始的规则:

  1. 各“语法单位”(组成部分)使用任意个(至少 1 个)分隔符隔开。分隔符有:空格,或 tab 键,或换行符。

         int main(void)

        int

        main(void)

        (以上两个都是合法的)

        intmain(void)

        (是非法的)

       2.必须使用英文输入法输入(仅双引号括起来的“字符串”中可使用中文)

       3.每条代码的后面使用 ;表示这个指令代码结束。

       4.#include 等预处理指令,必须一条指令占一行

        其他规则不需记忆,在后面的项目实践中掌握。

头文件的使用:

       程序中有很多元素(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 之前出现了相关的函数,就会有问题,例如

C++入门实现黑客攻击系统(准备工作)

 main函数的介绍:

 每个软件也各不相同,包含不同的函数,但是都是从 main 函数开始:

 main 函数的要求:

  1. 返回类型
  2. 参数
  3. 返回值

main函数的作用:

main 函数是程序的唯一入口。

也就是说,程序运行时,首先从 main 函数开始执行。

一个程序,必须要有一个 main 函数,而且也只能有一个 main 函数。

main函数的格式:

格式 1:

int    main(void) {

}

格式 2:

具体用法在后面的函数部分,再详细讲解

int    main(int argc ,   char* argv) {

}

main 函数的返回值
main 函数应该用 return 返回一个 int 类型数据,也就是说,必须返回一个整数。一般用法:
程序成功结束,则 main 函数返回 0
程序有异常,则返回一个大于 0 的整数。
 

字符串常量介绍:

字符串常量:内容永远不会发生变化的字符串。

字符串常量:用半角(英文输入法)双引号“”括起来。

常量和变量的区别?

常量:在程序整个运行期间,值不会发生任何变化。 变量:在程序整个运行期间,值随时可以发生变化。

在c语言/c++中的输出语句使用:

C++风格的打印:

实例:

std::cout << “hello!     world” ;

std::cout << hello!      world.” << std::endl;

使用要求:

需要包含头文件 #include <iostream>

注意不是#include <iostream.h>

std 是一个命名空间。

cout 是 std 命名空间内的一个“对象”。

endl 也是 std 命名空间内的一个对象,用来表示“回车符”(换到下一行的最前面)

对象:先简单的理解为一个具体的实体。

std::cout <<     相当于调用了一个特殊的函数(但不是函数),用来打印数据。

std::cout, 可以连续输出任意多个数据,中间用 << 隔开。

C 风格的打印:

实例:

printf(“工资:%d”, 30000);

printf(“工资:%d   年假:%d”, 30000, 12);

printf(“%f”, 3.1415);

printf(“圆周率:%f”, 3.1415);

说明:

  1. 占位符的使用
  2. %d 整数,%f   浮点数(带小数部分的数据)

        使用要求:

        需要包含头文件 #include <stdio.h>

特别注意:

std::cout 和 printf 还有很多用法,现在只需要掌握以上最常用的用法,其他的用法现在不需要关注。

打印语句的使用场合:

        ‘打印’常常指:把信息输出到“标准输出设备”(标准输出设备,就是显示器中的“终端”)。

  1. 控制台应用程序的输出
  2. 程序调试 Bug 的重要手段

C++避免名字冲突:使用命名空间

        使用命名空间。

用法1:

#include <iostream> #include <string>

namespace China {

float population = 14.1; 

std::string capital = "北京";

}

namespace Japan {

float population = 1.27;  

std::string capital = "东京";

}

using namespace Japan; int main(void) {

std::cout << " :" << capital << std::endl; std::cout << "人口:" << population << std::endl;

std::cout << " :" << China::capital << std::endl; std::cout << "人口:" << China::population << std::endl;

system("pause"); return 0;

}

用法2:

#include <iostream> #include <string>

namespace China {

float population = 14.1;   //单位: 亿

std::string capital = "北京";

}

namespace Japan {

float population = 1.27;   //单位: 亿

std::string capital = "东京";

}

//注意没有 namespace

//直接指定命名空间中的标识符而不是整个域名using China::capital;

using Japan::population;

int main(void) {

        std::cout << " :" << capital << std::endl;

        std::cout << "人口:" << population << std::endl;

        system("pause");

        return 0;

}

用法3:

#include <iostream> #include <string>

namespace China {

float population = 14.1;   //单位: 亿
std::string capital = "北京";

}

namespace Japan {

float population = 1.27;   //单位: 亿

std::string capital = "东京";

}

using namespace China; using Japan::population;

int main(void) {

std::cout << "首都:" << capital << std::endl;
std::cout << "人口:" << population << std::endl; //出错!

system("pause"); 
return 0;
}

错误提示:

population”: 不明确的符号

错误原因:

C++入门实现黑客攻击系统(准备工作)

解决方案:

指定完整的域名(Japan::population )来表示。

......

int main(void) {

std::cout << "首都:" << capital << std::endl;

        std::cout << "人口:" << Japan::population << std::endl; //出错!

        system("pause");

        return 0;

}

c++的编译过程:

C++入门实现黑客攻击系统(准备工作)

 程序注释:

注释的目的:

        为了让程序更方便阅读(“可读”),以便于维护。

需要注释的内容:

  1. 重要变量名的作用(用来表示什么)
  2. 比较复杂的算法思想
  3. 程序中的关键步骤

注释的方式

     有两种注释方式

  1. 单行注释  //

        在行尾,或代码的上一行

        在代码的下一行也可以,但很少有人这么做。

        2.多行注释  /*    */不支持嵌套。

        3.不要为了注释而注释!

        过多的注释,反而有害!会把真正需要注意的东西淹没。

         注释的风格:

  1. 在行尾注释 使用//注释
  2. 在代码的上一行使用//注释
  3. 多方内容的注释,使用 /*    */
  4. 函数的注释

常见错误总结

错误 1:VS 的中文乱码问题

VS 最知名的错误(被程序员吐槽最多的 BUG)。

VS 支持多种中文编码,但是使用不当时,常常导致中文乱码,而且难以解决。

中文乱码的原因:

  1. 中文在不同编码格式下, 存储的方式不一样.
  2. 如果程序是A 编码方式编译运行的,但是控制台却是以B 编码方式来显示, 就会出现乱码.
  3. vs 的控制台默认编码是 GB2312,编号号是 836

注意:GBK 编码是兼容 GB2312 的,一般描述 GBK 常常就是指 BG2312

如果源代码文件的编码如果是其他编码格式, 就会导致中文乱码.

正常场景:

在 vs 中新建文件时,该文件默认都是 GB2312 编码.

因为控制台默认也是 GB2312 编码,所以一般情况下,都不会出现中文乱码.

错误场景:

  1. 直接在项目中导入了其他已经创建好的源代码文件,

如果该文件不是 BG2312 编码, 而且含有中文的话, 就必定会出现中文乱码.

  1. 从其他文件中复制代码到 vs 的文件中, 也可能导致编码错乱.
  2. 网络编程中, 和服务器交互通信, 两端的编码很可能不同.

我们的”黑客攻击系统”的服务端木马, 就是 UTF-8 编码格式的.

解决方案一:   修改文件的编码

修改源代码文件的”编码格式”, 使其和控制台的编码格式保持一致.

代码文件的编码格式,可以通过 vs 很方便的修改: 先用 vs 打开对应的文件,  然后如下操作:

C++入门实现黑客攻击系统(准备工作)

 C++入门实现黑客攻击系统(准备工作)

 

解决方案二:   强制指定文件执行

#pragma execution_character_set("gbk")

不修改文件的编码, 而是直接指定程序执行时使用的编码, 使其和运行程序的控制台的编码一致.

解决方案三:   修改控制台的编码格式

修改 vs 控制台的编码, 使其和源代码的编码保持一致. 修改注册表, 可以修改控制台的编码格式.

注意:

不建议使用该方式.

因为, 把控制台的默认编码改为其他编码后, 在该控制台输入中文, 很可能导致输入的中文

无法识别.

在 vs2010 中存在该问题.

解决方案四:   对数据进行编码转换

适用于: 服务器端和客户端, 或多个客户端之间的编码不一致时.

  1. 收到对方的其他编码数据时, 先使用特定的接口来进行编码转换.
  2. 发送本地数据给对方之前, 先使用特定的接口来进行编码转换.

错误 2:360 报告病毒

项目执行时,360 安全卫士报告病毒,程序被拦截,提示如下:

C++入门实现黑客攻击系统(准备工作)

 

解决方法:

方法 1. 关闭 360

方式 2. 在 360 中添加白名单。

错误 3:代码正确,但是无法通过编译

代码看不出错误,而且报错信息莫名其妙,则很可能是因为代码使用全角字符方式输入的。   特别是各种符号,比如双引号,圆括号,分号等。

其他错误:

LINK : fatal error LNK1561: 必须定义入口点

原因:没有 main 函数,或者 main 函数的 main 写错了

下篇介绍:主要该程序的主要编写文章来源地址https://www.toymoban.com/news/detail-472795.html

到了这里,关于C++入门实现黑客攻击系统(准备工作)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【教程】使用U盘制作Win10系统启动盘(重装系统准备工作)

    1、工具 ①一个大于8G的空白U盘 ②一台可联网的电脑 2、提前格式化U盘 制作U盘启动盘的时候会自动格式化U盘,U盘如果不是空白的话,数据需要提前备份再进行格式化操作。 1、打开微软官网下载地址 下载 Windows 10 (microsoft.com) https://www.microsoft.com/zh-cn/software-download/windows10 网

    2024年02月06日
    浏览(54)
  • uni-app实现分页--(1)准备工作,首页下拉触底加载更多

    实现流程如下: 分析:需要在滚动容器中添加滚动触底,在猜你喜欢中获取数据。难点:如何在父页面调用子组件内的方法。父组件中用ref,并定义组件实例类型,子组件中暴露方法 具体代码如下: 1.在父组件中添加scrolltolower事件,用于调用子组件方法获取数据 2.给子组件添

    2024年04月11日
    浏览(35)
  • 【C++从入门到放弃】string全方面分析(常用接口、模拟实现)

    🧑‍💻作者: @情话0.0 📝专栏:《C++从入门到放弃》 👦个人简介:一名双非编程菜鸟,在这里分享自己的编程学习笔记,欢迎大家的指正与点赞,谢谢! 在学习C++的过程中,必定有一个非常重要的工具就是STL(标准模板库):C++标准库的重要组成部分,它不仅是一个可复

    2024年02月02日
    浏览(36)
  • 09 使用Vue+el-form+form-validate实现管理端登录接口联调前准备工作实战

    这是《Vue + SpringBoot前后端分离项目实战》专栏的第7篇博客,感谢你能从成千上万篇博客中打开这一篇,和我一起学习前端开发实战知识,让我们一起开始吧。 目录 前言 一、上节回顾和本节介绍 1. 上节回顾

    2024年02月16日
    浏览(29)
  • 黑客攻击的流程

    常规攻击流程: 明确目标→信息收集→漏洞探测→漏洞验证→信息分析→获取所需 1、明确目标: 确认范围:测试目标的范围,IP,域名,内外网。 确认规则:能渗透到什么程度,时间,能否提权等。 确认需求:WEB应用的漏洞(新上线程序)?业务逻辑漏洞(针对业务的)

    2024年02月07日
    浏览(25)
  • 【黑客技术】Hping攻击实验

    请勿攻击公网!请勿攻击公网!请勿攻击公网! 一切责任自负!一切责任自负!一切责任自负! hping3是一款面向TCP/IP协议的免费的数据包生成和分析工具。Hping是用于对防火墙和网络执行安全审计和测试的工具之一。(换句话说,它本身是一个安全测试工具,也可以被黑客用

    2024年02月11日
    浏览(40)
  • 嵌入式系统中C++ 类的设计和实现分析

    C++ 代码提供了足够的灵活性,因此对于大部分工程师来说都很难把握。 本文介绍了写好C++代码需要遵循的10个最佳实践,并在最后提供了一个工具可以帮助我们分析C++代码的健壮度。 原文:10 Best practices to design and implement a C++ class。 1. 尽可能尝试使用新的C++标准 到2022年,

    2024年02月06日
    浏览(25)
  • 【黑客攻击】微软遭受由APT组织 Midnight Blizzard发起的网络攻击

    周五,微软宣布了一次网络攻击,据信是由APT组织 Midnight Blizzard发起的,此次攻击渗透了该公司的多个公司电子邮件帐户,包括“负责网络安全、法律和其他职能的高级管理层和员工”的电子邮件帐户。 有趣的是,黑客的目标并不是客户数据或传统的公司信息。 此次攻击并

    2024年01月24日
    浏览(32)
  • 网络安全——黑客攻击的步骤和防范

    ①开放性的网络环境:Internet 的开放性,使网络变成众矢之的,可能遭受各方面的攻击;Internet的国际性使网络可能遭受本地用户或远程用户,国外用户或国内用户等的攻击;Internet的自由性没有给网络的使用者规定任何的条款,导致用户“太自由了”,自由的下载,自由的

    2024年02月08日
    浏览(88)
  • 渗透测试-----9-拒绝服务(黑客其它的攻击方式)

    拒绝服务(黑客其它的攻击方式) Dos(拒绝服务攻击)不是DOOS 利用程序漏洞或一对一资源耗尽的Denialof service 拒绝服务 DDo S(分布式拒绝服务) 一对一的攻击完全拼各自的资源,效果差 多对一的攻击汇聚资源能力,重点在于量大,属于资源耗尽型 DOS分类 D网络 基于巨量的

    2024年02月09日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包