㈠ linux下面怎么做一个发包器,题目是利用pcap文件格式,我们在发包之前已经有pcap文件包,读取pcap文件通过
你应该使用pcap库
搜搜有关pcap库的使用就行了 学学相关函数的使用
pcap_create()
pcap_activate()
pcap_open_offline()
等等
㈡ linux socket编程我用sendto发包有没有长度限制的
linux socket编程我用sendto发包有没有长度限制的
引发非法操作异常的原因有:
应用程序试图对Parent属性为nil的组件进行一些需要窗口句柄的操作.
试图对窗体拖放操作.
引发组件异常的原因有:
Delphi不能注册某个组件
应用程序不能重命名某个组件
资源不足异常被引发是由于当应用程序试图创建窗口句柄而操作系统没有多余的句柄可分配
专用组件异常:许多组件都定义了相应的组件异常类.
㈢ 利用虚拟机Linux系统的Tcpreplay给主机发包怎么发
如果两个系统不同,实现起来很麻烦,你必须在windows下用winpcap库开发一个windows下的Tcpmp工具,用于接收Linux主机发过来的包。
㈣ 急求LINUX底层简单发包小程序!
linux下底层?是socket的网络通信吧?用udb或tcp协议创建socket,然后send出去,就可以了。下面是个server端的TCP。
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>
#define UNIX_DOMAIN "/tmp/UNIX.domain"
int main(void)
{
socklen_t clt_addr_len;
int listen_fd;
int com_fd;
int ret;
//int i;
static char recv_buf[64];
int len;
struct sockaddr_un client_addr;
struct sockaddr_un server_addr;
if((listen_fd=socket(PF_UNIX,SOCK_STREAM,0))<0)
{
perror("cannot creat listening socket");
return 1;
}
server_addr.sun_family=AF_UNIX;
strncpy(server_addr.sun_path,UNIX_DOMAIN,sizeof(server_addr.sun_path)-1);
unlink(UNIX_DOMAIN);
if((ret=bind(listen_fd,(struct sockaddr *)&server_addr,sizeof(server_addr)))==-1)
{
perror("cannot bing the server socket");
close(listen_fd);
unlink(UNIX_DOMAIN);
return 1;
}
if((ret=listen(listen_fd,1))==-1)
{
perror("cannot listen the client connect request");
close(UNIX_DOMAIN);
return 1;
}
len=sizeof(client_addr);
if((com_fd=accept(listen_fd,(struct sockaddr *)&client_addr,&len))<0)
{
perror("cannot accept client connect request");
close(listen_fd);
unlink(UNIX_DOMAIN);
return 1;
}
printf("\n==============info==============\n");
//for(i=0;i<4;i++)
//{
memset(recv_buf,0,64);
int num=read(com_fd,recv_buf,sizeof(recv_buf));
printf("Message from client(%d):%s",num,recv_buf);
printf("\n==============info==============\n");
//}
close(com_fd);
close(listen_fd);
unlink(UNIX_DOMAIN);
return 0;
}
㈤ Linux网络设备驱动完成数据包发送的流程
从网络设备驱动程序的结构分析可知,Linux网络子系统在发送数据包时,会调用驱动程序提供的hard_start_transmit()函数,该函数用于启动数据包的发送。在设备初始化的时候,这个函数指针需被初始化以指向设备的xxx_tx ()函数。网络设备驱动完成数据包发送的流程如下:1)网络设备驱动程序从上层协议传递过来的sk_buff参数获得数据包的有效数据和长度,将有效数据放入临时缓冲区。2)对于以太网,如果有效数据的长度小于以太网冲突检测所要求数据帧的最小长度ETH ZLEN,则给临时缓冲区的末尾填充0。3)设置硬件的寄存器,驱使网络设备进行数据发送操作。特别要强调对netif_ stop_queue()的调用,当发送队列为满或因其他原因来不及发送当前上层传下来的数据包时,则调用此函数阻止上层继续向网络设备驱动传递数据包。当忙于发送的数据包被发送完成后,在以TX结束的中断处理中,应该调用netif_wake_queue ()唤醒被阻塞的上层,以启动它继续向网络设备驱动传送数据包。当数据传输超时时,意味着当前的发送操作失败或硬件已陷入未知状态,此时,数据包发送超时处理函数xxx _tx _timeout ()将被调用。这个函数也需要调用由Linux内核提供的netif_wake _queue()函数以重新启动设备发送队列。
㈥ Linux网络子系统在发送数据包时,数据发送流程
从网络设备驱动程序的结构分析可知,Linux网络子系统在发送数据包时,会调用驱动程序提供的hard_start_transmit()函数,该函数用于启动数据包的发送。在设备初始化的时候,这个函数指针需被初始化以指向设备的xxx_tx ()函数。网络设备驱动完成数据包发送的流程如下:
1)网络设备驱动程序从上层协议传递过来的sk_buff参数获得数据包的有效数据和长度,将有效数据放入临时缓冲区。
2)对于以太网,如果有效数据的长度小于以太网冲突检测所要求数据帧的最小长度ETH ZLEN,则给临时缓冲区的末尾填充0。
3)设置硬件的寄存器,驱使网络设备进行数据发送操作。
特别要强调对netif_ stop_queue()的调用,当发送队列为满或因其他原因来不及发送当前上层传下来的数据包时,则调用此函数阻止上层继续向网络设备驱动传递数据包。当忙于发送的数据包被发送完成后,在以TX结束的中断处理中,应该调用netif_wake_queue ()唤醒被阻塞的上层,以启动它继续向网络设备驱动传送数据包。当数据传输超时时,意味着当前的发送操作失败或硬件已陷入未知状态,此时,数据包发送超时处理函数xxx _tx _timeout ()将被调用。这个函数也需要调用由Linux内核提供的netif_wake _queue()函数以重新启动设备发送队列。
㈦ 在Linux系统下使用hping3工具进行发包测试,网上下的都是源码包装不上,
看你什么系统了,redhat/fedora/centos/redflag/suse都是用rpm的,debian/ubuntu/kubuntu都是用deb的,这些包都是事先编译好的,安装后直接就可以用,但通用性很差,比如针对fedora11的rpm很有可能在fedora8上不能安装,因为glibc库版本不同,用编译好的东西会不兼容。
源码包什么系统都可以用,因为是需要自己编译的,但麻烦的是由于linux版本太多,更新太快,编译时经常有很多依赖问题,rpm和deb通过更新自动下载其他依赖包,源码包就需要一个一个编译了,比较麻烦。
㈧ linux下怎么指定网卡发包收包
linux下有命令可直接执行抓包的,命令如下:
1、tcpmp -vv -i ethN -s 10240 -w /root/abc.cap host ip
2、上述命令中,ethN,是你要抓的本机网卡,一般是eth0,可使用ifconfig查看使用的哪个网卡
-s 指定的是抓包数量 -w指定的是抓到的包写到哪个位置 host ip即为抓取哪个ip 的包
㈨ 如何排查Linux服务器上的恶意发包行为
以下几种方法检测linux服务器是否被攻击:1、检查系统密码文件首先从明显的入手,查看一下passwd文件,ls–l/etc/passwd查看文件修改的日期。2、查看一下进程,看看有没有奇怪的进程重点查看进程:ps–aef|grepinetdinetd是UNIX系统的守护进程,正常的inetd的pid都比较靠前,如果看到输出了一个类似inetd–s/tmp/.xxx之类的进程,着重看inetd–s后面的内容。在正常情况下,LINUX系统中的inetd服务后面是没有-s参数的,当然也没有用inetd去启动某个文件;而solaris系统中也仅仅是inetd–s,同样没有用inetd去启动某个特定的文件;如果使用ps命令看到inetd启动了某个文件,而自己又没有用inetd启动这个文件,那就说明已经有人入侵了系统,并且以root权限起了一个简单的后门。3、检查系统守护进程检查/etc/inetd.conf文件,输入:cat/etc/inetd.conf|grep–v“^#”,输出的信息就是这台机器所开启的远程服务。一般入侵者可以通过直接替换in.xxx程序来创建一个后门,比如用/bin/sh替换掉in.telnetd,然后重新启动inetd服务,那么telnet到服务器上的所有用户将不用输入用户名和密码而直接获得一个rootshell。4、检查网络连接和监听端口输入netstat-an,列出本机所有的连接和监听的端口,查看有没有非法连接。输入netstat–rn,查看本机的路由、网关设置是否正确。输入ifconfig–a,查看网卡设置。5、检查系统日志命令last|more查看在正常情况下登录到本机的所有用户的历史记录。但last命令依赖于syslog进程,这已经成为入侵者攻击的重要目标。入侵者通常会停止系统的syslog,查看系统syslog进程的情况,判断syslog上次启动的时间是否正常,因为syslog是以root身份执行的,如果发现syslog被非法动过,那说明有重大的入侵事件。在linux下输入ls–al/var/log检查wtmputmp,包括messgae等文件的完整性和修改时间是否正常,这也是手工擦除入侵痕迹的一种方法。6、检查系统中的core文件通过发送畸形请求来攻击服务器的某一服务来入侵系统是一种常规的入侵方法,典型的RPC攻击就是通过这种方式。这种方式有一定的成功率,也就是说并不能100%保证成功入侵系统,而且通常会在服务器相应目录下产生core文件,全局查找系统中的core文件,输入find/-namecore–execls–l{}\;依据core所在的目录、查询core文件来判断是否有入侵行为。7、检查系统文件完整性检查文件的完整性有多种方法,通常通过输入ls–l文件名来查询和比较文件,这种方法虽然简单,但还是有一定的实用性。但是如果ls文件都已经被替换了就比较麻烦。在LINUX下可以用rpm–V`rpm–qf文件名`来查询,查询的结果是否正常来判断文件是否完整。在LINUX下使用rpm来检查文件的完整性的方法也很多,这里不一一赘述,可以manrpm来获得的格式。
㈩ linux有什么发包工具
方法/步骤1
鼠标滑动至电脑桌面屏幕右侧,呼出Charm超级菜单-设置
2
选择更改电脑设置
3
选择时间和语言
4
选择区域和语言-中文-中华人民共和国-选项
5
键盘-添加键盘-添加第三方输入法
6
点中微软拼音-选项-可以对微软拼音进行个性化设置
7
将第三方输入法设置为默认输入法请进入该输入法的设置面板-锁定输入法为默认输入法