㈠ 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
將第三方輸入法設置為默認輸入法請進入該輸入法的設置面板-鎖定輸入法為默認輸入法