日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

002 通过send断点分析功能call

發(fā)布時間:2025/3/21 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 002 通过send断点分析功能call 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

    • 游戲發(fā)包流程
    • 分析吃藥call
    • 分析換裝備call
    • 總結(jié)

游戲發(fā)包流程

對于網(wǎng)絡(luò)游戲來說,發(fā)送數(shù)據(jù)包是必不可少的一個環(huán)節(jié),無論是走路還是喊話或者是其他功能都需要通過發(fā)包函數(shù)向服務(wù)器發(fā)送數(shù)據(jù)包。

以技能call為例,整個流程大致如下:

  • 接收到用戶消息(鍵盤按下技能快捷鍵)
  • 調(diào)用技能call
  • 調(diào)用技能call2
  • 調(diào)用技能call3
  • 組裝數(shù)據(jù)包
  • 對數(shù)據(jù)進(jìn)行加密
  • send發(fā)包
  • 技能call會有很多個,越往外層,功能越完整,但限制越多,越往里層限制越少,功能越強(qiáng)大。

    例如在最外層的技能call1會檢測是否到達(dá)冷卻時間,當(dāng)前人物狀態(tài)等等,內(nèi)層的技能call2直接釋放技能,那么如果直接調(diào)用call2就可以達(dá)到無CD的效果。

    所謂的變態(tài)功能只不過就是繞過游戲的一些限制,然后調(diào)用外層call達(dá)到目的。如果能找到最里層的call,或者直接發(fā)送封包,就可以直接繞過所有的限制。

    借助這個特性我們可以在發(fā)包的函數(shù)下API斷點,逆向分析出這個游戲的大部分功能。

    當(dāng)然也不排除底層對抗比較強(qiáng)的一些游戲,會重寫三環(huán)的所有API,這個時候API斷點就無效了。這種情況想要找到游戲的發(fā)包函數(shù)其實也很簡單,我們下次再討論

    發(fā)包函數(shù)一共有下面的三個

    send sendto WSASend

    分析吃藥call

    這里以吃藥為例,用OD附加游戲,并且下sendAPI斷點

    隨便吃一個藥品,這里需要記住以下藥品的位置是在第22格

    程序斷下,打開調(diào)用堆棧,這里需要一個一個排除。最后可以確定吃藥call是491C50,右鍵,顯示調(diào)用

    在這個地方下個斷點 讓程序斷下,這個call很明顯需要調(diào)用兩個call。接下來分析代碼,先進(jìn)去上面的那個call看看

    這個函數(shù)之前我們追血量基址的時候已經(jīng)分析過了,那么大概可以猜到這個call就是獲取當(dāng)前人物的血量

    然后再看edx的值是0x15,也就是十進(jìn)制的21。藥品的位置在第22格,如果從0開始計數(shù)的話,那么這個參數(shù)大概就是藥品的位置了。

    這個call的參數(shù)相對來說調(diào)用起來沒有那么方便,如果有多個吃藥call的可能性,那么在外層一定還有一個call,是可以通過藥品的名稱或者其他東西作為參數(shù)來調(diào)用的

    分析完成以后可以通過代碼注入器來測試call是否有效

    分析換裝備call

    同樣的方法在send下斷,然后更換裝備讓斷點斷下

    點擊調(diào)用堆棧,挨個排除,最后確定為67D4E0

    接下來分析參數(shù),ecx來自[edx+0x20]而edx=[0xD0DF1C],這個數(shù)據(jù)不難跟

    而esi的值是一個地址,指向的值多次測試有下面幾種情況

    02030011 03100011 000C0011

    后面四位的0011是固定的。前面兩位02 03 00指的是需要更換的部位,例如:上衣=02,鞋子=03,頭盔01,武器=00

    第三四位的含義是物品欄裝備的位置,依舊是從0開始計數(shù)。代碼就不寫了,各位自行測試

    總結(jié)

    網(wǎng)絡(luò)游戲的逆向分析的一個大的切入點就是發(fā)包函數(shù),通過整個發(fā)包流程,可以逆向出絕大部分功能,這里只舉了兩個例子。
    這個方法只適用一些簡單的游戲功能,如果功能比較復(fù)雜,則會頻繁向服務(wù)器發(fā)送數(shù)據(jù)包,通過這種簡單的調(diào)用關(guān)系就不一定能找到關(guān)鍵call。

    相關(guān)工具:
    https://github.com/TonyChen56/GameReverseNote

    總結(jié)

    以上是生活随笔為你收集整理的002 通过send断点分析功能call的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。