每晚搞点幻想神域
幻想神域之 功能call
要先找到功能call, 就要明白功能call 的最終去向.不同的功能會產生不同的與服務器交互的數據流.
所以我們要順藤摸瓜. 先找到明文call .
想找到明文call 可以通過發包函數返回
1. 三大發包函數
?? send sendto? WSASend
?? 以及他們的底層 WSPSend
?? 經過測試發現是 WSASend
2.確定游戲是否是線程發包 ?
? 看堆棧大小 堆棧過小是線程發包 .
? 看返回 測試功能發包返回是否會跑飛,是的話是線程發包
3. 記錄從發包函數到跑飛的所有經過的函數call. 每層下斷點,找到功能包很心跳包的分界所在的函數call
4. 在可以下功能call 的地方下斷點,設置條件斷點過濾掉發給服務器的心跳.過濾出真正的功能數據包
5. 了解各個發包函數參數結構
?? WSASend 第一個參數為 socket的handle
?????????? 第二個參數為 一個包含包長的結構體
?????????? {
?????????????? int? size;
?????????????? int* 內容;
?????????? }? ?
6. 下條件斷點過濾心跳包
?? 發現包長為 0x11的為心跳包,設置條件斷點過濾
7. 點擊地面,觸發走路call
?? 走路包長為 0x1E 設置條件斷點為 == 0x1E
總結
- 上一篇: 使用GNOME Tweak Tool来定
- 下一篇: 王之泰201771010131《面向对象