關於破解cocos游戲包一些感想


最近破解游戲包,出現了離奇的烏龍事件, 本來反編譯工具一般可以直接看出xxtea key字符串。

我用這個字符串解密發現解密出來的還是亂碼, 於是我就斷定是key 經過處理了, 於是就想着動態調試,查看寄存器中的key值。

花了很多時間想着要動態調試,結果一動態調試就崩, 有的app加了反調試功能,沒法動態調試,有的沒有加反調試功能,也沒法動態調試,可能是ida版本或者jeb版本太低吧。  

因為我用的真機調試,不存在指令轉換的問題。沒法動態調試,就嘗試修改二進制文件,讓其輸出xxtea key, 結果輸出的xxtea key和反編譯出來的key都是同一個key,

key並沒有做任何處理.  我是不輕易言棄的人,肯定越挫越勇, 看了cocos源碼, 才發現代碼可能會被壓縮。  經過解密,再解壓縮,最終拿到了源碼。   

這次烏龍就是我只解密了,沒有解壓縮,所以看到是亂碼。  內心一萬個草泥馬啊

 

我以前做游戲加密是修改xxtea key算法,讓別人即使拿到key也無法正確解密

有的游戲包會加密key

有的游戲包會加密並壓縮

有的游戲包會自定義加密

有的游戲包會加殼

當然有的游戲包修改了解釋器(lua, js), 這種逼格很高,一般人玩不轉。 這種修改會直接影響字節碼。

總總的總總,不管加密方式(xxtea, ase, des等)如何,壓縮方式(zip, gzip)如何,  游戲包最終會幫忙解密, 也就是說游戲包是最好的解密工具, 其他解密都是浮雲。

這里解密的前提是一定要有殼的先砸殼,否則一切解密都是扯蛋。 砸殼也是一門學問,其思想核心就是內存dump.  

 

於是乎,想了一個方式, 直接讓游戲包還原我們想要的源碼, 這就需要靜態注入和動態注入了。直接將解密的源碼輸出到文件。

靜態注入修改二進制文件,把輸出文件的功能寫到二進制文件。動態注入就是運行時注入,不修改原二進制文件。

這里我傾向靜態注入,思路是注入一行函數,   例如: 在解密完成的地方加一行 exec("WFile filename 111111 123")   11111是解密的內容地址,123是內容長度。然后所有的交給WFile處理。

WFile是預先編寫好的可執行程序, 給一個最低權限,也就任何人任何程序都可以執行它。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM