CozyShark开发日志 2章节 - 使用Hook进程Socket函数抓包

如果要单独的进程抓包,就需要注入之后Hook进程的Socket函数。

CozyShark只选择Hook了两个常用的函数send/recv。

由于API Hook属于另外的内容,所以这里略过。

为了开发方便,CozyShark选择使用Detours。

Detours是一个由微软开发的一个API Hook函数库,使用它只需要下载之后编译,这里同样跳过。

为了方便测试,CozyShark添加了三个Tester。

  • Hook.Tester.Server是一个TcpServer,并且只可以接收消息(recv)
  • Hook.Tester.Client是一个TcpClient,并且只可以发送消息(send)
  • Hook.Tester是一个典型的dll注入器。

本体部分是一个dll:CozyShark.Hook.dll,它负责对抓取到的数据的转发。
在将本体注入目标进程之后,Hook掉ws2_32.dll中的send和recv函数,开始抓取数据。

CozyShark原计划使用zpublic中的ipc组件,但是由于意外情况,需要自己实现。
由于同时只对一个进程进行数据包抓取,所以可以使用命名管道来进行ipc。

posted @ 2016-05-19 00:36  kingwl  阅读(796)  评论(0编辑  收藏  举报