zoukankan      html  css  js  c++  java
  • A Kill Cord for your Laptop

    前言

    • 昨晚在朋友圈看到国外一篇文章利用U盘锁笔记本电脑,刚好有一个坏的金士顿U盘,所以就折腾了一下。

    准备

    • USB设备*1
    • Arch系统*1

    走过的坑

    • 因为systemd-udevd带起来的进程是root权限的,环境里各种变量也不是当前桌面用户的,所以在Arch的Wiki里找到了调用外部脚本来通知用户桌面。

    • 最后的解决方案是在udev规则里导入xpub获取桌面环境变量,再执行命令锁屏。

    • 执行udevadm monitor --environment --udev监听USB事件,拔掉U盘,找到MODALIAS,原文里是找ID_MODEL,我为什么要找呢?因为ID_MODEL是不唯一的,别人的U盘可能也是一样的,你也不想其他U盘可以触发事件吧。所以找了一个看起来很复杂的字符串,在网上也搜索不到,应该就是唯一的了。

    UDEV  [4042.754116] remove   /devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3:1.0 (usb)
    ACTION=remove                                                                       
    DEVPATH=/devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3:1.0                           
    SUBSYSTEM=usb                                                                       
    DEVTYPE=usb_interface                                                               
    PRODUCT=13fe/5100/110                                                               
    TYPE=0/0/0                                                                          
    INTERFACE=8/6/80                                                                    
    MODALIAS=usb:v13FEp5100d0110dc00dsc00dp00ic08isc06ip50in00                          
    SEQNUM=3709                                                                         
    USEC_INITIALIZED=2346820353                                                         
    adb_user=yes                                                                        
    ID_PATH=pci-0000:00:14.0-usb-0:3:1.0                                                
    ID_PATH_TAG=pci-0000_00_14_0-usb-0_3_1_0                                            
    ID_FOR_SEAT=usb-pci-0000_00_14_0-usb-0_3_1_0                                        
    
    • 拿到MODALIAS的值为usb:v13FEp5100d0110dc00dsc00dp00ic08isc06ip50in00 ,开始写udev规则
    ACTION=="remove", SUBSYSTEM=="usb", ENV{MODALIAS}=="usb:v13FEp5100d0110dc00dsc00dp00ic08isc06ip50in00",IMPORT{program}="/usr/bin/xpub", RUN+="/usr/bin/sudo -u kali-team /usr/bin/xdotool key Super_L+l"
    
    • 保存为/etc/udev/rules.d/busKill.rules
    • 执行sudo udevadm control --reload 重新载入规则

    测试

    reference:

    触发_udev_规则事件的桌面提示

    Introducing BusKill: A Kill Cord for your Laptop

    xdotool

    xpub

  • 相关阅读:
    Whidbey 开发
    构建软件数字安全带系列课程
    微软产品生命周期模型系列课程
    Windows Mobile 2nd 开发黄金周
    微软高性能运算系列课程
    _tmain()和main()区别
    简单工厂模式&工厂方法模式
    单例模式
    java中去除字符串(String)中的换行字符(\r \n \t)
    阿里巴巴 Java开发手册1.4.0
  • 原文地址:https://www.cnblogs.com/Kali-Team/p/12149752.html
Copyright © 2011-2022 走看看