精通API的朋友可能都知道CreateFile可以用來打開很多東西,比如說硬盤之類,而且在用它們的時候可能對一大堆函數和參數已經傷透了腦筋。猜想vb自帶的語句"Open"也是由createfile編寫的,但不知道有多少人想到用open 來打開硬盤?。ń涍^網上查找,沒有一句類似的代碼)

(以下代碼在win2000、Fat16,32文件系統、VisualBasic6.0測試成功,window98肯定不行,其他系統沒試過)
因為本人一直都用windows98,最近剛裝了個2000,就測試用open來實現邏輯盤直讀(光盤和其他東西也可以,不過有時要出問題)。注:其實這里并不是直接訪問硬盤(win2000等是不允許應用程序這樣做的),還是通過了文件系統,只不過文件和我們通常見到的不同而已。
其中一代碼基本如下
dim MyN(511) as byte
Open "\\.\c:" for binary as #1
open "\\.\h:" for binary as #2
do while not eof(1)'實際上這句在這里沒什么用
get #1,,MyN
put #2,,MyN
loop
close
請在以上適當位置加上doevents和控制退出的代碼
其中MyN的長度必須是512的倍數,讀取起始位置必須是512倍數+1(C語言中就是512倍數)
以上代碼實現將c盤的東西直接讀出并寫到h盤
(本代碼將把h盤原來數據清空,請小心測試,責任自負)
對于系統可讀取的盤(已經格式化過了的),用open幾乎可以做任何操作,甚至在win2000下把系統盤(c:)寫掉(請不要用此來搞破壞活動哈)。
如果寫入的數據都是0,那么該盤將成為“沒格式化的盤”,有點象低格,在這種情況下只要close掉文件,用open將不能再打開,而改用createfile仍然可以操作
用本語句已經實現恢復格式化前盤上的數據、格式化盤(因為只用open沒法讀取扇區和磁道數,只有自己設定值,而且前提是盤上已經有了FAT)、恢復已刪除的文件、刪除正在運行的程序文件、光盤直讀,相信還可以做其他事,當然做個病毒也可以,

本來想用Open做個在win2000下的類似ghost的東西,卻發現支持文件長度只有Long,暈,暫時還沒想到辦法(不過還是用c語言做安全,用這個系統可能要報廢)目前在這方面的處理上我傾向于用open,畢竟用createfile太繁了,還要配合一堆函數和參數,實在沒辦法再考慮它吧!
本主題取名為“發現之旅”,故希望大家把自己發現特別的代碼發表出來,互相學習!另外這些文章開頭都是VB,只是因為這里人最多,初學者也最多,為了提高大家對編程的興趣,所以在這里發。用其他語言也很容易實現。
(盤、最簡單、直讀、Open、\\.\、CreateFile、DeviceIoControl、VB格式化盤)
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/
領測軟件測試網最新更新
關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073
老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月