Unity3D避免代碼被反編譯


1.Unity編譯后最終會將代碼編譯在dll里面,無論是ios還是Android解開包以后都可以拿到dll,路徑在Data/Managed/Assembly-CSharp.dll

2.IOS其實不用做代碼混淆,應該是蘋果幫我們做了,反編譯以后只能看到變量名,和方法名,但是具體的方法體內的代碼是萬全看不到的,不過安卓不行!!!

3.所以如果要反編譯某游戲的代碼,一定要去找它的Android版本,然后解開包,拿出它的Assembly-CSharp.dl

4.在Windows上去下載.NET Reflector 8這個反編譯dll的軟件,網上一大堆,但是一定要下載最新版本。目前我沒找到可以在MAC上反編譯dll的軟件,如果那位大神知道請一定要告訴我噢。

5.mac 上反編譯,請看我的另一篇文章 http://www.xuanyusong.com/archives/2675 

 

使用步驟

把Assembly-CSharp直接拖進去。

 #你好Unity3D#避免代碼被反編譯(來自我的長微博) - 雨松MOMO程序研究院 - 1

 

所有的代碼,類名,方法名,方法體,一清二楚。這代碼,這縮進,嘿嘿。AssetbundleManager應該就是他們自己寫的處理Assetbundle的下載管理類了。

 #你好Unity3D#避免代碼被反編譯(來自我的長微博) - 雨松MOMO程序研究院 - 2
如果有心的話你可以全局搜索一下”http”關鍵字 可能就能找到CDN或者Assetbundle的下載地址了。
如果避免自己的游戲被反編譯
大家可以去搜索一下Codeguard這個插件,(網上可以找到破解版)它可以防止你的代碼被反編譯。它主要是改名,把你的方法名,方法體名子修改了,變量名修改了。雖然有點弱但是它的優點是比較方便,因為可以在打包的時候自動完成代碼混淆的工作。不用自己去手工做混淆,我不知道有沒有更好的自動混淆方法,如果那位大神知道請一定要告訴我。

另外,還有一個更高級的辦法。直接找unity官方,它們有防止代碼反編譯的服務,絕對有效。還有一個方法 用Crypto Obfuscator for .Net 這東西可以完美混淆Unity for Android的代碼,也支持打包APK 時批處理腳本完成混淆部分。但是MAC 上不支持,看了一大堆混淆.net 的方法,全部是基於windows上的。 有哪位大神知道怎么在mac上進行Andorid的混淆工作。。


免責聲明!

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



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