全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3950
推到 Plurk!
推到 Facebook!

希望禁止使用者在 DOS Console 中使用 del, copy , rename 這三個指令

答題得分者是:wameng
davidsun
初階會員


發表:57
回覆:71
積分:25
註冊:2002-04-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-08-02 17:02:31 IP:220.130.xxx.xxx 訂閱
Greeting ,
我想請問關於 DOS Console 模式中的 Hook 問題。我現在寫好 SHFileOperationW API hook , 所以我可以監控所有使用檔案總管的操作,複製、搬移、改名等.....我也可以禁止使用者刪除某些檔案,但是在 DOS Console 似乎不使用 Shell API ,所以此 API 無法攔截。如果我希望禁止使用者在 DOS Console 中使用 del, copy , rename 這三個指令,請問我要如何做呢?我目前想出來的方法是利用 Keyboard Hook ,如果使用者輸入這三個關鍵字則加以禁止。請問我們能有更好的方法嗎?

謝謝您。
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-08-02 17:50:11 IP:61.222.xxx.xxx 訂閱
需要 HOOK CopyFile,CopyFileEx ,MoveFile,MoveFileEx,DeleteFile API
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-08-02 17:55:24 IP:61.222.xxx.xxx 訂閱
如果要完全監控 例如 CreateFile .... 一堆都要 HOOK。
嚴重考驗系統穩定性,做不好常常當機是很正常的事。

建議用 Madshi 寫的函數,不過需付費。
我買過。...... 大概幾百塊美金。忘記了。
davidsun
初階會員


發表:57
回覆:71
積分:25
註冊:2002-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-08-02 18:02:42 IP:220.130.xxx.xxx 訂閱
感謝 wameng 的熱心指點,寫 Hook 真的非常考驗穩定度。為了避免影響正常工作,所以還另外安裝 Virtual PC 來測試,謝謝您推薦 Madshi 。


===================引 用 wameng 文 章===================
如果要完全監控 例如 CreateFile .... 一堆都要 HOOK。
嚴重考驗系統穩定性,做不好常常當機是很正常的事。

建議用 Madshi 寫的函數,不過需付費。
我買過。...... 大概幾百塊美金。忘記了。
編輯記錄
davidsun 重新編輯於 2007-08-02 22:42:11, 註解 無‧
davidsun
初階會員


發表:57
回覆:71
積分:25
註冊:2002-04-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-08-03 11:32:12 IP:220.130.xxx.xxx 訂閱
Sorry , 再提一個問題請教各位,如果是在 DOS Console 中使用 rename (改名) 指令,應該 Hook 哪一個 API 呢?
我試過
rename( const char *oldname, const char *newname );
_wrename( const wchar_t *oldname, const wchar_t *newname );

可是都不行

謝謝您。


===================引 用 wameng 文 章===================
需要 HOOK CopyFile,CopyFileEx ,MoveFile,MoveFileEx,DeleteFile API
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-08-03 15:59:11 IP:61.64.xxx.xxx 訂閱
del, copy, rename 你禁不掉的拉
除非連中斷呼叫,與直接磁碟存取,你也禁止


===================引 用 davidsun 文 章===================
Greeting ,
我想請問關於 DOS Console 模式中的 Hook 問題。我現在寫好 SHFileOperationW API hook , 所以我可以監控所有使用檔案總管的操作,複製、搬移、改名等.....我也可以禁止使用者刪除某些檔案,但是在 DOS Console 似乎不使用 Shell API ,所以此 API 無法攔截。如果我希望禁止使用者在 DOS Console 中使用 del, copy , rename 這三個指令,請問我要如何做呢?我目前想出來的方法是利用 Keyboard Hook ,如果使用者輸入這三個關鍵字則加以禁止。請問我們能有更好的方法嗎?

謝謝您。
davidsun
初階會員


發表:57
回覆:71
積分:25
註冊:2002-04-14

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-08-03 16:01:01 IP:220.130.xxx.xxx 訂閱
謝謝您的回覆,但是 copy , del , move 我已經禁止掉了,只剩下 rename 

===================引 用 syntax 文 章===================
del, copy, rename 你禁不掉的拉
除非連中斷呼叫,與直接磁碟存取,你也禁止


wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-08-03 16:24:55 IP:61.222.xxx.xxx 訂閱
應該就是 MoveFile,MoveFileEx API 
或用工具查一下
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2007-08-03 17:35:51 IP:220.134.xxx.xxx 訂閱
提供一個另類解法。
我個人在 1996 年當時正在當兵,在軍中為了預防被檢查,使用了
http://free.greenworld.com.tw/~dllee/software.htm 中的 Cheat
的小程式,這個小程式可以模擬出 DOS 介面,將使用者輸入的
指令作處理,在說明文件中有提到,允許使用者下達的指令,
對於不允許的操作,直接回覆 DOS 的錯誤訊息。
我想,在您的系統中,也可以自行作一個虛擬的 DOS 介面程式,
將此介面程式取代系統的 cmd 或是再由該程式自行去作指令過
濾的動作。
------
http://www.ViewMove.com
davidsun
初階會員


發表:57
回覆:71
積分:25
註冊:2002-04-14

發送簡訊給我
#10 引用回覆 回覆 發表時間:2007-08-03 17:42:26 IP:220.130.xxx.xxx 訂閱

這個方法好.

===================引 用 dllee 文 章===================
在您的系統中,也可以自行作一個虛擬的 DOS 介面程式,
將此介面程式取代系統的 cmd 或是再由該程式自行去作指令過
濾的動作。
davidsun
初階會員


發表:57
回覆:71
積分:25
註冊:2002-04-14

發送簡訊給我
#11 引用回覆 回覆 發表時間:2007-08-08 00:15:33 IP:221.169.xxx.xxx 訂閱
我剛剛去看了 madCodeHook  的網站,可是已經沒有開放線上購買了,網站上說:
Unfortunately madCodeHook has been misused by malware in the past. Because of that there is no non-commercial edition of madCodeHook available, anymore. Furthermore I will now only sell madCodeHook licenses to companies and programmers, if (after some background check) I'm convinced that they are "good" and don't write malware.

所以以後不會有非商業版,只後販售給公司及程式設計師,而且還要經過他的背景調查,確認沒有惡意才行。我已經寫信給對方,不知道會不會收到回信,如果石沈大海,看來是無法購買到此工具了。



===================引 用 wameng 文 章===================
如果要完全監控 例如 CreateFile .... 一堆都要 HOOK。
嚴重考驗系統穩定性,做不好常常當機是很正常的事。

建議用 Madshi 寫的函數,不過需付費。
我買過。...... 大概幾百塊美金。忘記了。
編輯記錄
davidsun 重新編輯於 2007-08-08 00:16:14, 註解 無‧
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#12 引用回覆 回覆 發表時間:2007-08-08 18:08:30 IP:61.222.xxx.xxx 訂閱
大概怕人那去寫病毒、木馬之類的。

用模擬 DOS 畫面是不錯的Idea,不過在XP 下需先 Disable WPF 機制(看RootKit)。
否則蓋不掉 CMD.EXE

Hook 你不是完成一大半了嗎?

===================引 用 davidsun 文 章===================
我剛剛去看了 madCodeHook 的網站,可是已經沒有開放線上購買了,網站上說:
Unfortunately madCodeHook has been misused by malware in the past. Because of that there is no non-commercial edition of madCodeHook available, anymore. Furthermore I will now only sell madCodeHook licenses to companies and programmers, if (after some background check) I'm convinced that they are "good" and don't write malware.

所以以後不會有非商業版,只後販售給公司及程式設計師,而且還要經過他的背景調查,確認沒有惡意才行。我已經寫信給對方,不知道會不會收到回信,如果石沈大海,看來是無法購買到此工具了。

===================引 用 wameng 文 章===================
如果要完全監控 例如 CreateFile .... 一堆都要 HOOK。
嚴重考驗系統穩定性,做不好常常當機是很正常的事。

建議用 Madshi 寫的函數,不過需付費。
我買過。...... 大概幾百塊美金。忘記了。
davidsun
初階會員


發表:57
回覆:71
積分:25
註冊:2002-04-14

發送簡訊給我
#13 引用回覆 回覆 發表時間:2007-08-08 18:20:34 IP:220.130.xxx.xxx 訂閱
我最後還是沒有用自己寫的 DOS 來覆蓋原本的。因為客戶不希望這樣的作法。所以還是去 Hook API
在 DOS 中的檔案操作:
copy
xcopy
del
rename
move
以上五個指令
Copy 使用 CopyFileExW
xcopy 會使用 CreateProcessW
del 會使用 DeleteFileW
move 會使用 MoveFileExW
所以 Hook 以上 API 即可。如果是在檔案總管中,則要 Hook SHFileOperationW.

至於 rename,至今還不知道他用什麼 API ,但是還是可以做到,利用
CreateFile & ReadDirectoryChangesW 偵測資料匣的改變,就可以知道使用者是不是有做更改檔案名稱的行為,
不同的是, Hook API 是在事前攔截、阻止使用者做不允許的動作,而 偵測資料匣的改變是事後的阻止(將被改名的檔名改回來)

想去看看 madCodeHook 是因為想看別人怎麼寫的,依據他的文件,要 Hook 一個 API 很容易,只要
HookAPI(api name, xxxx ,xxx,xxx) 即可,讓寫 Hook API 的門檻降低很多。而我的當然就沒麼方便了。

===================引 用 wameng 文 章===================
大概怕人那去寫病毒、木馬之類的。

用模擬 DOS 畫面是不錯的Idea,不過在XP 下需先 Disable WPF 機制(看RootKit)。
否則蓋不掉 CMD.EXE

Hook 你不是完成一大半了嗎?

===================引 用 davidsun 文 章===================
我剛剛去看了 madCodeHook 的網站,可是已經沒有開放線上購買了,網站上說:
Unfortunately madCodeHook has been misused by malware in the past. Because of that there is no non-commercial edition of madCodeHook available, anymore. Furthermore I will now only sell madCodeHook licenses to companies and programmers, if (after some background check) I'm convinced that they are "good" and don't write malware.
編輯記錄
davidsun 重新編輯於 2007-08-08 18:21:02, 註解 無‧
davidsun 重新編輯於 2007-08-08 18:21:27, 註解 無‧
davidsun 重新編輯於 2007-08-08 18:21:43, 註解 無‧
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#14 引用回覆 回覆 發表時間:2007-11-26 10:20:53 IP:61.220.xxx.xxx 訂閱
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
系統時間:2024-04-25 21:26:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!