聯眾公升級協議分析6

2021-03-31 08:57:00 字數 1498 閱讀 5297

聯眾公升級協議分析續篇(五)

雲網(jimzj@21**.***

) 接上篇

五、出牌命令

上面說是這麼多,現在終於到了全部協議分析中最重要的部分內容了;記錄每乙個玩家所出的牌資訊,這樣就可以分析還剩餘什麼樣的牌了。

0x0000

0d 20 00 00

38 00 00 00-00 00 00 00 01 00 00 00. ..8...........

0x0010

00 00 00 00 00 00 00 00-01 00 00 00 00 00 00 00................

0x00203c 00 00 00 2f 00 00 00-01 00 00 00 09 00 00 00

<.../...........

0x003000 00 00 00 00 00 00 00-01 00 00 00 01 00 00 00................

出牌的資訊中應該包括了出牌人編號,下乙個出牌編號,出牌張數,出的牌的顏色和出的牌的編號,有了這個資訊的了解,相資訊你看懂這段資料不成問題的,除開命令字,其它的內容就很容易理解了。另外通過協議的分析,還包含了一輪的結事標誌,當前的得分,呵呵,這個可是由伺服器傳送過來的,相修改都有些難

l。對於得分,這個倒是要接上多幾個這樣的指令才能看得出來,因為前幾個一般都是零,所以看不出來。所以你要顯示在外掛程式上的剩餘分也可以利用這個的校對。

對於出牌的資料結構定義如下(因為有多個牌,所以要迴圈)

typedef struct _tagshjisendcard

shjisendcard, *lpshjisendcard ;

typedef struct _tagshjicardinfo

shjicardinfo, *lpshjicardinfo;

大家看過的定義的資料結構多數都是分為兩個部分,因為乙個包中包含了多個迴圈的部分,所以不必對於重複的部分來定義相同的結構,只有迴圈一下就可以了。利用上面的結構,就可以得到玩家出的牌的資訊了,如下所示:

void __fastcall tfrmmain::revsendcard( char * ppackcontent ) }

setsendcardpic( pinfo->ccurout, pinfo->**extout, pinfo->nscore, (gamecardcolor)pcard->ccolor, pcard->ccard ) ;

if( i == 0 )

if( m_curcolor.btstatus == 2 )//

檢測當前使用者是否沒有這種牌

} else if( (gamecardcolor)pcard->ccolor != m_curcolor.rcurcolor ) }

}

每個玩家出牌的資訊都收集到之後,就可以根據每乙個玩家所現的牌資訊來判斷一下他有什麼樣的牌,分析的結果直接顯示在外掛程式介面上。讓你的使用者一目了然地知道別人有什麼牌,知已知彼,百戰百勝,呵呵

j

聯眾公升級協議分析1

聯眾公升級協議分析 雲網 jimzj 21 記得剛到大學時,第一件和大家一起玩的就是打牌,相信很多人都會有這個經歷 我也是在那時候學會公升級 拖拉機 的。大二時曾經瘋狂玩過,所以對公升級一直都很情有獨衷 但工作後,一方面找不到人,另一方面就算找到人了也不能像以前一樣通 宵的去玩。還好,一次看到別人在...

聯眾公升級協議分析4

聯眾公升級協議分析 續篇 三 雲網 jimzj 21 接上篇下面就去如何去分析每個命令字作說明 在這之前,我們先定義每乙個包的包頭結構 typedef struct tagpackhead int n mand 命令字 int ndatalen 包長度 packhead,lppackhead 上面的...

網路協議分析 VRRP協議分析

2 rip 2的報文格式 3 rip 2的驗證報文 三 例項化 rip報文由頭部 header 和多個路由表項 route entries 部分組成。乙個rip表項中最多可以有25個路由表項。rip是基於udp協議的,所以rip報文的資料報不能超過512個位元組。1 command 長度8bit,報...