采用个hook技术对writefile函数进行拦截(2)
http://www.cnblogs.com/zhxfl/archive/2011/11/03/2233846.html 這個(gè)是筆者之前寫(xiě)過(guò)的WriteFile HOOK代碼
必須補(bǔ)充對(duì)這幾個(gè)函數(shù)的HOOK,才能對(duì)WriteFile的所有操作做“比較徹底的攔截”,筆者知道應(yīng)用層的攔截很容易出現(xiàn)遺漏的,只有編寫(xiě)驅(qū)動(dòng)做文件過(guò)濾才會(huì)有比較好的效果,不過(guò)在實(shí)現(xiàn)那個(gè)之前,想再應(yīng)用層做好這些實(shí)驗(yàn),看一下效果。
具體的api函數(shù)參數(shù)可以在http://msdn.microsoft.com/en-us/library/aa365749%28VS.85%29.aspx里面翻出來(lái)
?BOOL WriteFileEx(
? HANDLE hFile,
? LPCVOID lpBuffer,
? DWORD nNumberOfBytesToWrite,
? LPOVERLAPPED lpOverlapped,
? LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
);
__in????????HANDLE hFile,
__in????????FILE_SEGMENT_ELEMENT aSegmentArray[],
__in????????DWORD nNumberOfBytesToWrite,
__reserved??LPDWORD lpReserved,
__inout?????LPOVERLAPPED lpOverlapped
); View Code
進(jìn)行了比較全面的攔截,不過(guò)會(huì)造成系統(tǒng)不穩(wěn)定,特別是LoadLibararyExA和LoadLibararyExW函數(shù)的攔截。另外令人糾結(jié)的是fopen打開(kāi)的文件寫(xiě)操作沒(méi)有攔截成功,自然freopen這些重定向的也不能成功啦,所有應(yīng)用層DLL注入的方法實(shí)現(xiàn)文件write的過(guò)濾是
非常不合理的想法,很難做全面的攔截,而且影響系統(tǒng)的正常運(yùn)行。
全面的文件過(guò)濾在這個(gè)實(shí)驗(yàn)里面,不得不承認(rèn)api hook技術(shù)無(wú)法承擔(dān)這個(gè)重任,看來(lái)只有驅(qū)動(dòng)層能夠?qū)崿F(xiàn)真正意義上的完整文件過(guò)濾
轉(zhuǎn)載于:https://www.cnblogs.com/xumaojun/p/8541608.html
總結(jié)
以上是生活随笔為你收集整理的采用个hook技术对writefile函数进行拦截(2)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: JavaScript(十三)面向对象
- 下一篇: Xamarin.Forms中使用Lite