《原神》代碼寫得真有那么不堪么?
昨天群里瘋傳原神修改器。鍋甩給了JS。。首先,JS寫一些腳本代碼,本來是沒有錯的。網(wǎng)游核心邏輯,應(yīng)該是放在后端,做好安全策略。這是在架構(gòu)階段應(yīng)該設(shè)計好的東西。先給JS洗一下。并不是它的鍋,本質(zhì)原因還是沒有把核心邏輯進行拆解。該放后端的放后端。拆了下源碼包。個人認為,沒有那么不堪。至少,音視頻文件的防護做的還不錯。。。

SO。。來康康,僅以音頻文件舉例
PCK打包
首先,采用了PCK打包。先拆解下PCK文件
解壓是自己寫的,只貼部分代碼

然后我們得到了:

可以看出,這個包里有音效、英文、中文、韓文的五類文件。
進一步解包

然后發(fā)現(xiàn)解出來的文件如下(Dragon Unpack解出來的文件也是這樣)

你會發(fā)現(xiàn),并不能直接播放:于是問題出在哪了?
BKHD還是有一道自己的加密機制。

可以基本判斷,這個部分就是Wave頭。然而正常的wave頭是 44位。這里有 56位。Why??

來看這段,混淆了Wave頭,使得主流播放器并沒有辦法正常解析WAVE頭。
JUNK:廢物。
04 00 00 00:大端計算是4位。
JUNK + 4位長度標識符 + 4位 00 00 00 00 一共12位。
去掉之后,頭變成了 56 -12 = 44位,才可以正常解析。
說到這。說人代碼JS瞎比寫得,可以退散了。。。另外 馬斯克上天的火箭的操控面版也是JS寫得。架構(gòu)做的不好,沒有語言的鍋。JS天下第一~

最后 群:711929228??
進群問題:OpenGL shader最常用的兩個Shader ??
vertext?fragment (一個算頂點的,一個算顏色的。)
PS:有問題的話,麻煩私戳我時候,給個報錯信息,以及源文件~謝謝啦~