如何監聽第三方程序對指定串口的讀寫數據?


使用
https://github.com/Microsoft/Detours
可以很方便的進行 hook。

hook 該函數獲取串口信息 和  lpDCB 數據
BOOL BuildCommDCBA(
  LPCSTR lpDef,
  LPDCB  lpDCB
);


hook 該函數比較上面函數獲得到的 lpDCB  數據,如果相同則獲取 hFile 句柄。
BOOL SetCommState(
  HANDLE hFile,
  LPDCB  lpDCB
);

hook 寫函數並比較 hFile 值,如果相等則轉發發送的數據
BOOL WriteFile(
  HANDLE       hFile,
  LPCVOID      lpBuffer,
  DWORD        nNumberOfBytesToWrite,
  LPDWORD      lpNumberOfBytesWritten,
  LPOVERLAPPED lpOverlapped
);

hook 讀函數並比較 hFile  值,如果相等則轉發發送的數據
BOOL ReadFile(
  HANDLE       hFile,
  LPVOID       lpBuffer,
  DWORD        nNumberOfBytesToRead,
  LPDWORD      lpNumberOfBytesRead,
  LPOVERLAPPED lpOverlapped
);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM