如何监听第三方程序对指定串口的读写数据?


使用
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