通过Hook Send函数修改HTTP报文头

Home / Hackintosh MrLee 2016-4-21 3780

今天hook了win api的send函数,然后检测到请求www.baidu.com的host数据包时就自动跳转到本站,但是发现修改send函数没用,我当时就在想是不是因为connect中的目标地址其实还未修改,是不是要一起修改。后来百度了一下,果然如此,需要把connect函数稍做修改,看源码
int WSAAPI hook_connect(IN SOCKET s,IN const struct sockaddr *name,IN int namelen)  
{  
    OutputDebugString("MyConnect Function");  
    struct sockaddr_in *paddr =(struct sockaddr_in *)name;  
  
    paddr->sin_addr.S_un.S_addr = inet_addr("我的目标网站IP");  
    char temp[50];  
    char *ip =inet_ntoa(paddr->sin_addr);  
    int port =ntohs(paddr->sin_port);  
    sprintf(temp,"connect: ip=%s, port=%d\r\n",ip,port);  
    OutputDebugString(temp);      
      
    BYTE *p =(BYTE *)GetProcAddress(GetModuleHandle("ws2_32.dll"), "recv");  
    if(p)  
    {  
        sprintf(temp, "my connect: data of recv=%x:%x %x %x %x %x", p, p[0], p[1],p[2],p[3],p[4]);  
        OutputDebugString(temp);  
    }  
    //在这里返回换好了我的自定义地址paddr  
    return Real_connect(s, (sockaddr*)paddr, namelen);  
} 

 

本文链接:https://www.it72.com/9292.htm

推荐阅读
最新回复 (0)
返回