《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 業界動態 > 網絡安全編程:目錄監控工具

網絡安全編程:目錄監控工具

2021-07-31
來源:計算機與網絡安全
關鍵詞: 目錄監控 工具

  本文介紹通過ReadDirectoryChangesW()來編寫一個監視目錄變化的程序。

  對目錄及目錄中的文件實時監控,可以有效地發現文件被改動的情況。就好像在本地安裝IIS服務器,并搭建一個網站平臺,有時候會遭到黑客的篡改,而程序員無法及時地恢復被篡改的頁面,導致出現了非常不好的影響。如果能及時地發現網頁被篡改,并及時地恢復本來的頁面就好了,那么該如何做呢?

  下面通過一個簡單的例子來介紹如何監控某目錄及目錄下文件的變動情況。首先需要了解的函數為ReadDirectoryChangesW(),其定義如下:

  BOOL ReadDirectoryChangesW(

  HANDLE hDirectory,

  LPVOID lpBuffer,

  DWORD nBufferLength,

  BOOL bWatchSubtree,

  DWORD dwNotifyFilter,

  LPDWORD lpBytesReturned,

  LPOVERLAPPED lpOverlapped,

  LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine

  );

  參數說明如下。

  hDirectory:該參數指向一個要監視目錄的句柄。該目錄需要用 FILE_LIST_DIRECTORY的訪問權限打開。

  lpBuffer:該參數指向一個內存的緩沖區,它用來存放返回的結果。結果為一個 FILE_NOTIFY_INFORMATION 的數據結構。

  nBufferLength:表示緩沖區的大小。

  bWatchSubtree:該參數為 TRUE 時,表示監視指定目錄下的文件及子目錄下的文件操作。如果該參數為 FALSE,則只監視指定目錄下的文件,不包含子目錄下的文件。

  dwNotifyFilter:該參數指定要返回何種文件變更后的類型,該參數的常量值參見 MSDN。

  lpBytesReturned:該參數返回傳給 lpBuffer 結果的字節數。

  lpOverlapped:該參數執行一個 OVERLAPPED 結構體,該結構體用于異步操作,否則該數據為 NULL。

  ReadDirectoryChangesW()函數的使用非常簡單,下面通過一個例子介紹其使用。該例子是對E盤目錄進行監控,將程序編寫完成后對E盤進行簡單的文件操作,以觀察程序的輸出結構。完整的代碼如下:

  #include <windows.h>

  #include <stdio.h>

  extern “C”

  BOOL

  WINAPI

  ReadDirectoryChangesW(

  __in HANDLE hDirectory,

  __out_bcount_part(nBufferLength, *lpBytesReturned) LPVOIDlpBuffer,

  __in DWORD nBufferLength,

  __in BOOL bWatchSubtree,

  __in DWORD dwNotifyFilter,

  __out LPDWORD lpBytesReturned,

  __inout LPOVERLAPPED lpOverlapped,

  __in_opt LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine

  );

  DWORD WINAPI ThreadProc(LPVOID lpParam)

  {

  BOOL bRet = FALSE;

  BYTE Buffer[1024] = { 0 };

  FILE_NOTIFY_INFORMATION *pBuffer = (FILE_NOTIFY_INFORMATION *)Buffer;

  DWORD BytesReturned = 0;

  HANDLE hFile = CreateFile(“e:\\”,

  FILE_LIST_DIRECTORY,

  FILE_SHARE_READ|FILE_SHARE_DELETE|FILE_SHARE_WRITE,

  NULL,OPEN_EXISTING,FILE_FLAG_BACKUP_SEMANTICS,NULL);

  if ( INVALID_HANDLE_VALUE == hFile )

  {

  return 1;

  }

  printf(“monitor… \r\n”);

  while ( TRUE )

  {

  ZeroMemory(Buffer, 1024);

  bRet = ReadDirectoryChangesW(hFile,&Buffer,sizeof(Buffer),TRUE,

  FILE_NOTIFY_CHANGE_FILE_NAME | // 修改文件名

  FILE_NOTIFY_CHANGE_ATTRIBUTES | // 修改文件屬性

  FILE_NOTIFY_CHANGE_LAST_WRITE , // 最后一次寫入

  &BytesReturned,NULL, NULL);

  if ( bRet == TRUE )

  {

  char szFileName[MAX_PATH] = { 0 };

  // 寬字符轉換多字節

  WideCharToMultiByte(CP_ACP,0,pBuffer->FileName,

  pBuffer->FileNameLength / 2,szFileName,

  MAX_PATH,NULL,NULL);

  switch(pBuffer->Action)

  {

  // 添加

  case FILE_ACTION_ADDED:

  {

  printf(“添加 : %s\r\n”, szFileName);

  break;

  }

  // 刪除

  case FILE_ACTION_REMOVED:

  {

  printf(“刪除 : %s\r\n”, szFileName);

  break;

  }

  // 修改

  case FILE_ACTION_MODIFIED:

  {

  printf(“修改 : %s\r\n”, szFileName);

  break;

  }

  // 重命名

  case FILE_ACTION_RENAMED_OLD_NAME:

  {

  printf(“重命名 : %s”, szFileName);

  if ( pBuffer->NextEntryOffset != 0 )

  {

  FILE_NOTIFY_INFORMATION *tmpBuffer = (FILE_NOTIFY_INFORMATION *)

  ((DWORD)pBuffer + pBuffer->NextEntryOffset);

  switch ( tmpBuffer->Action )

  {

  case FILE_ACTION_RENAMED_NEW_NAME:

  {

  ZeroMemory(szFileName, MAX_PATH);

  WideCharToMultiByte(CP_ACP,0,

  tmpBuffer->FileName,tmpBuffer->FileNameLength / 2,

  szFileName,MAX_PATH,NULL,NULL);

  printf(“ -> : %s \r\n”, szFileName);

  break;

  }

  }

  }

  break;

  }

  case FILE_ACTION_RENAMED_NEW_NAME:

  {

  printf(“重命名(new) : %s\r\n”, szFileName);

  }

  }

  }

  }

  CloseHandle(hFile);

  return 0;

  }

  int main(int argc, char* argv[])

  {

  HANDLE hThread = CreateThread(NULL, 0, ThreadProc, NULL, 0, NULL);

  if ( hThread == NULL )

  {

  return -1;

  }

  WaitForSingleObject(hThread, INFINITE);

  CloseHandle(hThread);

  return 0;

  }

  將程序編譯連接并運行,在E盤下進行簡單的操作,查看程序對E盤的監視輸出記錄,如圖1所示。

  圖片

  圖1  目錄監控輸出記錄

  對于目錄監視的這個例子,可以將其改為一個簡單的文件防篡改程序。首先將要監視的文件目錄進行備份,然后對文件目錄進行監視,如果有文件發生了修改,那么就使用備份目錄下的指定文件恢復被修改的文件。




電子技術圖片.png

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
**性色生活片久久毛片| 亚洲免费视频网站| 国产精品入口日韩视频大尺度| 欧美片在线播放| 嫩草影视亚洲| 另类综合日韩欧美亚洲| 久久久999国产| 久久精品亚洲乱码伦伦中文| 午夜精品久久99蜜桃的功能介绍| 夜夜嗨av一区二区三区网站四季av| 亚洲人成在线观看一区二区 | 一区二区三区久久网| 亚洲精品一二| 日韩五码在线| 一本一本久久| 亚洲午夜精品久久久久久浪潮| 中国成人亚色综合网站| 一区电影在线观看| 亚洲在线免费视频| 午夜精品久久久久久| 欧美一区二区视频97| 亚洲电影在线观看| 亚洲精品国产精品乱码不99按摩| 亚洲精品视频在线播放| 99综合电影在线视频| 亚洲一区二区在线播放| 亚洲欧美日韩精品综合在线观看 | 久久精品国产69国产精品亚洲| 性色av一区二区三区在线观看| 性xx色xx综合久久久xx| 久久福利资源站| 久久久免费观看视频| 巨胸喷奶水www久久久免费动漫| 欧美成人激情在线| 欧美人与性动交a欧美精品| 欧美日韩视频在线| 国产精品日韩一区| 韩日视频一区| 亚洲精品偷拍| 亚洲男同1069视频| 久久精品道一区二区三区| 最新日韩av| 亚洲无玛一区| 久久久久成人精品免费播放动漫| 老鸭窝亚洲一区二区三区| 欧美丰满高潮xxxx喷水动漫| 欧美香蕉大胸在线视频观看| 国产日韩欧美在线播放不卡| 亚洲国产成人在线视频| 中文亚洲视频在线| 久久av一区| 在线中文字幕日韩| 欧美专区中文字幕| 欧美成人午夜视频| 欧美性生交xxxxx久久久| 国产欧美亚洲精品| 国产日本亚洲高清| 欧美一区午夜精品| 免费在线成人av| 国产精品成人在线| 激情欧美亚洲| 一本色道久久综合亚洲精品小说| 先锋影音国产精品| 亚洲精选大片| 性色av一区二区三区红粉影视| 鲁大师成人一区二区三区| 欧美日韩一区二区免费视频| 国产亚洲一区二区三区在线播放| 亚洲激情第一区| 午夜在线观看欧美| 9l国产精品久久久久麻豆| 久久精品一本久久99精品| 欧美日韩综合一区| 一区精品久久| 亚洲女同在线| 一本色道久久综合狠狠躁篇怎么玩| 欧美在线国产精品| 欧美日韩不卡| 国产综合色一区二区三区 | 一本色道久久综合精品竹菊| 亚洲高清视频中文字幕| 亚洲免费在线观看| 欧美精品成人一区二区在线观看 | 久久爱www.| 欧美一级黄色网| 欧美男人的天堂| 韩日精品中文字幕| 午夜精品久久久久久久白皮肤 | 亚洲高清自拍| 欧美一级淫片播放口| 欧美日产一区二区三区在线观看| 国内精品久久久久影院色| 在线视频欧美日韩精品| 亚洲人成久久| 久久性色av| 国产乱码精品| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 亚洲精品日韩欧美| 亚洲国产高清高潮精品美女| 欧美在线视频一区| 国产精品爱久久久久久久| 亚洲精品国产系列| 久久精品国产精品| 久久精品国产一区二区电影| 国产精品婷婷午夜在线观看| 亚洲视频电影图片偷拍一区| 99亚洲视频| 欧美人妖在线观看| 亚洲精品永久免费| 亚洲美女电影在线| 欧美成年人视频网站| 伊人狠狠色丁香综合尤物| 欧美在线日韩| 久久久久国产精品一区二区| 国产日韩欧美在线播放不卡| 亚洲综合国产精品| 午夜精品免费在线| 国产精品影院在线观看| 亚洲在线第一页| 欧美亚洲一级片| 国产精品热久久久久夜色精品三区 | 这里是久久伊人| 亚洲性图久久| 国产精品vip| 亚洲一区二区在线看| 午夜欧美不卡精品aaaaa| 国产精品视频成人| 亚洲综合欧美日韩| 欧美一区=区| 国产亚洲欧洲一区高清在线观看 | 国产精品毛片va一区二区三区| 亚洲无玛一区| 午夜精品区一区二区三| 国产精品一区二区黑丝| 亚洲欧美日韩国产精品| 欧美在现视频| 激情久久中文字幕| 亚洲激情国产精品| 欧美激情在线免费观看| 亚洲精选在线| 午夜日韩在线观看| 国产一区二区三区四区五区美女| 久久国产毛片| 欧美不卡视频一区发布| 最新成人av网站| 亚洲综合久久久久| 国产亚洲毛片在线| 亚洲国产视频a| 欧美精品日韩一区| 亚洲视频在线播放| 久久九九99视频| 亚洲动漫精品| 亚洲永久字幕| 韩国视频理论视频久久| 亚洲精品一区二区在线| 欧美午夜精品久久久久久久| 午夜视频一区二区| 欧美mv日韩mv亚洲| 中文日韩在线| 久久躁日日躁aaaaxxxx| 99re6这里只有精品| 欧美中文在线观看国产| 亚洲电影下载| 亚洲欧美国产高清| 激情综合网激情| 中文在线资源观看网站视频免费不卡 | 亚洲激情一区| 亚洲欧美日韩一区| 激情久久婷婷| 亚洲一区亚洲| 伊人精品视频| 亚洲在线成人| 尤物精品在线| 亚洲欧美国产制服动漫| 亚洲第一黄色| 欧美亚洲网站| 亚洲日本理论电影| 久久av一区二区三区漫画| 亚洲精品美女免费| 久久精选视频| 一区二区三区蜜桃网| 麻豆亚洲精品| 亚洲欧美综合国产精品一区| 欧美经典一区二区三区| 性欧美videos另类喷潮| 欧美日韩免费观看一区=区三区| 久久av免费一区| 国产精品久久久久免费a∨大胸 | 欧美人与性动交a欧美精品| 欧美亚洲日本网站| 欧美日韩高清在线观看| 久久精品国产亚洲一区二区| 国产精品劲爆视频| 亚洲破处大片| 国内精品久久久久久久97牛牛| 亚洲一区影院| 亚洲日本中文字幕区| 久久先锋影音| 性久久久久久久| 国产精品入口尤物|