某廠商游戲協(xié)議逆向分析案列

此分析結(jié)果適用于某廠旗下部分游戲,比較典型的如某精英,不同游戲協(xié)議字段有區(qū)別,這里只列出主要的協(xié)議格式,以及分析的方式和結(jié)果。

改廠旗下游戲,核心交互協(xié)議有TCP和UDP兩種,進(jìn)入對戰(zhàn)后的游戲協(xié)議,數(shù)據(jù)部分都是加密過的,只有頭部協(xié)議有一定特征,但是頭部協(xié)議特征無法區(qū)分不同游戲,所以騰訊游戲的識(shí)別主要依賴于

登錄狀態(tài)協(xié)議。?登錄狀態(tài)協(xié)議的交互是在登錄進(jìn)入游戲開始啟動(dòng),退出游戲后結(jié)束。作為一條有特征可分析的長連接,可以作為游戲的應(yīng)用識(shí)別+應(yīng)用時(shí)長統(tǒng)計(jì)+應(yīng)用攔截的規(guī)則適用。

下面是一個(gè)典型的登陸狀態(tài)協(xié)議

客戶端->服務(wù)端

0000?33?66?00?0a?00?0a?10?01?00?00?00?00?01?00?00?00

0010?53?00?00?00?00?02?03?00?00?27?10?00?00?00?65?10

0020?02?03?00?00?00?1d?6f?73?65?77?52?30?73?33?4b?65

0030?34?4a?42?6f?58?2d?4b?47?61?36?64?58?44?47?65?58

0040?73?6f?00?00?00?00?00?00?00?00?00?00?00?03?00?00

0050?00?00?00

服務(wù)端->客戶端

0000?33?66?00?0a?00?0a?10?02?01?00?00?00?01?00?00?00

0010?30?00?00?00?10?02?10?57?53?68?76?72?74?76?35?41

0020?4b?65?66?48?72?58?58?00?00?00?04?00?00?00?00?00

0030?9f?ce?99?47?d8?8d?9c?61?5f?7e?a8?87?0f?d3?be?0e

這條協(xié)議不是完全加密的,可以通過以下特征進(jìn)行匹配。

1,data[0:3]?==336600,可以作為協(xié)議的特征。

提取方式:多序列對比

驗(yàn)證方式:多序列對比?+?交互式驗(yàn)證

2,data[3:4]?==0a000a00,這里目前看存在兩種值,分別為0a000a00和08000800,?推測語義可能為協(xié)議控制信息或者渠道相關(guān)信息

提取方式:多序列對比

驗(yàn)證方式:多序列對比?+?交互式驗(yàn)證

3,data[7:1]?==?01/02,01為正向數(shù)據(jù)包,02為反向數(shù)據(jù)包

提取方式:多序列對比

驗(yàn)證方式:多序列對比?+?交互式驗(yàn)證

4:data[8:8]?==00?00?00?01?00?00?00?,推測語義為協(xié)議控制信息,取值為00/01,具體語義由于只有正向樣本,反向樣本不足無法確定。但是由于00?01無法作為特征值,所以影響不大

5.data[16:1]?此位置為數(shù)據(jù)包長度字段,可以通過先驗(yàn)經(jīng)驗(yàn)人工分析出來,或者通過腳本跑出來

提取方式:先驗(yàn)經(jīng)驗(yàn)人工分析/腳本分析

6,data[17:13]?02?03?00?00?27?10?00?00?00?65?10?0020?02?03?00?00?00

這段字段比較特殊,可能包含多種含義,可能性比較大的是

情況1:

02:分隔符字段

03:長度字段,后接3個(gè)16進(jìn)制數(shù)據(jù),也可能與02組成0203作為分隔符/協(xié)議控制信息

情況2:

02:代表登錄信息,如QQ登陸,第二個(gè)是0303,不是0203,也就是32位內(nèi)容前這個(gè)標(biāo)志位,如果是微信是0203,如果是QQ則是0303

03:協(xié)議控制字段,0203?后面000000ff0000006510代表是ios/android

不管是哪種提取方式,這幾個(gè)特征值都偏弱,無法作為優(yōu)質(zhì)的特征值字段。

提取方式:多序列對比

7,data[30:1]這個(gè)位置代表是渠道,例如安卓是65,IOS是66,?65對應(yīng)的ASCII是A,66是B,此處可能有其他取值,例如海外渠道包,具體取值范圍可以通過構(gòu)造數(shù)據(jù)包的方式,發(fā)送給服務(wù)端,根據(jù)返回值判斷。

提取方式:多序列對比

驗(yàn)證方式:多序列對比?+?交互式驗(yàn)證

此處需要注明,根據(jù)交互式驗(yàn)證獲取data[30:1]的取值范圍后,識(shí)別規(guī)則可以有選擇性的使用這個(gè)字段,效果更加精準(zhǔn)。

8.Data[34:32],典型的32位加密信息,比較大的可能性是用戶cookie相關(guān)信息

前面0000001d6f,很多游戲微信登錄都是這個(gè)內(nèi)容,所以大概率猜測1d6f是微信登陸,后面內(nèi)容就算是相同賬號(hào),每個(gè)游戲也不一樣了,應(yīng)該為加密信息。

QQ登陸的話,則是00000021開頭,21是個(gè)!,后面內(nèi)容各個(gè)賬號(hào)都不一樣了。就算是相同賬號(hào)登陸不同的游戲,內(nèi)容除了開頭也是加密信息。

同時(shí)可以通過交互式的方式進(jìn)行驗(yàn)證,如果構(gòu)造此數(shù)據(jù)段為非法數(shù)據(jù),服務(wù)器解密失敗后,返回的數(shù)據(jù)包與其他異常數(shù)據(jù)包有明顯不同,應(yīng)該為賬號(hào)信息錯(cuò)誤相關(guān)錯(cuò)誤信息。

提取方式:多序列對比

驗(yàn)證方式:多序列對比?+?交互式驗(yàn)證

9.協(xié)議尾部信息:填充部分/校驗(yàn)和,無法作為特征值

個(gè)別特例:

1,某跑跑和某忍者這個(gè)請求幾乎一模一樣。某跑跑雖然不是某廠游戲,但是應(yīng)該接入了某廠互動(dòng)的系統(tǒng),這里看看某廠能不能找到開放平臺(tái)文檔

2,某火線協(xié)議長度是213,其他內(nèi)容基本和上面的游戲一致,但是中間多了一些部分

下面是某火線的長連接包,前面336600開頭,006610是IOS版本,0203是標(biāo)志位。0203后面是三個(gè)00,然后1d?6f這是微信登陸通用開頭,后面是加密數(shù)據(jù)了。猜測加密數(shù)據(jù)跟用戶id,以及當(dāng)前申請的游戲的key有關(guān)系。

其中紅色部分是跟其他游戲所使用協(xié)議明顯不同部分,猜測為協(xié)議拓展數(shù)據(jù),可選擇使用。

0000?ae?b6?d0?07?08?0b?98?46?0a?3c?b7?09?08?00?45?00???D....F.<·...E.

0010?00?fd?00?00?40?00?40?06?3d?1b?ac?15?eb?06?65?59?.y..@.@.=.?.?.eY

0020?00?6b?e1?2b?fd?f2?26?9d?5e?be?7b?53?3e?d1?50?18?.ká+yò&.^?{S>?P.

0030?40?08?a3?bd?00?00?33?66?00?09?00?09?10?01?00?00?@.£?..3f........

0040?00?00?01?00?00?00?d5?00?00?00?00?03?00?40?95?b2?......?......@.2

0050?03?71?62?89?06?8a?96?de?ba?ac?ff?f7?4f?e6?c6?e3?.qb....To??÷O???

0060?50?b6?f5?25?b9?12?c1?7d?c1?b0?1e?3e?1d?b3?00?dc?P??%1.á}á°.>.3.ü

0070?83?51?7e?5d?b7?30?ec?f3?96?ca?6b?be?c0?33?f0?43?.Q~]·0ìó.êk?à3eC

0080?38?90?ba?4e?71?15?c1?58?9a?72?1e?d8?15?a5?00?00?8.oNq.áX.r.?.¥..

0090?00?00?00?00?00?00?00?00?00?00?00?00?00?00?00?00?................

00a0?00?00?00?00?00?00?00?00?00?00?00?00?00?00?00?00?................

00b0?00?00?00?00?00?00?00?00?00?00?00?00?00?00?00?00?................

00c0?00?00?00?00?00?00?00?00?00?00?00?00?00?00?03?00?................

00d0?00?00?ff?00?00?00?66?10?02?03?00?00?00?1d?6f?4d?..?...f.......oM

00e0?74?62?71?74?33?6b?49?73?39?73?72?37?57?68?57?59?tbqt3kIs9sr7WhWY

00f0?68?66?61?51?2d?75?46?4d?4b?59?00?00?00?00?00?00?hfaQ-uFMKY......

0100?00?00?00?00?00?01?00?00?00?00?00?...........

換了球球賬號(hào)登陸,果然長度從213變成了217,應(yīng)該是球球賬號(hào)比wx賬號(hào)多4位

下面是球球,還是一樣,336600?0003?0303(這里是球球登陸)第一次0003后面是一對加密數(shù)據(jù),在后面就是006610?然后0303后面跟著加密數(shù)據(jù),也是0021開頭

0000?ae?b6?d0?07?08?0b?98?46?0a?3c?b7?09?08?00?45?00???D....F.<·...E.

0010?01?01?00?00?40?00?40?06?3d?14?ac?15?eb?06?65?59?....@.@.=.?.?.eY

0020?00?6e?e1?70?fd?f2?a8?37?bf?b7?24?ea?12?12?50?18?.nápyò¨7?·$ê..P.

0030?40?08?3a?02?00?00?33?66?00?09?00?09?10?01?00?00?@.:...3f........

0040?00?00?01?00?00?00?d9?00?00?00?00?03?00?40?33?63?......ù......@3c

0050?65?f9?36?fd?66?20?b7?36?7f?81?dd?4b?a2?cc?c4?74?eù6yf?·6..YK¢ì?t

0060?82?94?e8?bd?d4?cb?8b?69?0e?c4?31?e7?cb?91?05?47?..è???.i.?1??..G

0070?b6?d1?45?ee?3d?e9?15?c0?84?ee?c7?1d?9e?cd?32?9a???E?=é.à.??..í2.

0080?0c?41?c1?bc?2c?4f?96?17?dd?0f?7a?44?7f?91?00?00?.Aá?,O..Y.zD....

0090?00?00?00?00?00?00?00?00?00?00?00?00?00?00?00?00?................

00a0?00?00?00?00?00?00?00?00?00?00?00?00?00?00?00?00?................

00b0?00?00?00?00?00?00?00?00?00?00?00?00?00?00?00?00?................

00c0?00?00?00?00?00?00?00?00?00?00?00?00?00?00?03?00?................

00d0?00?00?ff?00?00?00?66?10?03?03?00?00?00?21?43?45?..?...f......!CE

00e0?30?37?41?39?46?39?43?38?34?41?41?32?32?36?39?33?07A9F9C84AA22693

00f0?41?35?39?46?36?44?43?42?31?42?42?45?46?42?00?00?A59F6DCB1BBEFB..

0100?00?00?00?00?00?00?00?00?00?01?00?00?00?00?00?...............

0000?ae?b6?d0?07?08?0b?98?46?0a?3c?b7?09?08?00?45?00???D....F.<·...E.

0010?00?81?00?00?40?00?40?06?7a?6b?ac?15?eb?06?b4?61?....@.@.zk?.?.′a

0020?74?8e?e2?57?7d?9b?84?20?1b?75?57?68?59?4a?50?18?t.aW}..?.uWhYJP.

0030?80?c7?cc?fb?00?00?33?66?00?0b?00?0b?10?01?00?00?.?ì?..3f........

0040?00?00?01?00?00?00?59?00?00?00?00?02?03?00?00?00?......Y.........

0050?ff?00?00?00?66?10?03?03?00?00?00?21?45?32?41?46??...f......!E2AF

0060?41?46?35?42?45?33?38?30?46?30?41?39?41?37?42?39?AF5BE380F0A9A7B9

0070?31?37?30?41?36?46?44?39?42?34?45?46?00?00?00?00?170A6FD9B4EF....

0080?00?00?00?00?00?00?00?03?00?00?00?00?00?00?00?...............

3,某忍者周年這個(gè)游戲有點(diǎn)特別,包內(nèi)容如下:

在16:1這個(gè)偏移上的數(shù)字是d8,是216.這個(gè)216是整個(gè)tcp.payload的長度,同理微信登陸時(shí)212,也就是d4。有點(diǎn)奇怪,跟其他游戲的協(xié)議有所區(qū)別。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,443評(píng)論 6 532
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,530評(píng)論 3 416
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,407評(píng)論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,981評(píng)論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,759評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,204評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,263評(píng)論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,415評(píng)論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,955評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,782評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,983評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評(píng)論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,222評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,650評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,892評(píng)論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,675評(píng)論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,967評(píng)論 2 374

推薦閱讀更多精彩內(nèi)容