線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2498
推到 Plurk!
推到 Facebook!

如何偵測檔案類型呢?

尚未結案
雪豆豆
一般會員


發表:19
回覆:22
積分:13
註冊:2002-08-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-08-04 11:47:42 IP:203.222.xxx.xxx 未訂閱
近年來駭客手法不段翻新.. 有的駭客把檔案副檔名改掉. 讓人誤用來造成入侵 要如何能夠偵測到真實的檔案類型,不透過副檔名判斷 ( 因為那樣不準 )    我有找到一個網址. http://xanadu.cs.uta.fi/linefeed/ 就算把附檔名亂改. 他一樣能夠正確的得知檔案類型 有沒有人知道這是怎樣偵測的呢? 又有無 Sample 可供參考ㄌㄟ
bigdogchina
版主


發表:238
回覆:523
積分:312
註冊:2003-04-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-08-06 12:27:11 IP:211.162.xxx.xxx 未訂閱
Hi,雪豆豆,您好! 小弟的一點淺見,還請您參考: 通過副檔名來判斷文件,的確不能反映檔案的真實類型。檔案的分類可以分爲緩衝區檔案(高級磁片輸入輸出系統爲檔案分配指標,並通過指標訪問該檔案)和非緩衝區檔案(低級磁片輸入輸出通道,用一個整數來代表檔案,這是整數稱爲文件HFILE控制碼)。而緩衝區檔案又分爲:二進位元元元檔案和文本檔案。    那現在再來看看檔案的副檔名:其實我們可以任意更改副檔名,但是更改後裏面的資料並不會發生變化,檔案都有其一定特有的特徵碼。我們將檔案讀入後(上面描述的幾種檔案類型),獲得其內部特徵碼,然後對比已知的檔案特徵碼資料庫,得到正確的副檔名(您給出的網址我測試過,對內部有資料的檔案能非常精准的得到副檔名),請參考一下小弟在下面一篇中的討論: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=49971    而對於內部無數據的檔案,要判斷副檔名,會有許多的難度。小弟是這樣實測的:新建一個名爲test.bmp的檔案,裏面不做任何的繪製(就是內部沒有任何的資料),然後將其更名爲test.jpg,再用您給出的網址,去Try。測試結果如下: file command says empty Calculating linefeeds String Count Warning: Invalid argument supplied for foreach() in /var/www/html/linefeed/filetype.php on line 29 If text above says something like "10 LF, 1 LFLF" then you have text with unix-style linefeeds, and you have 10 normal lines and one empty line. Symmetrically to this, if you have 10 CR and 1 CRCR, you may have text in Macintosh format. DOS-style text seems to have something like 10 CRLF and 1 CRLFCRLF. If you for example transfer DOS-text from another computer to other using "transfer from Unix to DOS" -mode, you will end up having "10 CRLFLF, 1 CRLFLFCRLFLF". Other problems are possible too, depending on how text has been translated when it was moved between computers. 可見,對與內部沒有任何資料的檔案,並不能非常精確的得出它的副檔名。 小弟初通皮毛,謬誤肯定是有的,還望先進們指出,這是對我最大的幫助!謝謝 ================================= <>人生在勤,不索何獲 <>業精於勤荒於嬉,行成於思毀於隨 <>臨淵羡魚不如退而結網
------
人生在勤,不索何获?
系統時間:2024-06-28 19:15:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!