一、 需求
有時(shí),我們希望USB存儲(chǔ)設(shè)備(移動(dòng)硬盤、U盤、SD等等)能像軟盤一樣提供寫保護(hù)功能。
如何做到呢?
二、 現(xiàn)有軟件
有款叫做UsbWriteProtector的軟件(下載地址見后),可以實(shí)現(xiàn)我們需要的功能。
那它又是如何實(shí)現(xiàn)的呢?
三、 實(shí)現(xiàn)原理
從一本資料——USB_Write_Protect.en_us.pdf——可以了解到:
Windows XP SP2提供了一個(gè)特性, 只需要向注冊(cè)表中寫入一個(gè)值, 就可以做到對(duì)USB存儲(chǔ)設(shè)備進(jìn)行寫保護(hù)。
——具體地說:
在Windows XP SP2上, 當(dāng)USB存儲(chǔ)設(shè)備連接到系統(tǒng)時(shí), 系統(tǒng)會(huì)檢查如下的項(xiàng):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies
如果存在一個(gè)名為WriteProtect,類型為REG_DWORD的值,并且值為1,
系統(tǒng)就會(huì)對(duì)該USB存儲(chǔ)設(shè)備進(jìn)行寫保護(hù), 直到斷開連接。
如果需要去掉寫保護(hù)屬性, 只能斷開設(shè)備, 并在再次連接前, 將該值設(shè)置為0。
UsbWriteProtector正是使用這一特性實(shí)現(xiàn)其功能的。
——從它對(duì)注冊(cè)表的修改即可看出。
四、 改進(jìn)
—— 四、1
UsbWriteProtector完成的僅僅是注冊(cè)表操作,卻提供了一個(gè)只有2個(gè)選項(xiàng)的GUI界面。
通常使用方式如下:
啟動(dòng)軟件,選中打開或者關(guān)閉,然后關(guān)閉這個(gè)軟件 —— GUI在這里用處不太大。
同時(shí), 它的大小有190+K。
—— 四、2
USB_Write_Protect.en_us.pdf中提出另一種方法: 寫2個(gè).reg文件來修改注冊(cè)表。
但是reg文件使用后都會(huì)分別彈出一個(gè)對(duì)話框, 也有點(diǎn)不方便。
—— 這里將其寫為批處理文件:
-------- ReadOnly.bat --------
REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies\ /v WriteProtect /t REG_DWORD /d 1 /f
-------- ReadWrite.bat --------
REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies\ /v WriteProtect /t REG_DWORD /d 0 /f
這樣直接雙擊運(yùn)行, 會(huì)有一個(gè)控制臺(tái)窗口一閃而過, 就ok了。
這里有個(gè)小插曲: 最開始我模仿USB_Write_Protect.en_us.pdf的作法, 將批處理文件分別命名為:
——USB Write Protect On.bat
——USB Write Protect Off.bat
我覺得很清晰, 打開/關(guān)閉寫保護(hù)嘛。
發(fā)給女友使用時(shí), 卻遭到疑問“到底哪個(gè)是只讀???”
才發(fā)覺這樣的命名, 對(duì)有背景的人員很清晰, 但對(duì)普通用戶卻不一定。
遂按其效果命名為: ReadOnly.bat和 ReadWrite.bat, 就清晰多了。
這是一個(gè)小例子, 說明合理命名是很重要的。
同時(shí), 還提供一個(gè)查看當(dāng)前狀態(tài)的批處理:
-------- Query.bat --------
@echo off
REG QUERY HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies\ /v WriteProtect
pause
這樣3個(gè)批處理與UsbWriteProtector相比,完成的功能是相同的。
哪種方案比較方便, 就見仁見智了。
相關(guān)鏈接:
——批處理打包下載
http://immature.googlecode.com/svn/trunk/iMmature/utility/USBWriteProtection/bin/USBWriteProtection.zipmd5:2D0F47EF59B47AD37608C59420BF910B
——批處理文件下載
http://immature.googlecode.com/svn/trunk/iMmature/utility/USBWriteProtection/bin/USBWriteProtection/——
USB_Write_Protect.en_us.pdf
http://www.cyberagentsinc.com/Forensic%20Accessories%20and%20Software/USB_Write_Protect.en_us.pdfmd5:029030B1BFDE87B6EAD58F119126EBA8
——UsbWriteProtector
http://download.pchome.net/utility/access/detail-139473.html
A7CB9977D7A4A09EE675BCA5F69138B1|usbwp.rar
B04C271A489D0CDA3D3D245526B1B30A|UsbWriteProtect.exe
http://www.greendown.cn/soft/11827.html
F48C3F57867BB3156DD4202B275D3B12|USBWriteProtector.rar
771F6332212DAA32CA11C6BC2C6D1A9E|UsbWriteProtect.exe

本
作品采用
知識(shí)共享署名-非商業(yè)性使用-相同方式共享 2.5 中國(guó)大陸許可協(xié)議進(jìn)行許可。
轉(zhuǎn)載請(qǐng)注明 :
文章作者 - OwnWaterloo
發(fā)表時(shí)間 - 2009年04月01日
原文鏈接 -
http://www.shnenglu.com/ownwaterloo/archive/2009/04/01/write_protect_usb_devices_in_windows_xp_sp2.html
posted on 2009-04-01 18:28
OwnWaterloo 閱讀(1051)
評(píng)論(0) 編輯 收藏 引用