在黑客和网络安全领域,这通常意味着 BASH 和 Python 脚本。Python 脚本在网络安全专业人士中最受欢迎,因为它拥有丰富的库和模块,可用于网络安全(你可以使用任何编程语言进行网络安全,但如果有人已经用 Python 等语言编写了轮子,那么你的生活就会轻松得多)。如果你检查 Kali 中的工具,你会发现超过 90% 都是用 Python 编写的。因此,我强烈建议你至少掌握一些粗略的 Python 技能。
在开始使用 Python 之前,我想花一点时间来让您熟悉一些关键的编程概念,这些概念将有助于您掌握任何编程语言,并且希望在您开始使用 Python 成为网络战士的旅程时能够有所帮助。
变量
变量只是存储值的地方。变量使您能够创建一个存储位置,然后在程序运行时更改(变化)这些值,而不是永远不变的静态值。
编写程序时,通常必须先声明变量,然后才能使用它们。声明变量类似于简单地说“我希望这是一个变量”。一旦您这样做,系统就会为将要放入变量的值保留内存。
通常,您可以通过使用字母、数字和下划线创建名称来创建(声明)变量。这些变量可以以下划线或字母开头,但不能以数字开头。
变量的类型包括:
常量变量-这些变量存储不会改变的数据
全局变量-这些变量可在整个程序中(全局)访问
类变量 - 这些变量只能在类内部访问(请参阅下面有关 OOP 的部分)。
实例变量 - 这些变量在类内可用,但在方法之外(请参阅下面的 OOP)
局部变量 - 这些变量只能在声明(创建)它们的类、方法、实例中访问。
控制结构
在大多数程序或脚本中,都有动作流程,步骤 1,然后步骤 2.....在流程中的点必须做出决定,例如,向右走还是向左走。控制结构是我们做出这些决定的方式。它们控制流程。该流程通常取决于变量中的值。例如,如果变量 A 小于 10,则向右转,如果变量 A 大于 10,则向左转。
这些控制结构可以分为几种一般类型:
顺序逻辑-程序按特定顺序执行
选择逻辑——这些控制结构包含确定下一步执行哪段代码的条件。
迭代逻辑——重复固定次数的一组代码或代码块
数据结构
数据结构使程序能够有效地存储和检索数据。一些常见的数据结构包括:
数组 - 数组将相似的元素存储在一起,例如有序的项目列表。使用连续的内存位置。
堆栈 - 这些是使用后进先出顺序执行指令的线性结构
队列——这也是一种线性结构,但使用先进先出的顺序来执行指令。
链表——这是一种使用指针链接元素的线性数据结构
二叉树 - 这是一种非线性结构,其节点具有两个不同的值/方向。这些可用于分层数据。
图表 - 包含相互连接的节点和边。它们通常用于表示地图和社交网络等复杂形式的数据。
面向对象编程
在深入研究 Python 之前,我们可能值得花几分钟讨论一下面向对象编程 (OOP) 的概念。Python 与当今大多数编程语言(C++、Java 和 Ruby 等)一样,遵循 OOP 模型。下图显示了 OOP 背后的基本概念:该语言的主要工具是对象,它具有属性和状态形式的属性,以及由对象执行或对对象执行的操作方法。
基于 OOP 的编程语言背后的理念是创建像现实世界中的事物一样行为的对象。例如,汽车是一个具有属性的对象,例如车轮、颜色、大小和发动机类型;它还具有方法,即汽车采取的操作,例如加速和锁门。从自然人类语言的角度来看,对象是名词,属性是形容词,方法通常是动词。对象是类的成员,类基本上是用于创建具有共享初始变量、属性和方法的对象的模板。例如,假设我们有一个名为 cars 的类;我们的汽车(宝马)将是汽车类的成员。这个类还将包括其他对象/汽车,例如梅赛德斯和奥迪
类也可以有子类。我们的汽车类有一个 BMW 子类,该子类的对象可能是 320i 型号。每个对象都有属性(品牌、型号、年份和颜色)和方法(启动、驾驶和停车),如上图所示
在 OOP 语言中,对象会继承其类的特征,因此 BMW 320i 会从类 car 继承 start、drive 和 park 方法。这些 OOP 概念对于理解 Python 和其他 OOP 语言的工作原理至关重要,正如您将在以下部分的脚本中看到的那样。
封装:封装是将数据元素(例如变量和属性以及成员方法)绑定到一个单元中。
抽象:这使您能够隐藏有关类的特定细节,并仅向外界提供必要的信息。例如,最终用户不知道 Web 服务器的工作机制,他们单击按钮并接收所需的信息。
继承:这是从现有类创建新类的能力。例如,您可以创建一个子类,该子类继承其父类的所有属性,并具有自己的一组附加属性和方法。
多态性:使用多态性,您可以使用相同的接口访问不同类型的对象,其中每个对象都提供自己的实现。
调试
调试是成为一名成功程序员的必备技能之一。这是识别和解决代码中的错误以生成可运行的脚本/程序的过程。
代码中至少有三 (3) 种类型的错误:
语法错误
逻辑错误
潜在错误
语法错误
当代码中的字符或标记序列错误且不符合编程语言的语法时,就会发生语法错误。这些错误可能包括缩进错误、缺少括号、多余的逗号和拼写错误的命令。编程工具会在编译时检测这些错误,并显示行号和错误类型以及错误描述。您可以查看错误描述并修改代码,使其遵循正确的语法。
逻辑错误
逻辑错误是指代码的算法或逻辑存在缺陷,导致程序停止执行或产生错误输出。由于代码的语法没有错误,因此您只会在运行时遇到逻辑错误。例如,错误地初始化变量可能会导致代码出现逻辑错误。
潜在错误
潜在错误,也称为隐藏错误,当您使用一组特定数据作为程序的输入时,就会出现这种情况。当您忘记考虑异常值或边缘情况时,程序可能会失败或产生错误的结果。例如,您可能创建了一个程序,它接受用户的出生日期,但不考虑最终用户可能输入错误的字符或负数。在这种情况下,程序可能会停止执行或崩溃。
编程工具
可用
集成开发环境或通常称为 IDE 的应用程序允许程序员编写、编译和执行代码。IDE 提供了一个中央界面,其中包含有助于代码完成、代码编译、调试和语法突出显示的工具。一个好的 IDE 可以让您的生活变得轻松很多!
一些 IDE 还允许您添加插件,使您能够浏览框架代码库并添加自定义类和功能。
您可以使用 IDE 来执行以下操作:
编写代码:您可以使用IDE来编写和编辑程序代码来完成一组任务。
编译代码:IDE 通过将人类可读的代码转换为计算机可理解的格式来编译代码。
调试代码:IDE 帮助您检测代码中的错误并进行修复。
监控资源:您可以监控磁盘空间、资源消耗、内存使用情况、磁盘可用空间、缓存内存等各种参数,帮助您优化代码,使其运行得更快、更高效。
构建自动化工具:一些 IDE 还为开发任务提供自动化工具。
您不需要 IDE 即可开始编码,但它们肯定能有所帮助。PyCharm 等高级 IDE 非常出色,但价格也昂贵。如果您在时间紧迫的环境中编码,PyCharm 等工具可以为您节省数百小时。否则,简单的文本编辑器就可以了,例如 vim、gedit、mousepad 和许多其他编辑器就足够了。
如果您使用 Kali Linux 工作,Kali 存储库中有一个名为 Spyder 的出色的免费 IDE。
您可以使用以下命令从 Kali 存储库下载 spyder;
kali > sudo apt 安装 spyder
或者pycharm 具体安装步骤可查看之前的文章。