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