首页
社区
课程
招聘
[求助]看看这段代码,怎么替换不了封包?
发表于: 2008-12-31 20:28 4847

[求助]看看这段代码,怎么替换不了封包?

ztd 活跃值
1
2008-12-31 20:28
4847
可以截到封包的数据,但是怎么替换数据发送呢?
int WINAPI Mysendto(SOCKET s,const char* buf,int len,int flags,const struct sockaddr* to,int tolen)
{
        int RE = 0;
        HookOffOne(&Apisendto);
        if(buf[8] == 1)
        {
                char *newbuf = new char[256];
                for(int i=0;i<len;i++)
                {
                        newbuf[i] = buf[i];
                }
                newbuf[14] = 'Z';
                RE = sendto(s,newbuf,len,flags,to,tolen);
                delete[] newbuf;
        }
        else
        {
                RE = sendto(s,buf,len,flags,to,tolen);
        }
        HookOnOne(&Apisendto);
        return RE;
}

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 207
活跃值: (16)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
我是用的全局钩子。
2008-12-31 20:59
0
雪    币: 424
活跃值: (10)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
3
您老似乎写反了

newbuf[i] = buf[i];  

这样只是复制到你的buf当中,没有对buf进行任何更改
2009-1-1 13:13
0
雪    币: 184
活跃值: (65)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
[QUOTE=大菜一号;559394]您老似乎写反了

newbuf[i] = buf[i];  

这样只是复制到你的buf当中,没有对buf进行任何更改[/QUOTE]

but
RE = sendto(s,newbuf,len,flags,to,tolen);
2009-1-1 18:02
0
雪    币: 207
活跃值: (16)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
[QUOTE=大菜一号;559394]您老似乎写反了

newbuf[i] = buf[i];  

这样只是复制到你的buf当中,没有对buf进行任何更改[/QUOTE]

没写反吧?const char* buf不能直接改值,只能赋到newbuf里再改newbuf的值,再sendto newbuf。
2009-1-1 19:20
0
雪    币: 424
活跃值: (10)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
6
QUOTE=pathletboy;559492]but
RE = sendto(s,newbuf,len,flags,to,tolen);[/QUOTE]

2009-1-2 00:55
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
对不起,可能我太菜了,这代码看了比较迷糊。

//  这几句len>256怎么办?乱套了嘛。
    char *newbuf = new char[256];
    for(int i=0;i<len;i++)
    {
      newbuf[i] = buf[i];
    }

// sendto调完就返回了怎么办?newbuf数据都无效了。
    RE = sendto(s,newbuf,len,flags,to,tolen);
    delete[] newbuf;
2009-1-6 14:26
0
游客
登录 | 注册 方可回帖
返回
//