文|熊欣
挑戰題描述
單位保管财務資料的電腦需要加強管理,為了防止用戶随意登錄,我使用用戶名+複雜密碼的方式來管理。可是再複雜的密碼,同事多登錄幾次後就洩露了,定期更改密碼記起來又很麻煩。有沒有隻有借助特定閃存盤、移動硬盤這類硬件才能登錄的解決方案?這樣不管哪個同事要用電腦,我隻要插入指定閃存盤即可。(題号:20150302)
解題思路
我首先想到的就是在閃存盤中建立一個文件,然後用DOS命令來查找閃存盤中是否存在該文件,以此來判斷是否要執行關機命令。這個方法已經有過不少人介紹了,而且個人感覺這個思路的弊病也很明顯,其他人隻要用任意閃存盤建立一個同名的文件即可破解。所以,我想到了通過U盤的剩餘空間來判斷是否開機的方法。畢竟其他人要僞造一個跟自己的閃存盤的剩餘空間完全相同的閃存盤是比較困難的。以下内容在Windows7操作系統中測試通過。
解題方法
一般每個人都會有幾個閑置的閃存盤,可以拿出一個不用的閃存盤,将它插入需要使用閃存盤鑰匙的電腦中。接着點擊“開始→所有程序→附件→命令提示符”,打開命令提示符窗口,在其中輸入執行以下命令:
dirJ:>d:\1.txt
注意,上面命令中的“J”代表要作為開機鑰匙的閃存盤的盤符,各人電腦上會略有不同,需要根據實際情況修改。這條命令的作用是列出閃存盤中的文件,并寫入到D盤的1.txt文件中。現在我們打開D盤中1.txt文件,它的最後一行記錄了我們的閃存盤中有多少剩餘的空間。
接下來我們打開記事本,輸入以下代碼:
@echooff
dirj:|find"1,462,206,464可用字節"
if"%errorlevel%"=="0"(
echo"審核通過"
)else(
shutdown-f-s
)
以上命令首先用“dir”命令列出U盤中的文件及剩餘空間,再用“find”命令查找“1,462,206,464可用字節”,如果查找不到則執行關機命令。
将上述内容保存到BAT批處理文件中,隻要擴展名為bat即可,文件名随意,比如可存為Key.bat。
為了不讓其他人看到我們的源代碼,我們還需要用“BatToExeConverter”軟件把BAT文件轉成EXE文件,啟動該軟件後,在“批處理文件”一欄中選擇我們剛才建好的Key.bat文件,在“選項”選項卡中的“可見”一欄中選擇“隐形應用程序”,點擊“編譯”即可完成轉換工作。
現在我們把轉換得到的Key.exe文件拖到“開始→所有程序→啟動”文件夾中,即可實現插入指定閃存盤才能開機的目的了。注意,在編譯好之後,我們的開機閃存盤就不能再随意的存取或者删除文件,一旦導緻磁盤空間出現變化,就會出現自己也開不了機的情況。