如何使用WINSOCK Api hook拦截修改socket数据包

 我来答
地瓜说机
2017-10-06 · TA获得超过2.9万个赞
知道大有可为答主
回答量:2.3万
采纳率:91%
帮助的人:1.2亿
展开全部
下面重点介绍创建挡截 WinSock 外挂程序的基本步骤:
(1) 创建 DLL 项目,选择 Win32 Dynamic-Link Library ,再选择 An empty DLL project 。
(2) 新建文件 wsock32.h ,按如下步骤输入代码:
① 加入相关变量声明:
  HMODULE hModule=NULL; // 模块句柄
  char buffer[1000]; // 缓冲区
  FARPROC proc; // 函数入口指针
② 定义指向原WinSock库中的所有函数地址的指针变量,因WinSock库共提供70多个函数,限于篇幅,在此就只选择几个常用的函数列出,有关这些库函数的说明可参考MSDN相关内容。
  // 定义指向原 WinSock 库函数地址的指针变量。
  SOCKET (__stdcall *socket1)(int ,int,int);// 创建 Sock 函数。
  int   (__stdcall *WSAStartup1)(WORD,LPWSADATA);// 初始化 WinSock 库函数。
  int   (__stdcall *WSACleanup1)();// 清除 WinSock 库函数。
  int (__stdcall *recv1)(SOCKET ,char FAR * ,int ,int );// 接收数据函数。
  int (__stdcall *send1)(SOCKET ,const char * ,int ,int);// 发送数据函数。
  int (__stdcall *connect1)(SOCKET,const struct sockaddr *,int);// 创建连接函数。
  int (__stdcall *bind1)(SOCKET ,const struct sockaddr *,int );// 绑定函数。
  ...... 其它函数地址指针的定义略。
(3) 新建 wsock32.cpp 文件,按如下步骤输入代码:
① 加入相关头文件声明:
  #include <windows.h>
  #include <stdio.h>
  #include "wsock32.h"
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式