Windows U盘锁 拔除指定U盘后锁定电脑

5次阅读
没有评论

以前学校的老师找到我说需要把班上的电子白板锁上但是嫌输密码太麻烦,滑动黑板的锁又没有钥匙,于是给他用 Python 随便写了这么一个小程序,写都写了顺便也分享给大家。
配合 www.52pojie.cn/thread-1992305-1-1.html 使用可以实现锁定解锁自动化,类似于加密狗。
主打防君子不防小人,懂点的很容易可以绕开,但是对付一般学生我觉得够用了,如果有一样或者类似需求的可以用用看。
因为没有 GUI,不上图了。

Autolock

检测到指定 U 盘拔出时锁定 Windows

用法

1.取 U 盘卷序列号摘要

Win+R cmd 切换到 U 盘盘符(直接输入盘符加冒号如 "F:")
'vol' 回车 即取得卷序列号

中间的横杠不要 计算其 SHA256
该步骤也可自动完成,后附小工具检测已连接的所有可移动卷

2.写配置

新建文件 config.json

{
"sleep":1,
"reload_delay":10,
"psn256":[
"",
""
]}

其中:
sleep:检测间隔,单位秒,即每隔多少时间检测一次设备是否存在
reload_delay:配置重载时间,按 sleep*reload_delay 计算,即每隔多少个检测周期重新读取一次该配置文件(这样不需要重启程序即可使得配置生效)
如果修改该项,则必须等待之前配置的至少一个周期后才会生效。
psn256:卷序列号的 SHA256 值。用双引号括住,逗号分割,最后一个不需要逗号。

3.启动程序

config.json 放入程序所在文件夹中,双击启动程序即可
如果 U 盘未插入或被拔出,将自动锁屏。

TODO

1.实现安全模式(启动后如果没有检测到任何授权设备不自动锁定电脑,直到授权设备接入后再移除)
2.实现备用解锁(没有什么很好的思路,目前的想法是检测U盘是否存在指定文件并校验文件内容以替代对卷序列号的校验,也可以结合两者使用提高安全性但这样需要考虑其他的备用解锁方式)
3.实现权限管理(如指定设备只具有解锁多少次 多长时间的权限限制)
如果没人说需要的话不一定会实现 有其他需要也可以提 视情况考虑实现

Q&A(2024-12-21)

1.U盘丢了怎么办?
A:TODO的1项2项。没人说有需求是不做的。除此之外当前版本可以多买几个U盘,程序对盘体没有要求,Windows能认出来的情况下不管是什么都可以(哪怕是移动硬盘或读卡器读内存卡)。
如果实在忘记并且设置了开机自启,可以通过 Windows 安全模式或者PE移除程序的主程序,然后更正配置添加新的序列号摘要。

2.程序不能自动解锁电脑,不太实用啊
A:www.52pojie.cn/thread-1992305-1-1.html 配合使用即可

3.多台电脑是否可以用同一个U盘锁定?
A:可以,卷序列号跨设备一致,只要设定的序列号一致多少台电脑都可以只用一个U盘解锁。
但是不可以搭配前文的 Rohos 实现自动解锁,必须手动输入密码。

4.这个可以用任务管理器关掉吗?
A:可以,程序没做相关防护,因为目标场景这样已经足够。有相关需求可以配合火绒等安全软件对程序进程和目录做防护,然后加上配置密码。

5.只需要U盘就可以解锁电脑是不是不太安全?
A:并不。首先不考虑 Windows Lock 本来就不是特别安全,这事实上构成了一个两步验证。即必须同时有U盘和密码两种验证要素才可以打开电脑。
如果希望起到两步验证的作用,可以选择不使用上文的自动输入密码。

6.如果U盘进行了格式化或者其他卷操作还有效吗?
A:视情况而定。多数情况下可能无效。卷序列号会随着卷操作改变。详情百度。所以这类操作很危险,尽量不要做。

GetVolInfo

输出所有已连接到电脑的可移动卷序列号

用法

GetVolInfo

也可直接双击启动。

带参以直接输出 SHA256 值。

GetVolInfo --sha256

蓝奏:https://initialheart.lanzout.com/iQZiS2ifesjc
源码:

(下载源码后源码使用GPLv3给予您授权,可自行修改使用,但最好不要原样公开)

正文完
 0
116博客
版权声明:本篇文章由 116博客 于2024-12-26发表,共计1630字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码