问一个有点难度的问题,如何检测串口是否被hook

xiaowei_001 2013-09-08 10:09:30
经常使用串口监控的朋友都知道accesport这个软件,它可以监控某个COM口的收发,但不占用端口,也就是通过hook的方法进行消息截获,我的问题是如何知道某个端口被下了hook了呢
...全文
390 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
pathletboy 2013-09-21
  • 打赏
  • 举报
回复
function checkApsm(): Boolean;
begin
  CreateFile('\\.\Apsm', GENERIC_READ or GENERIC_WRITE,
    FILE_SHARE_READ or FILE_SHARE_WRITE,
    nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
  Result := GetLastError = 5;
end;
点开始监控后,运行返回True,否则返回False。
lm_whales 2013-09-21
  • 打赏
  • 举报
回复
调试这个驱动看看!
xiaowei_001 2013-09-13
  • 打赏
  • 举报
回复
仔细看。AcessPort目录下有个Apsm.sys驱动文件,点击监听时会加载这个驱动,即它的串口监听不是用hook的方式实现的,应该是用这个Apsm.sys驱动实现的,求指点。
sololie 2013-09-10
  • 打赏
  • 举报
回复
你先hook嘛
minizhuxianchun 2013-09-10
  • 打赏
  • 举报
回复
大概的思路是:程序初始化时,用GetProcAddr函数得到ReadFile和WriteFile两个函数的地址并保存。以后在调用这两个函数之前检查地址是否和保存的地址一样,如不一样说明被HOOK了。 另外一种方式:枚举本进程的所有模块,如有可疑的模块,很可能被HOOK或被线程远程注入了。

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧