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

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

转载于:https://www.cnblogs.com/cheungxiongwei/p/10649614.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值