熊欣
挑戰題描述
單位保管財務資料的電腦需要加強管理,為了防止用戶隨意登錄,我使用用戶名+復雜密碼的方式來管理。可是再復雜的密碼,同事多登錄幾次后就泄露了,定期更改密碼記起來又很麻煩。有沒有只有借助特定閃存盤、移動硬盤這類硬件才能登錄的解決方案?這樣不管哪個同事要用電腦,我只要插入指定閃存盤即可。(題號:20150302)
解題思路
我首先想到的就是在閃存盤中建立一個文件,然后用DOS命令來查找閃存盤中是否存在該文件,以此來判斷是否要執行關機命令。這個方法已經有過不少人介紹了,而且個人感覺這個思路的弊病也很明顯,其他人只要用任意閃存盤建立一個同名的文件即可破解。所以,我想到了通過U盤的剩余空間來判斷是否開機的方法。畢竟其他人要偽造一個跟自己的閃存盤的剩余空間完全相同的閃存盤是比較困難的。以下內容在Windows 7操作系統中測試通過。
解題方法
一般每個人都會有幾個閑置的閃存盤,可以拿出一個不用的閃存盤,將它插入需要使用閃存盤鑰匙的電腦中。接著點擊“開始→所有程序→附件→命令提示符”,打開命令提示符窗口,在其中輸入執行以下命令:
dir J: >d:\1.txt
注意,上面命令中的“J”代表要作為開機鑰匙的閃存盤的盤符,各人電腦上會略有不同,需要根據實際情況修改。這條命令的作用是列出閃存盤中的文件,并寫入到D盤的1.txt文件中。現在我們打開D盤中1.txt文件,它的最后一行記錄了我們的閃存盤中有多少剩余的空間(圖1)。



接下來我們打開記事本,輸入以下代碼:
@echo off
dir j: | find "1,462,206,464 可用字節"
if "%errorlevel%"=="0" (
echo "審核通過"
) else (
shutdown -f -s
)
以上命令首先用“dir”命令列出U盤中的文件及剩余空間,再用“find”命令查找“1,462,206,464 可用字節”,如果查找不到則執行關機命令。
將上述內容保存到BAT批處理文件中,只要擴展名為bat即可,文件名隨意,比如可存為Key.bat(圖2)。
為了不讓其他人看到我們的源代碼,我們還需要用“Bat To Exe Converter”軟件把BAT文件轉成EXE文件,啟動該軟件后,在“批處理文件”一欄中選擇我們剛才建好的Key.bat文件,在“選項”選項卡中的“可見”一欄中選擇“隱形應用程序”,點擊“編譯”即可完成轉換工作(圖3)。
現在我們把轉換得到的Key.exe文件拖到“開始→所有程序→啟動”文件夾中,即可實現插入指定閃存盤才能開機的目的了。注意,在編譯好之后,我們的開機閃存盤就不能再隨意的存取或者刪除文件,一旦導致磁盤空間出現變化,就會出現自己也開不了機的情況。