一支可常駐桌面、隨手觸發的輕量鎖定程式。觸發後封鎖本機鍵盤與滑鼠, 以類 Windows 鎖屏的雙態介面呈現,輸入正確密碼方可解鎖。
本工具定位為 「防隨手亂動(防君子)」,非防內行惡意破解。
| 能擋 | 擋不住 |
|---|---|
| 一般打字、滑鼠移動與點擊 | Ctrl+Alt+Del |
Win、Alt+Tab、Win+L、Alt+F4 |
進入安全桌面後可開工作管理員結束本程式 |
此為「無核心驅動」之先天限制,任何使用者層級工具皆然。
若需真正安全,請使用系統內建 Win+L。
需求:Windows 內建 .NET Framework 4.x(一般 Windows 10/11 皆已內建),無需安裝 SDK。
build.bat成功後產生 StillGuard.exe。請將 config.json 與 exe 置於 同一資料夾。
- 雙擊
StillGuard.exe→ 開啟 設定主視窗(左側設定、右側即時預覽)。 - 在設定視窗調整背景、模糊、變暗、逾時、是否顯示時鐘,右側即時預覽所見即所得。
- 按 「🔒 立即鎖定」 或系統匣圖示右鍵選「立即鎖定」→ 進入鎖屏。
- 鎖屏後按任意鍵或移動滑鼠 → 浮出 密碼面板;鍵入密碼按
Enter解鎖。 - 設定視窗按右上角 X → 縮到系統匣(不結束);要完全結束請用系統匣右鍵「結束」。
解鎖後會回到鎖定前的狀態:若是從系統匣(熱鍵 / 托盤選單)鎖定,解鎖後安靜回到系統匣;若是從設定視窗按鈕鎖定,解鎖後才返回設定視窗。不會再無故彈出視窗。
| 方式 | 說明 |
|---|---|
全域熱鍵(預設 Ctrl+Alt+L) |
不論程式在前景或縮在系統匣,按下即鎖。可在設定視窗「鎖定快捷鍵」欄變更(例 Ctrl+Shift+L、Win+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。
主密碼忘了、又沒設救援碼時:
Ctrl+Alt+Del→ 工作管理員結束StillGuard.exe;- 刪除該機的
config.json; - 重新啟動 → 回到「未設定」狀態,重新設定主密碼即可。
⚠️ 密碼雜湊僅屬「防君子」等級——本機的config.json可被刪除以重置。本工具定位本就非防內行惡意破解。
忘記主密碼時的另一條後路:鎖屏時按 F2,程式會產生一組 6 位一次性碼(5 分鐘有效、用完作廢),透過你設定的通道推到手機,讀碼輸入即可解鎖。
- 通道與界面已內建,使用者只需在設定視窗填入自己的憑證即可使用,不需改程式、不需重編譯。
- 憑證以 Windows DPAPI 加密存在各機自己的
config.json,不存明碼、不上傳。 - 目前提供三個免費通道,擇一即可:Telegram、Discord、ntfy.sh。
- 啟用步驟:設定視窗「OTP 一次性救援碼」區 → 勾「啟用」→ 選通道 → 填憑證 → 按「測試寄送」確認收到 → 按「套用 OTP 設定」。
填欄位:Telegram Token、Telegram ChatId。
- Telegram 搜尋
@BotFather(官方,有藍勾)→ 送/newbot→ 取顯示名與帳號名(帳號名須以bot結尾)。 - 成功後 BotFather 給一串 Token(如
123456789:ABCdef...)→ 填「Telegram Token」。 - 搜尋
@userinfobot,對它送任意訊息 → 取得你的數字 id → 填「Telegram ChatId」。 ⚠️ 先去對你新建的 bot 送一則/start,否則 bot 無法主動傳訊給你(Telegram 規定)。- 回程式按「測試寄送」確認收到。
填欄位:Discord Webhook。
- 在有管理權限的伺服器:伺服器設定 → 整合(Integrations)→ Webhook → 新增 Webhook。
- 選接收頻道、命名 → 複製 Webhook URL(如
https://discord.com/api/webhooks/...)。 - 貼到「Discord Webhook」欄 → 測試寄送。
填欄位:ntfy 主題(伺服器留預設 https://ntfy.sh)。
- 手機安裝 ntfy app(App Store / Google Play / F-Droid)。
- app 內 Subscribe to topic → 自訂一個又長又隨機的主題名(如
stillguard-9f3k2x7q4m)。 - 設定視窗「ntfy 主題」填完全相同的主題名 → 測試寄送。
⚠️ 公共伺服器上「知道主題名的人都能收發」,故主題名等同密鑰,務必長且保密。
安全提醒:Token / Webhook 等於發訊權限,切勿外流(程式已 DPAPI 加密本地存放)。三者擇一即可——最快上手 ntfy,最穩定 Telegram。
一般情況直接用設定視窗調整即可,存檔會自動寫回
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 解鎖 |
password、rescue、otp等敏感欄位由設定視窗自動寫入(雜湊 / DPAPI 加密),請勿手動編輯。
| 風險 | 對策 |
|---|---|
| 程式當掉導致鍵鼠卡死 | 鉤子由本程式持有,程式一結束即自動釋放;最壞 Ctrl+Alt+Del → 工作管理員結束 |
| 忘記主密碼 | 救援碼(若有設)為後路;皆忘則 Ctrl+Alt+Del 結束程式並刪除 config.json 重設 |
| 防毒誤判低階鉤子 | 自行編譯之本機 exe,必要時加防毒白名單 |