吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3236|回复: 36
收起左侧

[Python 原创] U盘解锁/锁屏——修改于坛友思路

  [复制链接]
ifdess 发表于 2023-3-29 09:40
不熟悉论坛的排版设置,所以下面可能会有点乱,见谅。
自学不久,请大佬指教


u盘解锁/锁屏
https://www.52pojie.cn/thread-1743647-1-1.html
U盘解锁/锁屏

朋友说教室的电子白板,课间会有学生到讲台搞,于是设置了密码,然后将密码发给各科老师,
密码也告诉班长(怕各科老师忘记)。不用多久,很多人知道密码了,再改密码……如此反复操作。
于是我弄了这个小软件。开始想着弄成检测U盘必须要有某个指定内容的文件才解锁的,后来想着要将那个文件放到各人的U盘,有点麻烦,所以就不那样弄,现在弄成任何U盘都可以使用。

(出处: 吾爱破解论坛)

看到上面的帖子,然后按照自己的想法用python修改了一下。以下是我的作品。




具体功能就是在开机的时候必须要插入一个U盘,开机后如果拔出U盘就屏蔽键盘和鼠标的操作,看起来像假死。插入同一个U盘后就会恢复正常。
脑补一下适用场景:有一台公用电脑,锁屏密码大家都知道。当我需要使用时我就插入U盘然后开机,当我临时走掉的时候不用关机,只需要拔出U盘,此时键盘和鼠标操作就无效了。

场景限制:不适用于多人轮换使用电脑的场景,除非每个人都带个U盘,并且随手关机,当然也可以改代码设定延时关机。
更多玩法需要自行探索
具体的很多细节就没有再多想了,我用不上,如果有需要可以自改或者提出来。


使用方法:把程序设置管理员权限,并设置好系统开机自启就行了,程序运行没有窗口,不会提示,简单看看


主要用到的函数:
psutil.disk_partitions()用于获取分区列表
win32api.GetVolumeInformation()用于获取硬盘序列号
os.system("shutdown -s -f -t 0")用于关机
windll.user32.BlockInput(True/False)用于禁用/启用键盘鼠标由于这个功能不屏蔽ctrl+alt+del,并且屏蔽会被中断,所以在使用时加入了无限判断循环达到持续屏蔽的效果


成品在最后

[Python] 纯文本查看 复制代码
from psutil import disk_partitions
from win32api import GetVolumeInformation
from ctypes import windll
from os import system
from time import sleep

disk_old = []
disk_new = []

# 获取刚开机时候的U盘序列号


def old_seriaNumber():
    global disk_old
    for item in disk_partitions():
        if "removable" in item.opts:
            disk_old.append(GetVolumeInformation(item.mountpoint)[1])
    return disk_old


# 更新获取U盘序列号
def new_seriaNumber():
    global disk_new
    disk_new = []
    for item in disk_partitions():
        if "removable" in item.opts:
            try:
                disk_new.append(GetVolumeInformation(item.mountpoint)[1])
            except:
                pass
    return disk_new


# 开机先判断是否插入U盘,没插就关机
if old_seriaNumber() == []:
    system("shutdown -s -f -t 0")
else:
    # 如果插入就循环获取U盘是否有拔插
    while True:
        sleep(0.001)
        # 判断实时获取的U盘列表和刚开机时的U盘列表是否有交集,如果有就代表教师U盘仍旧保持插入
        if list(set(new_seriaNumber()).intersection(disk_old)) != []:
            pass
        else:
            # 没有交集代表开机U盘已经拔出,就直接假死,屏蔽键盘和鼠标
            windll.user32.BlockInput(True)
            # 循环判断是否插入U盘,并且用循环达到持续屏蔽键盘和鼠标
            while True:
                sleep(0.001)
                # 依判断实时获取的U盘列表和刚开机时的U盘列表是否有交集
                if list(set(new_seriaNumber()).intersection(disk_old)) != []:
                    windll.user32.BlockInput(False)
                    break
                else:
                    windll.user32.BlockInput(True)




成品下载链接:https://www.123pan.com/s/TctA-Cs5j.html

免费评分

参与人数 4吾爱币 +10 热心值 +4 收起 理由
笙若 + 1 + 1 谢谢@Thanks!
wushaominkk + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
红蓝黄 + 1 + 1 用心讨论,共获提升!
Aurora66 + 1 + 1 热心回复!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| ifdess 发表于 2023-4-4 11:11
U盘解锁/锁定,适用于学校、公司、以及任何存在授权使用的场景
https://www.52pojie.cn/thread-1768244-1-1.html
(出处: 吾爱破解论坛)


新版本更新了,有兴趣大家可以去看看
 楼主| ifdess 发表于 2023-3-30 10:27
bfm0755 发表于 2023-3-29 11:03
如果是在教室的电脑上搞一个屏幕保护,显示一个二维码,给老师授权后,老师使用手机微信扫码就可以打开电脑 ...

这个功能对我有些超纲了,等学到了,会有的
 楼主| ifdess 发表于 2023-3-30 10:22
红蓝黄 发表于 2023-3-29 12:23
开始的时候,是不是把u盘插入再开机?
然后运行程序,就可以自动指定u盘?
如果再设置另一个u盘,是不是 ...

1.是    2.这个程序可以放在系统的自启动路径里,或者用注册表实现开机自启的效果    3.是    4.开机的时候插入的所有U盘都有解锁电脑的权限,因为程序判断的是开机时和开机后的U盘列表是否有交集    5.可以做这个功能,我有空再实现一下。

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
红蓝黄 + 1 + 1 谢谢@Thanks!

查看全部评分

德德哥 发表于 2023-3-29 10:55
检测U盘必须要有某个指定内容的文件才解锁的,感觉很实用,期待楼主更新一版,谢谢
bfm0755 发表于 2023-3-29 11:03
如果是在教室的电脑上搞一个屏幕保护,显示一个二维码,给老师授权后,老师使用手机微信扫码就可以打开电脑,否则就打不开。因为使用U盘还是有点麻烦,而且不能的老师也不会每天随时带U盘,但是手机一定是带的。
WUWUCOOL 发表于 2023-3-29 11:13
检测U盘必须要有某个指定内容的文件才解锁的,这个很喜欢啊。自己的电脑在公司,这样不必担心乱用。
q314956820 发表于 2023-3-29 11:16
德德哥 发表于 2023-3-29 10:55
检测U盘必须要有某个指定内容的文件才解锁的,感觉很实用,期待楼主更新一版,谢谢

安全模式下 不会加载这个启动项  不过现在win10反而不容易进入安全模式了 哈哈
lyie15 发表于 2023-3-29 11:32
win系统里有个用户系统,可以为每个老师设置一个他的专属密码,这样就不怕乱传了,外加老师也是有手机的,把密码收藏到微信群里,这样就不用交给学生了

怕老师忘记密码,比让老师每次上课都去要带一个U盘更加方便吧
FlyingO 发表于 2023-3-29 11:36
要是U盘坏掉了?要是没解锁下节课其他老师不能用?
MustafaDe 发表于 2023-3-29 12:11
bfm0755 发表于 2023-3-29 11:03
如果是在教室的电脑上搞一个屏幕保护,显示一个二维码,给老师授权后,老师使用手机微信扫码就可以打开电脑 ...

你这个想法挺好的,值得去实现
红蓝黄 发表于 2023-3-29 12:23
开始的时候,是不是把u盘插入再开机?
然后运行程序,就可以自动指定u盘?
如果再设置另一个u盘,是不是重复以上操作?
这样子的话,是不是可以指定N个u盘?
程序有没有窗口可以单独指定管理u盘的授权?方便管理
Zhaofeiyan 发表于 2023-3-29 12:40
强制关机重启会怎样
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 15:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表