程序中某些函数,无法hook到的问题

灰灰君呀 2019-07-15 09:17:22
我想hook一个第三方程序tcp的连接函数,理论上是在wsock32.dll和WS2_32.dll中。
第三方程序是a.exe, 加载了b.dll,然后b.dll里面调用了wsock32.dll或WS2_32.dll里面的网络函数。
(1)我通过IAT表,无法扫出该程序中含有wsock32.dll或WS2_32.dll模块,因此也找不到connect和WSAConnect函数。
(2)通过LoadLibrary,然后GetProcAddress得到函数地址,并改写接口函数前5个字节,也无法hook到这两个函数。
前面(1)/(2)步,都可以实现对自己写的demo程序的hook,所以hook代码是没有问题的。

可能存在这两个问题:
(1)程序是否根本就没有调用connect和WSAConnect函数,进行了tcp的连接通信,而是调用其它某种方式实现了TCP连接。
(2)如何才能hook到第三方程序里面IAT表没有包含函数的模块,但是又调用了的这两个网络连接函数。

...全文
245 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
pureman_mega 2021-12-30
  • 打赏
  • 举报
回复

(1)可以通过winDbg下断点,验证程序是否调用connect等函数
(2)iat表没有包含的模块,可以动态加载,然后调用。要hook某个函数,直接对其代码进行patch就行。

9,506

社区成员

发帖
与我相关
我的任务
社区描述
Windows专区 安全技术/病毒
社区管理员
  • 安全技术/病毒社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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