如果我們想為QQ西遊寫一個自動打怪
那麼我們還需要用已經找到的明文發包CALL實現很多功能(分析封包)
再結合我們之前找到的人物數據,怪物數據,技能數據,背包數據
就可以了
數據作為判斷的依據
而明文發包CALL實現的功能是動作處理
分析封包並沒有什麼過多的技巧
基本上都是HOOK 明文封包CALL以後
1.抓包
2.對比分析
3.確定各參數意義
抓到技能封包
包長:4 D800 A80F
包頭 ID(WORD)
這裡面我們比較疑惑,技能封包沒有釋放對象?那他對誰釋放呢?只有一個技能ID參數
顯然是不成立的,但是在這個封包裡確實沒有
那麼只有另外一種可能,就是之前的封包對選擇誰為釋放目標有影響。
這地方稍微思考一下即可知道,一定是選怪封包了
所以,釋放技能封包
需要前置封包----選怪封包
包長:6 E600 C81A0200
包頭 怪物ID
當然不止是怪物,如果要選隊友或則自己或則NPC 也是同樣的傳遞ID即可
釋放技能還有另外一種形式
就是當你釋放的時候 出現一個選擇釋放點的技能
這種封包中比如會有坐標的
我們抓到封包
選擇坐標釋放技能封包
包長:e E700 4BCE9845 8F3E8445 162F7C43
包頭 X Y Z
然後再調用技能封包
走路封包分析
發現和轉向封包是一個 那麼應該是一個多功能封包
最後一字節 0-255 X負軸方向為0 順時針 0和255重疊
9600 09 1C13 48 8210 2E FD00 28 19 0A
9600 09 1C13 48 8210 2E FD00 28 19 F8
9600 09 1C13 48 8210 2E FD00 28 19 E4
9600 09 1C13 48 8210 2E FD00 28 19 D2
9600 09 1C13 48 8210 2E FD00 28 19 BF
9600 09 1C13 48 8210 2E FD00 28 19 AA
包頭 小類 X Y Z 朝向
[[08E0D18]+0BCD4+5] byte
9600081C134582102BFD00281927
9600071C134582102BFE00471927
9600081C134582102BFD00281927
9600071C134582102BFE00461927
96000A1C134582102BFD00461927
9600081C134582102BFD00281927
9600071C134582102BFE00431927
96000A1C134582102BFD00401927
9600081C134582102BFD00281927
9600071C134582102BFE00311927
96000A1C134582102BFD002F1927
當然打怪過程中還會用到很多其他封包
那麼都是同樣的辦法
細緻對比分析即可
並沒有什麼太大難度,比較耗時而已
來源:通化程式設計師-公眾號投稿
*轉載請註明來自遊戲安全實驗室(GSLAB.QQ.COM)
近期精品文章:
【遊戲漏洞】RPG遊戲自動打怪之取得最近怪物
【遊戲漏洞】某3D遊戲可接任務分析
【遊戲漏洞】RPG遊戲自動打怪之朝向判斷
【遊戲漏洞】某生存遊戲玩家屬性值分析
∨
投稿文章:gslab@tengcent.com