谢谢,写得很透彻,不过你还缺少一实验方法,就是组队,你刷的东西别人能看到刷的还是真实的?如果是真实的,那说明服务器端也同样被更改了,如果纯属自慰,那别人看到也应该是真实的,楼主可以利用这个假设进一步实验
Posted: 2009-09-22 23:49 |
lazykkkkkk
级别:正式会员 [发送消息]
发帖: 215DB: 140 刀
精华: 0威望: 63 点
来自:台湾省台北市 中华电信
在线时间:38(小时)
最后登录:2009-10-02
诞生日:2008-05-196 楼 小 中 大
關于樓上的想法,我覺得不用測試了,我就算修改了丟1G變2G別人應該看到的也是1G
關于副本,在你組隊的時候是由隊長生成副本數據,所有人從服務器獲得隊長的數據,這個跟隊長單人進副本生成數據是一樣的,既然隊長自己都無法修改在服務器的數據,那么其他人必定是無法獲得你修改的數據。
Posted: 2009-09-23 17:49 |
lazykkkkkk
级别:正式会员 [发送消息]
发帖: 215DB: 140 刀
精华: 0威望: 63 点
来自:台湾省台北市 中华电信
在线时间:38(小时)
最后登录:2009-10-02
诞生日:2008-05-197 楼 小 中 大
關于副本數據我也試驗過
進入副本的時候,你選擇地圖和難度,然后點進入地下城,這時候客戶端往服務器發送一個封包,這個封包包括一個變動的代碼和一串代表這個地下城的代碼,然后服務器首先返回一個封包,判定你是否處于對應的頻道獲得經驗加成,然后服務器再返回一個封包,這個包干什么用的我不清楚,但是這個包一旦收到你的屏幕就黑了,我覺得這個時候整個副本的數據就應該已經生成了,包括每張圖的怪以及你一開始的地點,然后服務器再返回一個很短的封包,什么用我也不知道,收到這個封包你的屏幕恢復,你看見你已進入副本。
同樣的,在副本里從這個圖進下個圖的時候,也是先往服務器發送一個封包告訴服務器你過圖了,然后服務器返回一個封包讓游戲黑屏,再返回一個封包你屏幕亮了你進入下個圖。
假設你從副本中的圖A進入圖B,截取到這3個封包,這是你再回圖A,然后發送第一個也就是告訴服務器你進入下張圖的包,游戲里你就進入了圖B,這時圖B中的怪會全部刷新,但是殺了不給經驗不給東西,也就是說怪是假的,所以得出結論是副本數據在服務器端有另一個完整數據。
但是,你從圖A進入圖B以后,你將之前你選擇副本進入時候發送給服務器的那個你進圖的封包重新發送,你會重新進入副本,同樣你看見怪全部刷新,殺了之后有經驗也掉東西,可是你繼續刷圖會出現未知錯誤導致你被踢下線。我覺得原因是因為重新發包以后你的起始位置變動了,導致了一些數據錯誤。
以上實驗表明在你一進入副本的時候服務器端就生成了整個副本的數據,任何修改想要刷新怪物或者刷新副本中物品的做法應該都是徒勞。
Posted: 2009-09-23 18:04 |
lazykkkkkk
级别:正式会员 [发送消息]
发帖: 215DB: 140 刀
精华: 0威望: 63 点
来自:台湾省台北市 中华电信
在线时间:38(小时)
最后登录:2009-10-02
诞生日:2008-05-198 楼 小 中 大
回4樓的,強化武器的封包現在一般都用發布的+150這個我沒做太多試驗,以前也只截取過幾次包,強化武器過程應該是這樣的,你把武器丟到凱麗那里去強化,前面的動畫可以忽略了,在最后閃的那一下,你往服務器發送一個封包告訴服務器你現在強化的物品在裝備欄中的位置,然后服務器返回一個封包鎖定你的物品欄防止你移動裝備,接著服務器判定你強化成功或者失敗,然后服務器端重新變更你裝備強化之后的信息,接著服務器返回一個封包告訴客戶端剛才物品欄那個位置的裝備強化成功或者失敗。
Posted: 2009-09-23 18:09 |
lazykkkkkk
级别:正式会员 [发送消息]
发帖: 215DB: 140 刀
精华: 0威望: 63 点
来自:台湾省台北市 中华电信
在线时间:38(小时)
最后登录:2009-10-02
诞生日:2008-05-199 楼 小 中 大
另外再補充,昨天無聊,建立了一個小號,先進入洛蘭地下城,截取進入該地下城的封包,然后我到洛蘭之森,進入洛蘭之森選擇地圖那里我發送該封包,于是我進入了洛蘭,退出副本我還在洛蘭之森門口。于是我保存這個封包,建立另外一個新人物,嘗試也進入洛蘭之森發送這個包,沒有用進不了副本。我又嘗試截取進入冒險級別的洛蘭,截取封包,同樣一個人物不論在哪張地圖進入副本那里發送這個包都能進入冒險級別洛蘭,但是換個新人物就不能用了。
Posted: 2009-09-23 18:15 |
lazykkkkkk
级别:正式会员 [发送消息]
发帖: 215DB: 140 刀
精华: 0威望: 63 点
来自:台湾省台北市 中华电信
在线时间:38(小时)
最后登录:2009-10-02
诞生日:2008-05-1910 楼 小 中 大
還有關于以前完成任務的那個過濾器我也研究了一下
之前過濾器將01,22改成01,23,于是放棄任務就變完成任務,這個22就是放棄任務,23就是完成任務,這個代碼現在還是一樣的。但是這個過濾器不能用原因如下:放棄任務時候假設發送封包01,22,XX,XX,XX,XX(這里XX也是固定的代碼,我忘記了多少位),AB,CD,EF,GH(這里ABCDEFGH代表的是該任務的代碼,實際不止4位,而是十幾位,我就不列那么多,但是同樣的任務這個任務代碼是一樣的,我們假設任務A在放棄的時候任務代碼是AA)完成任務的時候發送的封包是01,23,xx,xx,xx,hi,jk,lm,no(這里代碼列舉同上,不同的是大家注意到同樣個任務,在放棄的時候代碼是AA,而完成的時候代碼就變掉了,這個變動規律我無法研究出來),所以就是說你沒辦僅僅修改22為23就完成任務,你需要的還有任務完成的時候那個變掉的任務代碼。
不過這么看完成任務應該還是有方法的,雖然放棄任務和完成任務的時候任務代碼不一樣,但是同一個任務這2個代碼是不便的,也就是說如果你先開一個號完成任務,然后你把完成這個任務的包截取,然后你把這個包給其他的號用也是可以完成這個任務的,但是DNF里那么多任務你要一個個去截包么?
Posted: 2009-09-23 18:24 |
lazykkkkkk
级别:正式会员 [发送消息]
发帖: 215DB: 14