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() 设置内存读写 在吧要挂钩后的子程序指针写道内存中就成了 不过记得备份.

ParkinHost:俄罗斯离岸主机,抗投诉VPS,200Mbps带宽/莫斯科CN2线路/不限流量/无视DMCA/55折促销26.4欧元 /年起

外贸主机哪家好?抗投诉VPS哪家好?无视DMCA。ParkinHost今年还没有搞过促销,这次parkinhost俄罗斯机房上新服务器,母机采用2个E5-2680v3处理器、128G内存、RAID10硬盘、2Gbps上行线路。具体到VPS全部200Mbps带宽,除了最便宜的套餐限制流量之外,其他的全部是无限流量VPS。ParkinHost,成立于 2013 年,印度主机商,隶属于 DiggDigi...

优林云(53元)哈尔滨电信2核2G

优林怎么样?优林好不好?优林 是一家国人VPS主机商,成立于2016年,主营国内外服务器产品。云服务器基于hyper-v和kvm虚拟架构,国内速度还不错。今天优林给我们带来促销的是国内东北地区哈尔滨云服务器!全部是独享带宽!首月5折 续费5折续费!地区CPU内存硬盘带宽价格购买哈尔滨电信2核2G50G1M53元直达链接哈尔滨电信4核4G50G1M83元直达链接哈尔滨电信8核8G50G1M131元直...

远程登录VNC无法连接出现

今天有网友提到自己在Linux服务器中安装VNC桌面的时候安装都没有问题,但是在登录远程的时候居然有出现灰色界面,有三行代码提示"Accept clipboard from viewers,Send clipboard to viewers,Send primary selection to viewers"。即便我们重新登录也不行,这个到底如何解决呢?这里找几个可以解决的可能办法,我们多多尝试。...

apihook为你推荐
windows7正版验证怎样验证windows7是不是正版?goalgoalgoal开头是O后面是lei什么的英语歌,男声的,好像是摇滚~~~圣诞节网页制作这是我特别为您制作的2011年圣诞节祝福网页,祝您生蛋(圣诞)快乐,好事圆圆,好梦连连!快去看看吧。微软将停止支持32位Win10系统电脑win10系统自带的office2016为什么是32位?印象城市游戏论坛宙斯众神之王下的地图为什么没有?创业好项目论坛谁能提供点真实可靠的,网络创业赚钱项目?创业好项目论坛现在挣钱太难了、大家有什么好项目催收软件哪个好问下催款人爆通讯录是电话通讯录还是微信上的通讯录或者其它软件的通讯录flv转换avi怎样把视频flv格式转换成avi 、 mp4格式云图好看吗云图好看么?
域名注册服务 免费申请域名和空间 sugarsync cloudstack 免费cdn加速 dux 双拼域名 佛山高防服务器 免费dns解析 免费外链相册 海外空间 深圳主机托管 so域名 饭桶 瓦工工资 大容量存储模式 ibm服务器机柜 总线制报警主机 元旦促销方案 广州摇号申请网站 更多