數(shù)據(jù)包的路由過(guò)程是一個(gè)復(fù)雜的過(guò)程,首先要了解數(shù)據(jù)包的封裝結(jié)構(gòu)。如何轉(zhuǎn)發(fā)數(shù)據(jù)包?當(dāng)然,有些黑客可能會(huì)通過(guò)抓取數(shù)據(jù)包,分析數(shù)據(jù)包,找到通信協(xié)議的一部分,如果對(duì)數(shù)據(jù)進(jìn)行加密分析,那就更難了,如何用C操作IP 數(shù)據(jù)包?21.數(shù)據(jù)的序列號(hào)為32位,TCP為發(fā)送的每個(gè)字節(jié)編碼一個(gè)數(shù)字,其中存儲(chǔ)了當(dāng)前數(shù)據(jù)包 data的第一個(gè)字節(jié)的序列號(hào)。
我很清楚你想做什么,但你不是三言兩語(yǔ)就能做到的。首先,如果你想抓一個(gè)包,你需要依賴(lài)一個(gè)庫(kù)(windows下叫Winpcap,Linux下叫l(wèi)ibpcap)。這個(gè)包提供了許多接口。跑完可以抓包,給你介紹一本書(shū):網(wǎng)絡(luò)安全開(kāi)發(fā)包詳解。當(dāng)時(shí)做了一本網(wǎng)絡(luò)安全入門(mén)書(shū)。這本書(shū)目前已經(jīng)絕版了(只能買(mǎi)到印刷版和二手書(shū)。如果經(jīng)常需要,我建議買(mǎi)一本,比電子書(shū)方便),但是可以下載到電子版。如果有必要,我也可以給你發(fā)一個(gè)你想實(shí)現(xiàn)的例子。只需閱讀書(shū)的前幾章,介紹如何使用winpcap/libpcap。
3、C語(yǔ)言怎么向CF服務(wù)器發(fā)送火麒麟的 數(shù)據(jù)包?
要掛電話嗎?你必須首先知道游戲客戶端段和服務(wù)器之間的通信協(xié)議,然后才能對(duì)加密方法進(jìn)行編程。這是游戲公司的秘密,你無(wú)從得知。當(dāng)然,有些黑客可能會(huì)通過(guò)抓取數(shù)據(jù)包,分析數(shù)據(jù)包,找到通信協(xié)議的一部分,如果對(duì)數(shù)據(jù)進(jìn)行加密分析,那就更難了。不了解所有這些,就無(wú)法編程。通常黑客不會(huì)來(lái)這個(gè)地方,所以很難解決你的問(wèn)題。如果你已經(jīng)知道了游戲客戶端和服務(wù)器之間的通信協(xié)議和加密方法,那么寫(xiě)程序就比較容易了。
如果有一定的接收字節(jié)長(zhǎng)度,設(shè)置Rthreshold等于接收字節(jié)長(zhǎng)度,有利于提高接收精度。由于你的幾個(gè)下位機(jī)返回?cái)?shù)據(jù)包 byte的長(zhǎng)度不同,你可以根據(jù)address命令提前改變Rthreshold的值,保證接收到的字節(jié)長(zhǎng)度符合要求。否則你收到多少字節(jié)滿足你重發(fā)下一個(gè)地址命令的要求?很難處理程序代碼。其實(shí)下位機(jī)返回的是數(shù)據(jù)包,可以補(bǔ)充一定的其他字節(jié)達(dá)到同樣的長(zhǎng)度。
5、有一個(gè) 數(shù)據(jù)包從PC-A發(fā)送到PC-C,請(qǐng)講解一下數(shù)據(jù)轉(zhuǎn)發(fā)的具體過(guò)程?數(shù)據(jù)包的包路由過(guò)程是一個(gè)復(fù)雜的過(guò)程。我們首先要了解數(shù)據(jù)包的封裝結(jié)構(gòu)。PC-A會(huì)外包給PC-C,如果PC-A不知道PC-C的ip地址,PC-A會(huì)先發(fā)出一個(gè)dns請(qǐng)求,路由器A或者dns解析服務(wù)器會(huì)響應(yīng)PC-A的ip地址。這樣PC-A關(guān)于數(shù)據(jù)包 Layer 3的ip地址信息就完整了:源ip地址:PC-A,目的ip地址:PC-C..
6、誰(shuí)來(lái)講解下TCP 數(shù)據(jù)包的具體內(nèi)容?TCP 數(shù)據(jù)包結(jié)構(gòu):11。源端口是16位,范圍當(dāng)然是065535。12.目的港,同上。21.數(shù)據(jù)的序列號(hào)為32位,TCP為發(fā)送的每個(gè)字節(jié)編碼一個(gè)數(shù)字,其中存儲(chǔ)了當(dāng)前數(shù)據(jù)包 data的第一個(gè)字節(jié)的序列號(hào)。31.用32位確認(rèn)序列號(hào)。為了安全起見(jiàn),TCP下次告訴接收方數(shù)據(jù)包的第一個(gè)字節(jié)的序列號(hào)。41.偏移量為4位,類(lèi)似于IP,表示數(shù)據(jù)來(lái)自數(shù)據(jù)包報(bào)頭的32位。
43.緊急位URG當(dāng)URG = 1時(shí),表示緊急指針域有效。它告訴系統(tǒng)該消息段中有緊急數(shù)據(jù),應(yīng)該盡快傳輸(相當(dāng)于高優(yōu)先級(jí)數(shù)據(jù))。43.確認(rèn)位ACK僅在ACK = 1時(shí)有效。當(dāng)ack = 0時(shí),確認(rèn)號(hào)無(wú)效。參考TCP三次握手。44.復(fù)位位RST(Reset)當(dāng)rst = 1時(shí),表示TCP連接存在嚴(yán)重錯(cuò)誤(如由于主機(jī)崩潰或其他原因),必須釋放連接,然后必須重新建立傳輸連接。
7、socket編程。怎么實(shí)現(xiàn) 數(shù)據(jù)包的轉(zhuǎn)發(fā)?C語(yǔ)言版的。network中的Socket數(shù)據(jù)傳輸是一種特殊的I/O,Socket也是一種文件描述符。Socket還有一個(gè)類(lèi)似于打開(kāi)文件的函數(shù)調(diào)用Socket(),返回一個(gè)整數(shù)的Socket描述符,后續(xù)的連接建立、數(shù)據(jù)傳輸?shù)炔僮鞫际峭ㄟ^(guò)這個(gè)Socket實(shí)現(xiàn)的。下面用socket實(shí)現(xiàn)一個(gè)windows下C語(yǔ)言套接字通信的例子??蛻舳税l(fā)送一個(gè)字符串,服務(wù)器接收它。
8、...進(jìn)制數(shù)據(jù)轉(zhuǎn)換為文本字符串?怎樣用C對(duì)IP 數(shù)據(jù)包進(jìn)行操作?大部分菜都是混合的。抓包工具抓到的都是十六進(jìn)制字節(jié)內(nèi)容,1會(huì)加密,沒(méi)有加密的可以直接用system轉(zhuǎn)換,文本. eng...gettext。至于修改,要看工具有沒(méi)有提供這個(gè)內(nèi)容,在我的博客上,我用。NET please函數(shù)的鏈接技術(shù),可以通過(guò)這個(gè)程序進(jìn)行封裝和修改,如果它需要掛鉤其他進(jìn)程,就需要寫(xiě)成。DLL并在該行之后注入,當(dāng)然,如果其他進(jìn)程不是由?;蛘邲](méi)有加載CLR,則需要先加載它,然后再注入。