最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【探究】提前安裝3.8?原神有可能提前安裝預(yù)下載文件來更新到新版本嗎

2023-07-18 20:26 作者:蛋蛋-eggegg  | 我要投稿
  1. 一個稍微懂一點(diǎn)的外行來點(diǎn)評一下這條路到底走不走得通:
  • 首先,評論區(qū)已經(jīng)有很多大佬點(diǎn)出來了,直接解壓是不行的,它類似于一種 diff 的形式(與之相對的是原神的 hdiff),需要使用特殊的 patch 工具。但游戲仍能正常打開,因?yàn)橹挥袉挝募^大的音頻包與視頻包需要 hdiff,其他直接覆蓋是沒有問題的。
  • 那么欺騙時間到底做不做得到呢?實(shí)際上是做不到的。那個停服維護(hù)的 note 只是給你看的,實(shí)際在 mhy 的服務(wù)器上并沒有設(shè)定幾點(diǎn)開服。也就是說,只要 mhy 的人沒有把 stopServerConfig 刪掉,就算你真的把 mhy 服務(wù)器時間改掉也不會開服。。。

2.那么有沒有其他的方式呢?

  • 實(shí)際上游戲登錄分兩層:dispatch 和真正的游戲服務(wù)器(gateserver,或者也可以是一個反向代理)。dispatch 就是管分發(fā),管選服和游戲內(nèi)小更新,以及 gateserver 的分配。那么顯然可以想到自己搓一個 dispatch 服務(wù)器,然后將客戶端導(dǎo)到真正的游戲服務(wù)器。但這個時候小更新都沒有推出來,大概不會告訴你可連接的服務(wù)器地址的。
  • 那么更新中(當(dāng)天 6:00-11:00)可以嗎?這個時候服務(wù)器是一定會發(fā)回小更新與服務(wù)器地址的(后者其實(shí)是因?yàn)樵褡约?cur 解析的缺陷,沒有服務(wù)器地址會提示二級地址解析失敗)。但是答案仍然是不行。你仍可以連接到服務(wù)器,gateserver 會接受你的 kcp 連接,但是不會放你進(jìn)去——服務(wù)器在你登錄時會向一個內(nèi)部 API 發(fā)送一個鑒權(quán)請求,包含你的賬戶信息以及版本等等,同時 mhy 自己帶一個類似白名單的東西可以放測試人員進(jìn)服。服務(wù)器可能會發(fā)送一個帶非零 retcode 的 GetPlayerTokenRsp 把你擋在門外,也有可能根本不回你等你超時。

上面都是理論部分,有興趣的朋友可以看下實(shí)際的技術(shù)需求:

  1. 插播一條廣告:一個小工具,可以用原神的預(yù)下載包進(jìn)行 hdiff 更新:https://github.com/YYHEggEgg/HappyGenyuanImsactUpdate/releases
  2. 手搓 dispatch 需要開發(fā)一個小型 http 服務(wù)器。這其實(shí)不難,隨便哪種語言網(wǎng)上都能找到大量實(shí)現(xiàn)(至少可以實(shí)現(xiàn)綁定到一個 url 終結(jié)點(diǎn),返回一個固定字符串)。
  3. 至少需要使用一個代理(Fiddler 即可)篡改 query_cur_region 的服務(wù)器(域名 cngfdispatch.yuanshen.com) 。原神的 cur 是一個 protobuf 數(shù)據(jù)類型并經(jīng)過 RSA 加密;于今天而言 RSA Patch 也是大部分人這條路上最大的攔路虎。
  4. 它使用非對稱加密來驗(yàn)證 cur 是否被篡改,因此如果想要篡改 cur 的內(nèi)容,必須自己生成一對密鑰對修改過的 cur 進(jìn)行簽名,并使用 RSA Patch 使得客戶端信任它。
  • RSAPatch 的早期版本本人并沒有試過是否今天仍然有效,但如果使用網(wǎng)上找到的 RSAPatch 版本,建議使用 Grasscutter 的 signing_key,有無數(shù)的私服工作者幫你做各種適配版本,能省去很多麻煩。
  • 另外,RSA 公鑰加密最大 256 個字節(jié),因此加密大數(shù)據(jù)需將數(shù)據(jù)切割成 256 一組,加密后再拼接起來 base64,變成 cur json中的 content,解密反過來即可;sign 則是將完整的內(nèi)容使用 SHA256WithRSA 私鑰簽名,自己解密的時候就不需要驗(yàn)簽了。
  • 推薦一下自己的筆記:https://github.com/YYHEggEgg/GIUserAssemblyHelper/blob/main/Tutorial_CN.md#%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A6%81%E8%A1%A5%E4%B8%81-ua ,更詳細(xì)地講解了 cur RSA 加密的一套邏輯。(其中關(guān)于 UserAssembly 的內(nèi)容自 3.3 起失效)

5.跨過 RSA 這道坎解出內(nèi)容就容易了。使用 protobuf 格式 decode cur 內(nèi)容,把 stopServerInfo 刪掉,encode 回去,再走一遍 RSA 加密就可以達(dá)成目的。cur 使用的 proto(QueryCurrRegionHttpRsp.proto)網(wǎng)上很容易找到,把前面這一串拖到百度大概率都能搜到。(但是最好不要在你退出后出現(xiàn)在b站搜索框里面 :)

6.最終,你搭好了一個代理和一個僅會處理 cur 的服務(wù)器,游戲也使用了 RSAPatch 啟動;如果你沒有看到 4206 或是 4214,那么大概率你就能看到點(diǎn)擊進(jìn)入;然而你會被何種方式擋在門外就是未知的事情了。

順便一提:

  1. 崩鐵 1.0 的時候公布過一個“官服賬號可通過特定違規(guī)操作登錄b服”的 bug,我猜大概是相似的原理;雖然崩鐵不上 RSA,但是每個版本 cur(那邊叫做 query_gateway)的 proto 都換,因此其實(shí)實(shí)現(xiàn)難度比上文更高。
  2. 上面這些操作基本都可以產(chǎn)出一套專用的工具鏈——解 cur 的腳本,管 protobuf 的自動化程序,集成 Injector 的 RSA Patch 啟動器,簡易的 SDK 服務(wù)器;延伸一下還有類似 MagicSniffer 的抓包工具等。手里只要有了這些東西就非常容易,反之就相當(dāng)于不可做。
  3. 看到這個視頻不知不覺就嘮了這么多,up 主或者路人看個樂就好~

【探究】提前安裝3.8?原神有可能提前安裝預(yù)下載文件來更新到新版本嗎的評論 (共 條)

分享到微博請遵守國家法律
北安市| 临安市| 绥德县| 朝阳市| 澜沧| 塘沽区| 军事| 鄂伦春自治旗| 额济纳旗| 新河县| 潼关县| 通道| 东至县| 宁陵县| 丰台区| 铜鼓县| 谷城县| 黄石市| 武平县| 林甸县| 保定市| 海淀区| 翁牛特旗| 通辽市| 余庆县| 新蔡县| 北流市| 庆安县| 侯马市| 舒城县| 榆社县| 新干县| 罗城| 弋阳县| 安平县| 绥化市| 新宾| 仁布县| 昭苏县| 聂荣县| 中西区|