apihookVB中如何实现API HOOK

apihook  时间:2021-07-28  阅读:()

如何使用WINSOCK命令处理消息,Api hook拦截修改socket数据包

下面重点介绍创建挡截 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     #include     #include "wsock32.h"    ② 添加DllMain函数,在此函数中首先需要加载原WinSock库,并获取此库中所有函数的地址。

代码如下:     BOOL WINAPI DllMain (HANDLE hInst,ULONG ul_reason_for_call,LPVOID lpReserved)     {      if(hModule==NULL){       // 加载原 WinSock 库,原 WinSock 库已复制为 wsock32.001 。

    hModule=LoadLibrary("wsock32.001");    }      else return 1; // 获取原 WinSock 库中的所有函数的地址并保存,下面仅列出部分代码。

if(hModule!=NULL){       // 获取原 WinSock 库初始化函数的地址,并保存到 WSAStartup1 中。

proc=GetProcAddress(hModule,"WSAStartup");     WSAStartup1=(int (_stdcall *)(WORD,LPWSADATA))proc;       // 获取原 WinSock 库消除函数的地址,并保存到 WSACleanup1 中。

     proc=GetProcAddress(hModule i,"WSACleanup");      WSACleanup1=(int (_stdcall *)())proc;       // 获取原创建 Sock 函数的地址,并保存到 socket1 中。

     proc=GetProcAddress(hModule,"socket");       socket1=(SOCKET (_stdcall *)(int ,int,int))proc;       // 获取原创建连接函数的地址,并保存到 connect1 中。

      proc=GetProcAddress(hModule,"connect");       connect1=(int (_stdcall *)(SOCKET ,const struct sockaddr *,int ))proc;       // 获取原发送函数的地址,并保存到 send1 中。

      proc=GetProcAddress(hModule,"send");       send1=(int (_stdcall *)(SOCKET ,const char * ,int ,int ))proc;       // 获取原接收函数的地址,并保存到 recv1 中。

      proc=GetProcAddress(hModule,"recv");       recv1=(int (_stdcall *)(SOCKET ,char FAR * ,int ,int ))proc;       ...... 其它获取函数地址代码略。

    }     else return 0;     return 1; }

VB中如何实现API HOOK

先使用 GetProcAddress() 函数取得进程地址 然后用GetModuleHandleA() 取得实例句柄 在用VirtualProtect() 设置内存读写 在吧要挂钩后的子程序指针写道内存中就成了 不过记得备份.

Hostwinds:免费更换IP/优惠码美元VPS免费更换IP4.99,7月最新优惠码西雅图直连VPS

hostwinds怎么样?2021年7月最新 hostwinds 优惠码整理,Hostwinds 优惠套餐整理,Hostwinds 西雅图机房直连线路 VPS 推荐,目前最低仅需 $4.99 月付,并且可以免费更换 IP 地址。本文分享整理一下最新的 Hostwinds 优惠套餐,包括托管型 VPS、无托管型 VPS、Linux VPS、Windows VPS 等多种套餐。目前 Hostwinds...

ZJI:台湾CN2/香港高主频服务器7折每月595元起,其他全场8折

ZJI原名维翔主机,是原来Wordpress圈知名主机商家,成立于2011年,2018年9月更名为ZJI,提供香港、日本、美国独立服务器(自营/数据中心直营)租用及VDS、虚拟主机空间、域名注册业务。ZJI今年全新上架了台湾CN2线路服务器,本月针对香港高主频服务器和台湾CN2服务器提供7折优惠码,其他机房及产品提供8折优惠码,优惠后台湾CN2线路E5服务器月付595元起。台湾一型CPU:Inte...

湖北22元/月(昔日数据)云服务器,国内湖北十堰云服务器,首月6折

昔日数据怎么样?昔日数据新上了湖北十堰云服务器,湖北十堰市IDC数据中心 母鸡采用e5 2651v2 SSD MLC企业硬盘 rdid5阵列为数据护航 100G高防 超出防御峰值空路由2小时 不限制流量。目前,国内湖北十堰云服务器,首月6折火热销售限量30台价格低至22元/月。(注意:之前有个xrhost.cn也叫昔日数据,已经打不开了,一看网站LOGO和名称为同一家,有一定风险,所以尽量不要选择...

apihook为你推荐
防恶意点击怎么才能做到防止恶意点击的行为发生呢?qq空间维护QQ空间正在维护中,暂不支持访问,这是什么意思,什么时候才能好?发博客如何用word发博客日志?java学习思维导图思维导图培训教程?思维导图软件MindManager,freemind,xmind哪个好?免流量是什么意思腾讯大王卡免费流量是什么意思?物联卡官网物联卡是正规流量卡吗?dnf客户端消失地下城勇士登录 客户端消失微信语音在哪个文件夹微信语音在哪个文件夹 微信语音导出及amr格式转换cf服务器爆满为什么穿越火线显示该服务器已爆满怎么才能挤进去?handoff怎么用Mac的Hand Off怎么连接iPhone?
主机域名 亚洲大于500m 安云加速器 老左博客 免费网站监控 ixwebhosting e蜗牛 坐公交投2700元 hostloc 东莞数据中心 免费cdn 卡巴斯基免费试用版 银盘服务 ebay注册 阿里云邮箱登陆地址 万网注册 后门 97rb 国外免费网盘 建站技术 更多