Skip to content

Racious/StillGuard

Repository files navigation

StillGuard(靜守)— 鍵鼠鎖定工具

一支可常駐桌面、隨手觸發的輕量鎖定程式。觸發後封鎖本機鍵盤與滑鼠, 以類 Windows 鎖屏的雙態介面呈現,輸入正確密碼方可解鎖。


⚠️ 安全邊界(務必先讀)

本工具定位為 「防隨手亂動(防君子)」,非防內行惡意破解。

能擋 擋不住
一般打字、滑鼠移動與點擊 Ctrl+Alt+Del
WinAlt+TabWin+LAlt+F4 進入安全桌面後可開工作管理員結束本程式

此為「無核心驅動」之先天限制,任何使用者層級工具皆然。 若需真正安全,請使用系統內建 Win+L


編譯

需求:Windows 內建 .NET Framework 4.x(一般 Windows 10/11 皆已內建),無需安裝 SDK。

build.bat

成功後產生 StillGuard.exe。請將 config.json 與 exe 置於 同一資料夾


使用

  1. 雙擊 StillGuard.exe → 開啟 設定主視窗(左側設定、右側即時預覽)。
  2. 在設定視窗調整背景、模糊、變暗、逾時、是否顯示時鐘,右側即時預覽所見即所得。
  3. 「🔒 立即鎖定」 或系統匣圖示右鍵選「立即鎖定」→ 進入鎖屏。
  4. 鎖屏後按任意鍵或移動滑鼠 → 浮出 密碼面板;鍵入密碼按 Enter 解鎖。
  5. 設定視窗按右上角 X → 縮到系統匣(不結束);要完全結束請用系統匣右鍵「結束」。

解鎖後會回到鎖定前的狀態:若是從系統匣(熱鍵 / 托盤選單)鎖定,解鎖後安靜回到系統匣;若是從設定視窗按鈕鎖定,解鎖後才返回設定視窗。不會再無故彈出視窗。

快速鎖定的方式

方式 說明
全域熱鍵(預設 Ctrl+Alt+L 不論程式在前景或縮在系統匣,按下即鎖。可在設定視窗「鎖定快捷鍵」欄變更(例 Ctrl+Shift+LWin+L 不可用),改完按「套用快捷鍵」。欄位留空=停用熱鍵。
系統匣圖示 右鍵圖示 →「立即鎖定」
設定視窗按鈕 「🔒 立即鎖定」

熱鍵格式:修飾鍵 + 一個按鍵,修飾鍵可用 Ctrl / Alt / Shift / Win,至少一個;按鍵可為字母、數字或 F1~F12。需至少一個修飾鍵以免誤觸。若註冊失敗,多半是該組合已被其他程式占用,換一組即可。

鎖屏中的按鍵

按鍵 行為
Enter 比對密碼(主密碼 / 救援碼 / OTP 一次性碼),正確則解鎖
Backspace 刪除一字
Esc 清空輸入
F2 寄送 OTP 一次性解鎖碼到你的裝置(需先啟用 OTP,見下方)
  • 輸入態無操作達 idleTimeoutSec(預設 10 秒)會退回閒置態。
  • 鍵鼠全程被鉤子封鎖,實體輸入不會傳入系統。
  • 最壞情況忘記密碼:Ctrl+Alt+Del → 工作管理員結束 StillGuard.exe

🔑 密碼

原始碼不含任何密碼。 所有密碼由你在自己的電腦上設定,以雜湊存入各機自己的 config.json(該檔已被 .gitignore 排除,不會上傳)。

主密碼(必設)

  • 首次使用必須先設定主密碼,否則無法鎖定(避免把自己鎖死)。
  • 設定視窗「變更主密碼」區 → 輸入新密碼兩次 → 按「套用新密碼」。
  • 尚未設定時,按「立即鎖定」或熱鍵會提示你先設定。
  • 密碼以 PBKDF2(10 萬次迭代)+ 隨機鹽 雜湊後存入 config.json不存明碼

救援碼(可選)

  • 設定視窗「救援碼」區可自選再設一組,作為忘記主密碼時的後路。
  • 解鎖時主密碼或救援碼任一皆可。不設則沒有這條後路。
  • 同樣以雜湊存入 config.json

忘記密碼怎麼辦

主密碼忘了、又沒設救援碼時:

  1. Ctrl+Alt+Del → 工作管理員結束 StillGuard.exe
  2. 刪除該機的 config.json
  3. 重新啟動 → 回到「未設定」狀態,重新設定主密碼即可。

⚠️ 密碼雜湊僅屬「防君子」等級——本機的 config.json 可被刪除以重置。本工具定位本就非防內行惡意破解。


📲 OTP 一次性救援碼(送到手機 / APP)

忘記主密碼時的另一條後路:鎖屏時按 F2,程式會產生一組 6 位一次性碼(5 分鐘有效、用完作廢),透過你設定的通道推到手機,讀碼輸入即可解鎖。

  • 通道與界面已內建,使用者只需在設定視窗填入自己的憑證即可使用,不需改程式、不需重編譯
  • 憑證以 Windows DPAPI 加密存在各機自己的 config.json,不存明碼、不上傳。
  • 目前提供三個免費通道,擇一即可:Telegram、Discord、ntfy.sh
  • 啟用步驟:設定視窗「OTP 一次性救援碼」區 → 勾「啟用」→ 選通道 → 填憑證 → 按「測試寄送」確認收到 → 按「套用 OTP 設定」。

🟦 Telegram Bot(最穩定)

填欄位:Telegram TokenTelegram ChatId

  1. Telegram 搜尋 @BotFather(官方,有藍勾)→ 送 /newbot → 取顯示名與帳號名(帳號名須以 bot 結尾)。
  2. 成功後 BotFather 給一串 Token(如 123456789:ABCdef...)→ 填「Telegram Token」。
  3. 搜尋 @userinfobot,對它送任意訊息 → 取得你的數字 id → 填「Telegram ChatId」。
  4. ⚠️ 先去對你新建的 bot 送一則 /start,否則 bot 無法主動傳訊給你(Telegram 規定)。
  5. 回程式按「測試寄送」確認收到。

🟣 Discord Webhook(最簡單,需有 Discord 伺服器)

填欄位:Discord Webhook

  1. 在有管理權限的伺服器:伺服器設定 → 整合(Integrations)→ Webhook → 新增 Webhook
  2. 選接收頻道、命名 → 複製 Webhook URL(如 https://discord.com/api/webhooks/...)。
  3. 貼到「Discord Webhook」欄 → 測試寄送。

🟢 ntfy.sh(手機推播,免帳號免 token)

填欄位:ntfy 主題(伺服器留預設 https://ntfy.sh)。

  1. 手機安裝 ntfy app(App Store / Google Play / F-Droid)。
  2. app 內 Subscribe to topic → 自訂一個又長又隨機的主題名(如 stillguard-9f3k2x7q4m)。
  3. 設定視窗「ntfy 主題」填完全相同的主題名 → 測試寄送。
  4. ⚠️ 公共伺服器上「知道主題名的人都能收發」,故主題名等同密鑰,務必長且保密。

安全提醒:Token / Webhook 等於發訊權限,切勿外流(程式已 DPAPI 加密本地存放)。三者擇一即可——最快上手 ntfy,最穩定 Telegram。


設定(config.json)

一般情況直接用設定視窗調整即可,存檔會自動寫回 config.json。 以下為手動編輯時的欄位參考。

{
  "background": { "type": "blurDesktop", "blur": 0, "dim": 0.35 },
  "idleTimeoutSec": 10,
  "hotkey": "Ctrl+Shift+L",
  "showClock": true
}
欄位 說明
background.type blurDesktop(預設,擷取桌面模糊)/ image(自選圖片,另填 path)/ solidDark(純深色)
background.blur 模糊強度(0=不模糊;建議 10~30 才看不清桌面內容)
background.dim 變暗程度,0(不暗)~ 1(全黑)
idleTimeoutSec 輸入態無操作多少秒退回閒置態
hotkey 全域鎖定快捷鍵(留空=停用);建議用設定視窗的「變更…」錄製
showClock 鎖屏是否顯示內建時鐘(字級隨螢幕自動縮放)
showTerminal 鎖屏是否疊加終端特效(純裝飾,不影響安全)
terminalStyle 終端風格:hacker(駭客:隨機綠字假指令)/ guard(仿真守護:貼合 StillGuard 功能的擬真日誌,具生命週期與遞增計數)
fakeUpdate 偽 Windows 更新畫面(障眼模式):黑底 +「正在處理更新」追逐圓點 + 進度卡在 99%(復刻迷因,永不顯示完成),啟用時蓋過背景/時鐘/終端,且不顯示密碼框。仍可盲打密碼 Enter 解鎖、F2 寄 OTP、手機 /unlock 遠端解鎖
fakeUpdateLang 偽更新畫面文字語言:zh(中文)/ en(英文)
showPasswordPanel 鎖屏是否顯示密碼輸入框(預設 true)。設 false=任何顯示模式都隱藏輸入框,仍可盲打密碼 Enter / F2 / 手機 /unlock 解鎖

passwordrescueotp 等敏感欄位由設定視窗自動寫入(雜湊 / DPAPI 加密),請勿手動編輯。


風險與備案

風險 對策
程式當掉導致鍵鼠卡死 鉤子由本程式持有,程式一結束即自動釋放;最壞 Ctrl+Alt+Del → 工作管理員結束
忘記主密碼 救援碼(若有設)為後路;皆忘則 Ctrl+Alt+Del 結束程式並刪除 config.json 重設
防毒誤判低階鉤子 自行編譯之本機 exe,必要時加防毒白名單

About

Lightweight Windows keyboard/mouse locker with decoy lock screens (hacker terminal, guard-log, fake Windows Update) and OTP remote unlock via Telegram / Discord / ntfy.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages