close
前一陣子峰哥跟我說有個PHP後門寫的超棒,還可以幫你改檔案的建立/修改時間,今天心血來潮,想說看一下到底是用哪個Function寫的,查了官網的文件,發現PHP也有個和Unix/Linux一模一樣的touch,以往像系統管理員大概都只會用touch來產生一個空檔案,很少會需要利用這函數改檔案的時間資訊,但是一旦系統被hack時,又急著檢查檔案時間,看看哪些檔案最近被改過,這......既然系統已經內建修改檔案存取時間的程式,再去查修改跟建立時間其實是件滿弔詭的做法(只能賭看看這個hacker有沒有想到去改檔案時間),Anyway,廢話不多說,馬上來談touch吧。

在Unix/Linux下面,man touch就可以查touch的用法:
NAME
     touch -- change file access and modification times

SYNOPSIS
     touch [-acfhm] [-r file] [-t [[CC]YY]MMDDhhmm[.SS]] file ...

在man裡面開宗明義的講,touch就是更改檔案時間用的,假設我要將test.txt的存取與修改時間變更為2007年1月2號3點4分的話,可以這樣下:
touch -t 200701020304 test.txt
若要單獨修改存取或是修改的時間,則使用-a(access)或-m(modify)。

在windows裡面呢?我找了一下,好像沒有類似的指令,網路上倒是有些程式可以用,若要自己用C語言開發的話,好像要使用Win32 API,不過我對MFC不熟,還是用PHP好了,如果電腦有裝PHP的話,兩行程式碼就可以完成這件事。
<?
$new_date = strtotime("23 April 2005");//這裡隨便用一個可以產生timestamp的函數就好,看個人喜好
touch($target_file,$new_date);
?>
要注意的是,目前PHP在Windows上還不支援用touch更改資料夾的資訊,這點在使用上有點小不方便,講到最後雖然了解了touch的用法,但我還是不能理解"
change file access and modification times"對系統管理的意義是什麼?
arrow
arrow
    全站熱搜

    nsysumis94 發表在 痞客邦 留言(0) 人氣()