Unity3D游戏开发之反编译(android项⽬)
我最近研究发现80%以上的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的软件,如果那位⼤神知道请⼀定要告诉我噢。
android最新版使⽤步骤
把Assembly-CSharp直接拖进去。
所有的代码,类名,⽅法名,⽅法体,⼀清⼆楚。这代码,这缩进,嘿嘿。AssetbundleManager应该就是他们⾃⼰写的处理Assetbundle的下载管理类了。
如果有⼼的话你可以全局搜索⼀下”http”关键字可能就能到CDN或者Assetbundle的下载地址了。
如果避免⾃⼰的游戏被反编译
⼤家可以去搜索⼀下Codeguard这个插件,(⽹上可以到破解版)它可以防⽌你的代码被反编译。它主要是改名,把你的⽅法名,⽅法体名⼦修改了,变量名修改了。虽然有点弱但是它的优点是⽐较⽅便,因为可以在打包的时候⾃动完成代码混淆的⼯作。不⽤⾃⼰去⼿⼯做混淆,我不知道有没有更好的⾃动混淆⽅法,如果那位⼤神知道请⼀定要告诉我。
另外,还有⼀个更⾼级的办法。直接unity官⽅,它们有防⽌代码反编译的服务,绝对有效。
()
本⽂固定链接:
转载请注明: 2014年06⽉01⽇于发表
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论