谁能给个win 下的例子:见内,up 有分

pitchstar 2002-01-04 05:48:29
win 下 原始套接字发送 tcp syn 包的例子,我没写成,想参考一下。。。
多谢各位的支持。
...全文
251 36 打赏 收藏 转发到动态 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
pitchstar 2002-02-05
  • 打赏
  • 举报
回复
kevin_qing ,是在 2000 advance 下编译、运行的,我的机器有两个 ip ,一个内部网,一个外部网,不知道跟这有没有关系。

昨天想散分,结果出错了,没散成,今天再散,各位如果有什么意见请继续发,我一直在看,我先给其他早先回答的弟兄们散分。以后再回的帖子将另开主题散分。
Kevin_qing 2002-02-04
  • 打赏
  • 举报
回复
老兄,那个你是在98下面运行的吧?
dct1999 2002-02-04
  • 打赏
  • 举报
回复
hehe , up
xiaoxiaohan 2002-02-04
  • 打赏
  • 举报
回复
VC光盘下\SAMPLES\VC98\MFC\INTERNET目录下有很多例子。
thd111 2002-02-04
  • 打赏
  • 举报
回复
UP 一下,^_^
pitchstar 2002-02-04
  • 打赏
  • 举报
回复
多谢各位,散分
lyneville 2002-01-10
  • 打赏
  • 举报
回复
黑糊糊后
mjs2000 2002-01-10
  • 打赏
  • 举报
回复
提示什么错误吗
pitchstar 2002-01-10
  • 打赏
  • 举报
回复
继续等,为什么好好的程序在我的机器上不执行
zjhsoft 2002-01-10
  • 打赏
  • 举报
回复
upup
pitchstar 2002-01-10
  • 打赏
  • 举报
回复
mjs2000:
我自己写的,和上边的弟兄给提供的,我从网上还真找到一个 syn 的例子,程序都可以运行,
但 sendto 都返回 -1,WSAGetLastError()的值是 10049,msdn 解释为“The remote address is not a valid address”

调试没办法跟进sendto ,盲人摸象的改几个地方都没起作用,你有什么高见?
alpasino 2002-01-09
  • 打赏
  • 举报
回复
*_*
howard 2002-01-09
  • 打赏
  • 举报
回复
http://www.csdn.net/expert/topic/464/464120.shtm

帮帮我吧(网吧管理软件)

各位,还有别的要注意的安全方面的问题吗?
Bird1945 2002-01-09
  • 打赏
  • 举报
回复
学习学习!
gold_jin 2002-01-09
  • 打赏
  • 举报
回复
诸位:贴一个可以正确执行的ping的程序吧,我最近正在找这方面的东西
pitchstar 2002-01-09
  • 打赏
  • 举报
回复
等。。。代码
pitchstar 2002-01-08
  • 打赏
  • 举报
回复
netboys 和 szk ,我试一下你们的办法,两位有空帮我看一下:

http://www.csdn.net/expert/topic/421/421451.shtm

问题之源
pitchstar 2002-01-08
  • 打赏
  • 举报
回复
netboys :
你的例子跟我的代码犯报一个错,我可是一点没改。。。
szk 2002-01-07
  • 打赏
  • 举报
回复
给分。。。。
netboys 2002-01-07
  • 打赏
  • 举报
回复
我自己写的是一个ping的原程序,写的很糟,难读,我还是给一个别人原程序吧
#pragma pack(1)

#define WIN32_LEAN_AND_MEAN

#include <winsock2.h>
#include <ws2tcpip.h>

#include <stdio.h>
#include <stdlib.h>
#include <time.h>


#define OICQ_MAX_PACKET 1024
#define OICQ_MAX_MSG 512
#define OICQ_MSG_LEN 45
#define SRC_IP "127.0.0.1"
#define SRC_PORT 5277
#define DST_PORT 4000

typedef struct ip_hdr
{
unsigned char ip_verlen;
unsigned char ip_tos;
unsigned short ip_totallength;
unsigned short ip_id;
unsigned short ip_offset;
unsigned char ip_ttl;
unsigned char ip_protocol;
unsigned short ip_checksum;
unsigned int ip_srcaddr;
unsigned int ip_destaddr;
} IP_HDR;

typedef struct udp_hdr
{
unsigned short src_portno;
unsigned short dst_portno;
unsigned short udp_length;
unsigned short udp_checksum;
} UDP_HDR;

char strMessage[OICQ_MSG_LEN] = {
0x02,0x01,0x07,0x00,0x78,0x00,0x00,0x31,0x30,0x30,0x30,0x31,0x1f,0x30,0x1f,
0x30,0x30,0x1f,0x32,0x30,0x30,0x30,0x2d,0x30,0x31,0x2d,0x30,0x31,0x1f,0x30,
0x30,0x3a,0x30,0x30,0x3a,0x30,0x30,0x1f,0x68,0x65,0x6c,0x6c,0x6f,0x21,0x03
};

USHORT checksum(USHORT *buffer, int size)
{
unsigned long cksum=0;

while (size > 1)
{
cksum += *buffer++;
size -= sizeof(USHORT);
}
if (size)
{
cksum += *(UCHAR*)buffer;
}
cksum = (cksum >> 16) + (cksum & 0xffff);
cksum += (cksum >>16);

return (USHORT)(~cksum);
}

int main(int argc, char **argv)
{
WSADATA wsd;
SOCKET s;
BOOL bOpt;
struct sockaddr_in remote;
IP_HDR ipHdr;
UDP_HDR udpHdr;
int ret;
DWORD i;
unsigned short iTotalSize,
iUdpSize,
iUdpChecksumSize,
iIPVersion,
iIPSize,
cksum = 0;
char buf[OICQ_MAX_PACKET],
*ptr = NULL;

printf("Spoof OICQ Msg Sender - by Janker@371.net\n\n");

if(argc!=2) {
printf("usage: OICQSEND Destination_IP_Address");
ExitProcess(1);
}

srand((unsigned)time(NULL));
strMessage[5]=rand();

if (WSAStartup(MAKEWORD(2,2), &wsd) != 0)
{
printf("WSAStartup() failed: %d\n", GetLastError());
return -1;
}
s = WSASocket(AF_INET, SOCK_RAW, IPPROTO_UDP, NULL, 0,0);
if (s == INVALID_SOCKET)
{
printf("WSASocket() failed: %d\n", WSAGetLastError());
return -1;
}
bOpt = TRUE;
ret = setsockopt(s, IPPROTO_IP, IP_HDRINCL, (char *)&bOpt, sizeof(bOpt));
if (ret == SOCKET_ERROR)
{
printf("setsockopt(IP_HDRINCL) failed: %d\n", WSAGetLastError());
return -1;
}

iTotalSize = sizeof(ipHdr) + sizeof(udpHdr) + OICQ_MSG_LEN;

iIPVersion = 4;
iIPSize = sizeof(ipHdr) / sizeof(unsigned long);

ipHdr.ip_verlen = (iIPVersion << 4) ¦ iIPSize;
ipHdr.ip_tos = 0;
ipHdr.ip_totallength = htons(iTotalSize);
ipHdr.ip_id = 0;
ipHdr.ip_offset = 0;
ipHdr.ip_ttl = 128;
ipHdr.ip_protocol = 0x11;
ipHdr.ip_checksum = 0 ;
ipHdr.ip_srcaddr = inet_addr(SRC_IP);
ipHdr.ip_destaddr = inet_addr(argv[1]);

iUdpSize = sizeof(udpHdr) + OICQ_MSG_LEN;

udpHdr.src_portno = htons(SRC_PORT) ;
udpHdr.dst_portno = htons(DST_PORT) ;
udpHdr.udp_length = htons(iUdpSize) ;
udpHdr.udp_checksum = 0 ;

iUdpChecksumSize = 0;
ptr = buf;
ZeroMemory(buf, OICQ_MAX_PACKET);

memcpy(ptr, &ipHdr.ip_srcaddr, sizeof(ipHdr.ip_srcaddr));
ptr += sizeof(ipHdr.ip_srcaddr);
iUdpChecksumSize += sizeof(ipHdr.ip_srcaddr);

memcpy(ptr, &ipHdr.ip_destaddr, sizeof(ipHdr.ip_destaddr));
ptr += sizeof(ipHdr.ip_destaddr);
iUdpChecksumSize += sizeof(ipHdr.ip_destaddr);

ptr++;
iUdpChecksumSize += 1;

memcpy(ptr, &ipHdr.ip_protocol, sizeof(ipHdr.ip_protocol));
ptr += sizeof(ipHdr.ip_protocol);
iUdpChecksumSize += sizeof(ipHdr.ip_protocol);

memcpy(ptr, &udpHdr.udp_length, sizeof(udpHdr.udp_length));
ptr += sizeof(udpHdr.udp_length);
iUdpChecksumSize += sizeof(udpHdr.udp_length);

memcpy(ptr, &udpHdr, sizeof(udpHdr));
ptr += sizeof(udpHdr);
iUdpChecksumSize += sizeof(udpHdr);

for(i = 0; i <OICQ_MSG_LEN; i++, ptr++)
*ptr = strMessage[i];
iUdpChecksumSize += OICQ_MSG_LEN;

cksum = checksum((USHORT *)buf, iUdpChecksumSize);
udpHdr.udp_checksum = cksum;

ZeroMemory(buf, OICQ_MAX_PACKET);
ptr = buf;

memcpy(ptr, &ipHdr, sizeof(ipHdr)); ptr += sizeof(ipHdr);
memcpy(ptr, &udpHdr, sizeof(udpHdr)); ptr += sizeof(udpHdr);
memcpy(ptr, strMessage, OICQ_MSG_LEN);

remote.sin_family = AF_INET;
remote.sin_port = htons(DST_PORT);
remote.sin_addr.s_addr = inet_addr(argv[1]);

ret = sendto(s, buf, iTotalSize, 0, (SOCKADDR *)&remote, sizeof(remote));
if (ret == SOCKET_ERROR)
printf("sendto() failed: %d\n", WSAGetLastError());
else
printf("Send O.K.!");
closesocket(s) ;
WSACleanup() ;

return 0;
}
加载更多回复(16)

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧