《Python网络安全项目实战》

《Python网络安全项目实战》

  • 项目1 Python 环境安装
    • 任务1.1 Windows上安装Python
    • 任务1.2 Ubuntu环境下安装Python
  • 项目2 Python基础练习
    • 任务2.1 使用数据类型
    • 任务2.2 使用组合数据类型
    • 任务2.3 使用控制结构
    • 任务2.4 使用函数
    • 任务2.5 使用模块
  • 项目3 处理文件中的数据
    • 任务3.1 读文件
    • 任务3.2 写文件
    • 任务3.3 处理文件数据
  • 项目4 编写网络扫描程序
    • 任务4.1 扫描内网有效IP地址
    • 任务4.2 编写端口扫描工具
  • 项目5 编写网站扫描程序
    • 任务5.1 暴力破解网站目录和文件位置
    • 任务5.2 制作网页JPG爬虫
  • 项目6 编写密码工具程序
    • 任务6.1 猜数字游戏
    • 任务6.2 编写密码工具程序
  • 项目7 编写Windows键盘和屏幕监控程序
    • 任务7.1 编写键盘记录软件
    • 任务7.2 屏幕截取快照

项目1 Python 环境安装

Python是一种面向对象的解释性语言,简单、易学、免费、开源,可以在程序开发期节省相当多的时间。阅读一个良好的Python程序就感觉像是在读英语一样,它使你能够专注于解决问题而不是去搞明白语言本身。 2017年7月20日,IEEE发布2017年编程语言排行榜:Python高居首位。
项目目标:
 熟悉Windows下Python开发环境的安装;
 熟悉Ubuntu下Python开发环境的安装。

任务1.1 Windows上安装Python

任务描述

公司接到一个跨平台项目需要在Windows和Ubuntu两种操作系统环境下进行Python编程和运行。项目经理布置任务,需要我们小组在Windows系统环境下进行Python编程环境的搭建。请大家和我一起共同完成这个任务。
任务分析
所有版本的windows、Linux、Mac OS都有相应的Python版本支持,本次任务是在Windows10系统中下载、安装和使用Python3.6.1。
Python对硬件配置的要求,就是相应操作系统对硬件的最低要求。
安装Python开发环境,首先需要进行Windows系统的安装,然后去Python官方网站下载Python安装包,并且进行Python的安装。假定Windows 已经安装好,我们现在去Python官方网站下载Python并进行安装。
任务实施
进入Python的官方下载页面https://www.python.org/downloads/,如图1-1-1所示。

在这里插入图片描述
图1-1-1 Python官方网站下载页面
在这个页面上显示了两个主要版本的下载按钮,Python3.6.1是最新的发布的版本。因为比较新,所以Python3.6.1学习资料和例程会比较少,Python2.7.13是一个库文件和参考资料比较容易获得的常用版本,但是因为Python3.6.1具有新的功能和特性,代表了未来的方向所以我们还是选择新的版本。
由于Python在不同操作系统都有很多不同版本与之对应,我们在这里就不一一介绍了。但是有一点应该清楚,就是使用不同的操作系统,就必须下载与操作系统相对应的Python版本,在Windows中如果使用的32位的操作系统,就必须下载32位的Python版本,若使用的是64位的操作系统,那么就必须下载64位的Python版本。
最新版本的Python 3(Python 3.6.1)的二进制文件可从Python官方网站的下载页面: http://www.python.org/downloads/windows/ 下载,可以使用以下不同的安装选项。
这里我们选择下载Python3.6.1,进入下载页面选择windows x86-64 executable installer 进行下载并进行安装如下图1-1-2所示。
在这里插入图片描述
图1-1-2 Python官方网站下载选择页面
下载Windows x86-64 executable installer安装文件。在弹出的下载页面,选择保存路径,并点击保存文件按钮,下载完成后双击可执行文件python-3.6.1-amd64.exe。
【步骤1】:双击python-3.6.1-amd64.exe 可执行文件,显示安装选项,窗口下方的复选框:①Install lanuncher for all users(recommended);(使系统上的所有用户都可以使用python)②AddPython 3.6 to PATH;(添加python到系统的环境变量中)两个全部选中,并选择“Cusomize installation”定制安装如图1-1-3所示。
在这里插入图片描述
图1-1-3 Python安装参数选择
【步骤2】:在弹出的复选框中,我们选择安装文档,安装pip工具,可以通过pip下载第三方库文件,安装IDLE开发环境,安装python的测试套件,让所有用户都可以使用python,使用上一个版本python的全局路径,全部选中并点击“Next”下一步按钮,如图1-1-4所示。
在这里插入图片描述

图1-1-4 Python安装组件选择
【步骤3】:在弹出的高级选项中,我们选择前5个,前5个分别是,第一个让所有用户都安装,第二个是见文件跟python关联,第三个是为已经安装的应用程序创建快捷方式,第四个是将python添加到系统环境变量中,第五个是预编译标准库,安装路径选择安装在 D:\Program Files\Python36,并单击“Install”按钮,如图1-1-5所示
在这里插入图片描述

图1-1-5 Python安装高级选项
【步骤4】:开始安装,并等待安装完成,如图1-1-6所示。
在这里插入图片描述

图1-1-6 Python安装进度显示
【步骤5】:安装完成后选择关闭(Close),如图1-1-7所示。
在这里插入图片描述

图1-1-7 Python安装成功完成
由于我们在安装的第一步中,已经选择了“Add Python 3.6 to PATH”了,所以这里不需要单独去设置环境变量了。如果没有选择此项,则应该需要将Python 3.6添加到环境变量。假设您已经按照上面的步骤来安装完成,到此,在windows系统上安装Python 3.6.1已经完成了。
【步骤6】:在windows开始菜单中找到并打开Python IDEL,如图1-1-8所示。
在这里插入图片描述

图1-1-8 Python shell
【步骤7】:输入print(‘Hello world!’) 并按下Enter键,恭喜你,Python已经开始工作了,并且已经完成了所有编程语言学习的第一步:输出“Hello world!”,如图1-1-9所示。
在这里插入图片描述

图1-1-9 Hello world
【步骤8】:我们打开Python IDEL帮助系统中的Turtle Demo,如图1-1-10所示。
在这里插入图片描述

图1-1-10 教学示例程序
【步骤9】:可以看到这是一个编程示例教程,里面包含了多个绘图程序,如图1-1-11所示。
在这里插入图片描述

图1-1-11 example
【步骤10】:点开Examples菜单可以看到里面包含了多个绘图程序,如图1-1-12所示。
在这里插入图片描述

图1-1-12 example菜单
【步骤11】:点开第一个示例程序bytedesign,程序绘制图案,位图,如图1-1-13所示。
在这里插入图片描述

图1-1-13 程序绘制图案
【步骤12】:第二个示例程序chaos,噪声演示程序,如图1-1-14所示。
在这里插入图片描述

图1-1-14 噪声演示程序
【步骤14】:第三个示例程序Clock,时钟程序,如图1-1-15所示。
在这里插入图片描述

图1-1-15 时钟程序
相关知识
对于Windows系统,存在易于使用的图形界面安装包,只需要按照提示一步一步完成安装过程。安装工具包可以从www.python.org/downlaod处获取,该网站为Windows系统提供了3个独立的安装系统,一般需要下载的是普通的“Windows X86 MSI Installer”,除非确认自己的机器使用的是AMD64或Itanium处理器,这种情况需要下载处理器特定的安装程序。下载安装程序后,只需要运行并按提示进行操作,就可以安装好Python3了。
任务评价
请学生按照下表中的要求完成本次评价,并在物理机桌面上以自己的两位学号+姓名的形式命名文件夹,保存所有截图文件,文件保存为jpeg或 png格式。
在这里插入图片描述
任务拓展
在Windows32位系统环境下安装Python3.6.0。
操作系统版本不同,相应下载的Python安装文件也会有所不同,特别是操作系统是32位的还是64位的要特别注意。
1、进入Python的官方下载页面,如图1-1-16所示。
https://www.python.org/downloads/
在这里插入图片描述

图1-1-16 Python的官方下载页面
在这个页面上显示了两个主要版本的下载按钮,Python3.6.1是最新的发布的版本,因为比较新所以学习资料和例程会比较少,Python2.7.13是一个库文件和参考资料比较容易获得的常用版本。
2、这里我们选择下载稳定版本Python3.6.0进入下载页面并进行安装,如图1-1-17所示。
在这里插入图片描述

图1-1-17 Python版本选择
3、选择windows x86 executable installer 进行下载,如图1-1-18所示。
https://www.python.org/downloads/release/python-360/
在这里插入图片描述

图1-1-18 Python安装文件
4、在下载页面,选择保存路径,并点击保存文件按钮,如图1-1-19所示。
在这里插入图片描述

图1-1-19 Python下载保存
5、下载并安装完毕,打开Python IDEL,如图1-1-20所示。
在这里插入图片描述

图1-1-20 Python shell
6、输入print(‘Hello world!’) 并回车,恭喜你Python已经开始工作了,并且已经完成了所有编程语言学习的第一步:输出“Hello world!”如图1-1-21所示。
在这里插入图片描述

图1-1-21 Hello world

任务1.2 Ubuntu环境下安装Python

任务描述

公司接到一个跨平台项目需要在Windows和Ubuntu两种操作系统环境下进行Python编程和运行。项目经理布置任务,需要我们小组在Ubuntu系统环境下进行Python编程环境的搭建。请大家和我一起共同完成这个任务。
任务分析
所有版本的windows、Linux、Mac OS都有相应的Python版本支持,本次任务是在ubuntu12.4LTS中下载安装和使用python3.2.3。
Python对硬件配置的要求,就是相应操作系统对硬件的最低要求。
Ubuntu系统当中有软件中心,在软件中心里的开发工具中我们可以找到Python,我们选择Python3.2进行安装。安装Python开发环境,首先需要进行操作系统的安装,然后去下载Python安装包,并且进行Python的安装。假定操作系统已经安装好,我们现在去下载Python并进行安装。
任务实施
【步骤1】:在Ubuntu桌面用鼠标点击打开Ubuntu软件中心,如图1-2-1所示。
在这里插入图片描述

图1-2-1 Ubuntu桌面
【步骤2】:在软件中心窗口左侧菜单栏中点击开发工具,如图1-2-2所示。
在这里插入图片描述

图1-2-2 软件中心
【步骤3】:在Ubuntu软件中心开发工具窗口当中用鼠标点击Python语言,如图1-2-3所示。
在这里插入图片描述

图1-2-3 开发工具
【步骤4】:在Ubuntu软件中心开发工具Python语言窗口当中点击IDLE(使用Python3.2),如图1-2-4所示。
在这里插入图片描述

图1-2-4 IDLE(使用Python3.2)
【步骤5】:Python语言窗口中点击IDLE(使用Python3.2)右侧的安装按钮,如图1-2-4所示。
在这里插入图片描述

图1-2-5 IDLE安装按钮
【步骤6】:Python安装完毕以后,屏幕左侧出现了Python开发工具的图标,右侧的安装按钮就变成了卸载,如图1-2-6所示。
在这里插入图片描述

图1-2-6 IDLE安装完毕
【步骤7】:打开Python交互操作窗口,如图1-2-7所示。
在这里插入图片描述

图1-2-7 Python shell
【步骤8】:点击Python交互操作窗口最大化图标,输入print(‘Hello world!’)并回车,这时Python 已经开始工作,如图1-2-8所示。
在这里插入图片描述

图1-2-8 Hello world
相关知识
如果使用的是较新版本的系统,并经过了及时的更新,就应该已经安装了Python3。检查是否已经安装,可以在控制台中输入命令Python V(注意是大写的V),如果版本为3.X,就说明系统已经安装了Python3,不需要自己再安装了。
任务评价
请学生按照下表中的要求完成本次评价,并在物理机桌面上以自己的两位学号+姓名的形式命名文件夹,保存所有截图文件,文件保存为jpeg或 png格式。
在这里插入图片描述
任务拓展
在Ubuntu 16.04 安装python3.6 环境并设置为默认
【步骤1】:添加python3.6安装包,并且安装。
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt-get update
sudo apt-get install python3.6
【步骤2】:修改系统默认python版本为3.6。
1 cd /user/bin
2 rm python
3 ln -s python3.6m python
【步骤3】:升级pip版本。
python pip install --upgrade pip
项目评价
在这里插入图片描述
未完待续。。。。。。点赞和收藏数量越多。。。。。。更新越快。。。。。

项目2 Python基础练习

Python是一门完整的编程语言;与 Shell 脚本或批处理文件相比,它为编写大型程序提供了更多的结构和支持。并且作为一门高级语言,它内置支持高级的数据结构类型,例如:灵活的列表和字典。Python 允许你将程序分割为不同的模块,以便在其他的 Python 程序中重用。Python 内置提供了大量的标准模块,你可以将其用作程序的基础,或者作为学习 Python 编程的示例。下面的网址含有大量的Python基础学习资料和操作指导,可以用来配合本项目的学习。
http://www.pythondoc.com/
http://www.runoob.com/python3/python3-tutorial.html
项目目标:
熟悉Python的关键要素:
 数据类型
 组合数据类型
 控制结构
 函数
 模块

任务2.1 使用数据类型

任务描述
公司接到一个项目需要使用Python进行编程,项目经理布置任务需要我们小组进行编程的准备并写出个例子程序。请大家和我一起熟悉python数据类型的使用,进行准备并使用Python编程。
任务分析
Python具有高级的内置数据类型,比如灵活的数字和字符串。由于python提供了更为通用的数据类型,Python 操作数据会更简单明了。
 输出
 输入
 数字
 字符串

任务2.2 使用组合数据类型

任务描述
公司接到一个项目需要使用Python进行编程,项目经理布置任务需要我们小组进行编程的准备并写出例子程序。请大家和我一起熟悉python组合数据类型的使用,进行准备并使用Python编程。
任务分析
组合数据类型
 列表
 元组
 集合
 字典

任务2.3 使用控制结构

任务描述
公司接到一个项目需要使用Python进行编程,项目经理布置任务需要我们小组进行编程的准备并写出一个例子程序。请大家和我一起熟悉python控制结构的使用,进行准备并使用Python编程。
任务分析
控制结构
If
while
for
try

任务2.4 使用函数

任务描述
公司接到一个项目需要使用Python进行编程,项目经理布置任务需要我们小组进行编程的准备并写出一个例子程序。请大家和我一起熟悉python函数的使用,进行准备并使用Python编程。
任务分析
python函数的使用包括以下几个方面
 函数的定义
 函数参数的传递
 函数的Lambda形式
 文档字符串
 函数的注解

任务2.5 使用模块

任务描述
公司接到一个项目需要使用Python进行编程,项目经理布置任务需要我们小组进行编程的准备并写出一个例子程序。请大家和我一起熟悉python模块的使用,进行准备并使用Python编程。
任务分析
python模块的使用包括以下几个方面:
 模块—可重用的Python代码块
 标准模块—纳入Python标准的Python可重用代码块
 包—系列相关的可重用代码块的容身之地

项目3 处理文件中的数据

能够使用编程语言对文件进行操作,也是编程中最基本的技能,熟练掌握好python中处理文件的方法,带来的不仅仅是编程语言的提升,更是快捷的处理文件的能力。
项目目标:
 熟练掌握python编程读取文件的方法;
 熟练掌握python编程写入文件的方法;
 能够正确替换文件中的数据。

任务3.1 读文件

任务描述

我们在平常经常会创建文件,文件夹,也会打开和删除文件和文件夹,掌握Python编程中对文件的操作,包括文件和文件夹的读写、修改、移动、复制、删除、重命名等。
任务分析
我们平常用鼠标键盘在对文件进行操作时,主要是四步,一是先找到文件,二是打开文件,三是读文件中的内容,四是关闭文件。而在Python中,对文件和文件夹进行操作也是同一个道理,对文件和文件夹的操作需要使用到os及shutil两个模块,所以需要对文件进行操作,要引用os模块,用os模块中的open()函数来进行文件的控制,用print()函数来将接收到的内容打印到屏幕上,再将用open()函数打开的文件用close()函数关闭。

任务3.2 写文件

任务描述

除了需要读取文件之外,我们也会需要用来创建文件,并向文件中写入内容。
任务分析
写文件同样是必须得先有个文件路径,用‘w’写模式,如果文件存在,是先将文件的内容清空,然后再对文件写入内容,如果文件不存在,则创建一个文件

任务3.3 处理文件数据

任务描述

在对文件的操作中,除了对文件的读取,文件的写入,有时还需要对文件中的内容进行修改操作。
任务分析
对文件中的内容进行修改, 首先是读取到这个文件的内容,将全部内容获取到之后,在内容中进行查找,查找到需要修改的内容,将内容进行替换或者增加。定义一个变量接收读取文件的内容,而接收到的读取内容则都是字符串,实际就是在对字符串进行操作,之后对操作完成的字符串再写入原先的文件当中。

项目4 编写网络扫描程序

许多扫描工具是由Python编写的。本项目中我们将用python写一个IP扫描工具,用来发现内网在线的IP以及开放的端口。

项目目标:
 能够正确获取系统的类型,是Windows还是Linux;
 能够正确获得本机IP的地址;
 能够正确得到IP地址的在线和端口开放情况。

任务4.1 扫描内网有效IP地址

任务描述

在对局域网进行管理时,为了知道网段内的IP在线情况,知道网段IP地址的使用情况,我们可以对网段的所有IP地址进行一次扫描。
任务分析
判断一个IP是否在线,最简单的方法就是去ping这个IP,通过ping返回的信息来判断IP是否在线,在Windows中ping命令默认发送4个数据包,而Linux中默认是一直发送数据,但是这个值也是可以更改的,Windows中只需要加上-n参数后面跟上一个数字,就是发送多少个数据包,而Linux中为-c,为了统一发送数据包的个数,需要先判断系统为Linux还是Windows。
确定好系统之后就是本网段的所有网址,对于一个C类内网网段,,一共有256个内网地址,从0到255,通过获取自己的IP地址,再对IP地址进行编辑,就可以获得内网所有IP,再通过ping命令去ping所有的IP,再通过返回信息就可以得到内网所有有效的IP地址。
使用python编程进行内网的IP扫描,那么需要用到网络相关的模块,在扫描内网前,先要知道自己的IP地址,而自己的IP地址是本地系统上的信息,所以还需要用到os模块,为了一次ping多个IP同时进行,还需要treading模块。

任务4.2 编写端口扫描工具

任务描述

使用python对指定端口进行扫描。
任务分析
在对服务器的探测中,能否正确的判断端口的开放是十分重要的,一个服务器开放的端口越多,就代表着打开的窗户越多,而这些打开的窗户,难免就会存在一些问题,那么我们为了能够更好安全性,就必须了解一个服务器开放了哪些端口,利用python,就可以很好的实现端口的发现。
在python编程中,可以使用socket模块中的connect()来与指定IP的指定端口建立连接,连接建立成功则说明IP的端口是开放状态,若长时间没能成功建立连接,我们就认为这个端口是关闭的。
端口一共有65535个,周知端口为0-1023,注册端口为1024-49151,动态端口为49152-65535,而常用的服务一般都在0-1023之间,除了这个1024个端口外,还有一些常见端口,如1433,3389,4899等。
本任务要求在192.168.1网段对指定的IP地址区间进行扫描,扫描每一个IP地址的端口,并将扫描结果保存在一个文件中。
IP地址的生成。
端口号的生成。
扫描端口是否开放。

项目5 编写网站扫描程序

WEB网站安全渗透测试过程中需要进行目录扫描和网站爬行,网上可以找到一些不错的工具软件,但是对于别人写的工具是否安全可靠有待商榷,所以我们如果能够写出自己的网站扫描和爬行程序,对于我们的工作会有极大的帮助。
使用Python的标准网络模块编写网络工具软件非常方便,这里我们使用Python完成网站扫描程序的编写。
项目目标:
 熟悉使用Python进行网站扫描程序的编写。

任务5.1 暴力破解网站目录和文件位置

任务描述

当我们通过sql注入等方式得到网站的数据库时,由于后台一般是隐藏起来的,所以我们想要登陆后台的话,还是要手工或者以暴力破解的方式找到后台。
任务分析
对一个站点目录和文件进行扫描,那么就需要用Python3环境下requests模块。扫描目录主要是对网站地址发出请求,若网站存在这个地址则会返回状态码200,如果不存在则会返回404,如果是没有权限访问,或者是其他一些情况,都会有相应的状态码,我们主要是需要访问成功的状态码和地址就可以了。
Requests 是使用 Apache2 Licensed 许可证的 HTTP 库, 支持 HTTP 连接保持和连接池,支持使用cookie 保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的 URL 和 POST 数据自动编码。本次任务要扫描的WWW服务器就搭建在本机上,我们在本机搭建了一个Discuz网站,计划扫描的网址是:http://127.0.0.1/Discuz/upload。

任务5.2 制作网页JPG爬虫

任务描述

在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材。
常规的做法就是通过鼠标右键,选择另存为。但有些图片鼠标右键的时候并没有另存为选项,还有办法就通过就是通过截图工具截取下来,但这样就降低图片的清晰度。
这里可以通过python来实现这样一个简单的爬虫功能,把我们想要的图片爬取并下载到本地。下面就看看如何使用python来实现这样一个功能。
任务分析
利用Python抓取网络图片的步骤:

  1. 根据给定的网址获取网页源代码。
  2. 利用正则表达式把源代码中的图片地址过滤出来。
  3. 根据过滤出来的图片地址下载网络图片。

项目6 编写密码工具程序

在密码的使用过程中,我们给出一个密码经常是弱密码,这样的密码有一定的规律可以比较容易记忆。但是使用弱密码,很容易就可以对你的密码进行破解。所以我们要编写一个密码工具程序,对给出的密码进行测试,确定这个密码是不是弱密码,是不是可以使用。并且我们给出的程序功能,需要自动生成强密码,并对密码进行测试确定不是弱密码。
项目目标:
 熟悉Python的关键要素;
 熟练使用Python语言对数据安全、系统安全编程。

任务6.1 猜数字游戏

任务描述

项目经理要求我们编写猜数字游戏,从而模拟纯数字密码的生成与猜测。
任务分析

  1. 编写基本的猜数字程序
    (1)编写一个程序,用来进行输出。
    (2)使用模块random中的函数randint()生成一个随机整数。
    (3)使用Python内置函数input()提示用户输入一个整数。
    (4)对比两个数字,输出对比结果。
  2. 加入新功能更新版本
    (1)为猜数字程序加入连续猜数的功能。
    (2)测试并修改程序。
    (3)给程序增加注释。

任务6.2 编写密码工具程序

任务描述

使用python编写一个密码工具程序
任务分析

  1. 原形设计:
    • 密码由大小写英文字母、数字、特殊符号组成,
    • 将需要的字母、数字和符号放入列表,
    • 使用random.sample()产生随机序列,
    • 将选取的字符加入一个新的列表,
    • 把生成的新列表中的字符连接成字符串作为密码
  2. 增加功能:
    • 根据输入控制密码位数,
    • 测试弱密码功能
    • 菜单功能

项目7 编写Windows键盘和屏幕监控程序

在远程和本地监控Windows系统下用户操作行为的过程中,经常需要记录计算机键盘的输入和屏幕的输出。虽然网上可以找到类似的程序,但是自己写的程序更灵活并且安全可靠。
项目目标:
 熟悉使用Python进行键盘记录和屏幕记录编程。

任务7.1 编写键盘记录软件

任务描述
键盘记录是最古老的黑客技术之一,至今仍在不同的层面广泛使用,攻击者使用它是因为它能有效的捕获所需的敏感信息,如账号密码和聊天记录等。强大的第三方Python库PyHook能够让我们很容易的捕获键盘事件。他利用了原生的Windows函数SetWindowsHookEx,这个函数允许我们安装自定义的钩子函数。当发生特殊的windows事件时,会调用这个钩子函数。通过注册键盘事件的钩子函数就能捕获目标机器触发的所有按键消息。
任务分析

这个工具会自动检查目标是否切换窗口,从而捕捉对应的窗口录入信息,在Python程序中输出结果。
利用Python捕获键盘信息的步骤:

  1. 加载相关模块。
  2. 分别构造进程和判断是否切换窗口的过程函数。
  3. 创建和注册钩子函数管理器和相关设置。
  4. 测试验证输出结果。

任务7.2 屏幕截取快照

任务描述

大部分渗透测试框架和恶意软件都具有截取远程目标屏幕的能力,他能捕获打开的图片、播放的视频帧和其他一些敏感信息,这些信息一般能由数据抓包或键盘记录来获取。
任务分析
本章使用第三方的PyWin32库,通过调用本地的Windows API的方式实现截屏功能。主要利用Windows图形设备借口(GUI)获得截取屏幕时必须的参数,如屏幕大小,分辨率等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/905118.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

​双十一买什么比较划算?2024年双十一必买好物推荐

双十一期间哪些商品最值得购买?一年一度的双十一购物狂欢节又如约而至,各大电商平台纷纷推出了各种优惠活动和促销策略,让人眼花缭乱。在这个全民购物的盛宴中,如何才能买到真正划算的好物,成为了许多消费者关注的焦点…

AI视频王者归来-[ComfyUI]PyramidFlow:快手开源视频模型,与Mochi比拼谁更强?8G可运行10秒768P与24帧视频生成

在人工智能视频生成的领域,ComfyUI的PyramidFlow和Mochi两款模型一直是业界关注的焦点。而最近,快手开源了PyramidFlow模型,引发了与Mochi模型的新一轮比拼。那么,究竟哪一款模型更胜一筹呢? PyramidFlow和Mochi的比拼…

Vivo开奖了,劝退价。。

vivo 也开奖了,不过有小伙伴反馈是个劝退价,甚至不如隔壁的 oppo,要说这两家也是渊源颇深,一家是绿厂,一家是蓝厂,高管也都是早期步步高出来的。 给大家盘一下开奖的信息,方便大家横向做个对比&…

【C++】哈希表模拟:闭散列技术与哈希冲突处理

C语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间缺省参数与函数重载C相关特性类和对象-上篇类和对象-中篇类和对象-下篇日期类C/C内存管理模板初阶String使用String模拟实现Vector使用及其模拟实现List使用及其模拟实现容器适配器Stack与QueuePriori…

SketchUp 云渲染—助力您的渲染

目前市面上的渲染平台有很多,但是能支持SketchUp云渲染的特别少,大部分云渲染是还是不支持的,今天就给大家介绍国内支持Sketchup渲染的云渲染——【渲染101】云渲染的使用方法。 1、官网下载最新的客户端并且安装。 2、登录客户端配置好对应…

栈和队列(2)——队列

队列的基本概念 1. 队列定义:只允许在一端进行插入,在另一端进行删除的线性表。 2. 队列特点:先进先出(FIFO)。 3. 队列基本操作:初始化队列、销毁队列、入队、出队、读队头元素、判队列空等。 InitQueue…

凭什么你说不是就不是-zzj杯·UMLChina建模答题赛第6赛季第2轮

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 参考潘加宇在《软件方法》和UMLChina公众号文章中发表的内容作答。在本文下留言回答。 只要最先答对前3题,即可获得本轮优胜。 如果有第4题,第4题为附加题&am…

【hacker送书第14期】AI训练师算法与模型训练从入门到精通

全面精通人工智能训练,成为行业领先、更懂AI的人! 前言内容简介总结参与方式 前言 在人工智能(AI)技术日益成熟的今天,AI训练师成为了一个新兴且重要的职业。他们不仅需要掌握AI的核心技术,还要能够将这些…

一文详细讲解进销存系统(附架构图、流程、功能介绍)

企业经营的七大要素是“人、财、物、产、供、销、存”,进销存管理就占到了其中的多项。然而,许多企业在进销存管理方面面临着诸多痛点问题,例如库存管理混乱、采购销售流程不清晰、数据不准确等。这些问题不仅影响企业的运营效率,…

如何在Python爬虫等程序中设置和调用http代理

在Python爬虫中为了更好地绕过反爬机制,获取网页信息,有时可能需要在Python中应用代理服务,这样做的目的就是防止自己的ip被服务器封禁,造成程序运行时中断连接,那么如何在python中设置代理呢? 我们通过几个…

2024年【浙江省安全员-C证】试题及解析及浙江省安全员-C证复审考试

题库来源:安全生产模拟考试一点通公众号小程序 2024年【浙江省安全员-C证】试题及解析及浙江省安全员-C证复审考试,包含浙江省安全员-C证试题及解析答案和解析及浙江省安全员-C证复审考试练习。安全生产模拟考试一点通结合国家浙江省安全员-C证考试最新…

8、Node.js Express框架

五、Express框架 5.1概念 Express框架是一个基于Node.js平台的极简、灵活的WEB开发框架:www.express.com.cn 简单来说,Express是一个封装好的工具包,封装了很多功能,便于我们开发WEB应用 5.2安装 npm i express5.3 Express初体验 //01-express初体验.js //1.导入exrp…

Python(包和模块)

包 定义 包是将模块以文件夹的组织形式进行分组管理的方法,以便更好地组织和管理相关模块。 包是一个包含一个特殊的__init__.py文件的目录,这个文件可以为空,但必须存在,以标识目录为Python包。 包可以包含子包(子…

万方数据库功能亮点介绍及个人下载万方论文的方法

一、万方数据库介绍 万方数据知识服务平台是北京万方数据股份有限公司主要产品之一。该平台整合数亿条全球优质学术资源,集成期刊、学位、会议、标准、专利等十余种资源类型、品质知识资源、先进的发现技术、人性化设计于一身,是国内一流的品质知识资源…

18 实战:基于Tkinter和OpenCV的视频编码器:实现MPEG4矩形帧编码器

引言 在视频处理领域,视频编码器的设计与实现一直是研究的热点。本文将深入解析一段基于Python的代码,该代码利用Tkinter、OpenCV和NumPy库构建了一个MPEG4矩形帧编码器的图形用户界面(GUI)。通过详尽的代码讲解,帮助读者全面理解视频编码的基本原理及其在实际应用中的实…

12-Docker发布微服务

12-Docker发布微服务 Docker发布微服务 搭建SpringBoot项目 新建一个SpringBoot项目 选择依赖项Spring Web和Spring Boot Actuator 在com.qi.docker_boot下创建controller目录,并在该目录下创建OrderController的java类 OrderControllerjava类的内容如下&#xf…

【IEEE出版|:IEEE Xplore,EI Compendex,Scopus检索|征稿正在进行中!】

第七届机械工程与智能制造国际会议(WCMEIM 2024) 2024 7th World Conference on Mechanical Engineering and Intelligent Manufacturing 【会议信息】 会议日期:2024年11月15-17日 会议地点:中国武汉(武汉纺织大学…

如何成为开源代码库Dify的contributor:解决issue并提交PR

前言 Dify 是一个开源的大语言模型(LLM)应用开发平台,它融合了后端即服务(Backend as Service)和LLMOps的理念,旨在简化和加速生成式AI应用的创建和部署。Dify提供了一个用户友好的界面和一系列强大的工具…

前端如何安全存储密钥,防止信息泄露

场景 把公钥硬编码在前端代码文件里,被公司安全检测到了要整改,于是整理几种常见的前端密钥存储方案。 1. 设置环境变量再读取 在打包或部署前端应用时,可以将密钥配置为环境变量,在应用运行时通过环境变量读取密钥。这样可以将密…

深入了解 Three.js 中的材质与光照

开发领域:前端开发 | AI 应用 | Web3D | 元宇宙 技术栈:JavaScript、React、ThreeJs、WebGL、Go 经验经验:6年 前端开发经验,专注于图形渲染和AI技术 开源项目:github 晓智元宇宙、数字孪生引擎、前端面试题 大家好&am…