
DeadManSwitch em Rust com vários triggers (remoto, local e rede)

Dead Man Switch é um aplicativo de segurança multiplataforma escrito em Rust que protege automaticamente dados sensíveis em situações de emergência. O aplicativo monitora múltiplos mecanismos de acionamento e executa procedimentos imediatos de bloqueio do sistema quando ativado, incluindo desmontagem de volumes criptografados e desligamento controlado do sistema.
Edite src/config.rs para personalizar as configurações:
pub fn default() -> Result<Self> {
Self::new(
"YOUR_TELEGRAM_BOT_TOKEN".to_string(),
3600, // Heartbeat timeout (seconds)
45370, // Network broadcast port
"trigger_dms".to_string(), // Network trigger message
"execute".to_string(), // Manual trigger command
0x090c, // USB vendor ID
0x1000, // USB product ID
"auto".to_string(), // Flic IP (auto-detected)
5551, // Flic port
)
}
@BotFather no Telegram/newbotForma básica:
./DeadManSwitch --mode <modes> [--trigger]
--mode: lista de modos separada por vírgulas. Se omitido, all é usado.--trigger: executa as ações imediatamente e mostra a interface de alerta, sem aguardar qualquer gatilho externo.Modos disponíveis:
timer – temporizador de heartbeat do Telegrambot – acionamento manual via Telegramnet – ouvinte de broadcast UDPusb – acionamento por VID/PID USBflic – acionamento por botão Flicall – todos os acimaExemplos:
# All triggers (default)
./DeadManSwitch
# Only Telegram heartbeat + USB
./DeadManSwitch --mode timer,usb
# Only network broadcast
./DeadManSwitch --mode net
# Manual trigger only
./DeadManSwitch --trigger
Aciona automaticamente após o período de timeout especificado sem check-in.
Configuração:
telegram_heartbeat_timeout: 3600 // seconds
Execução:
./DeadManSwitch --mode timer
Comandos do Telegram:
/alive - Redefinir o temporizador de contagem regressiva/status - Consultar o tempo restanteComportamento:
Interface de controle manual remoto.
Configuração:
Execução:
./DeadManSwitch --mode bot
Comando:
/dms execute - Ativação manual do gatilhoMecanismo de acionamento baseado em LAN.
Configuração:
broadcast_port: 45370
broadcast_message: "trigger_dms"
Execução:
# Protected machine
./DeadManSwitch --mode net
# Trigger from network
echo "trigger_dms" | nc -u -b 255.255.255.255 45370
Ativação baseada em hardware na conexão do dispositivo.
Identificando IDs do dispositivo:
git clone https://github.com/BlackSnufkin/Rusty-Playground.git
cd Rusty-Playground/USB_mon
cargo run
# Connect device and note vendor:product IDs
Configuração:
usb_vendor_id: 0x090c
usb_product_id: 0x1000
Execução:
./DeadManSwitch --mode usb
Mecanismo de ativação por botão físico.
Instalação do Servidor:
Emparelhamento do Botão:
./simpleclient scan
./simpleclient connect <button_address>
Configuração:
flic_ip: "192.168.1.242".to_string() // or "auto" for detection
Execução:
./DeadManSwitch --mode flic
Ativação: Pressione e segure o botão
ActionExecutor para desmontar e desligar ao acionar