unity3d 加密比较靠谱的加密方式有哪些

自己撸了个Unity 加密保存的类_unity3d吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:57,284贴子:
自己撸了个Unity 加密保存的类收藏
序列化对象加密保存到PlayerPrefs但是只是静态保存方法 还需要一个脚本来调特别感谢
UserMemory.cs大小:3.55KB下载:0次转存:0次文件已失效
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或unity3d资源包加密问题笔记_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
unity3d资源包加密问题笔记
上传于||文档简介
&&实​现​资​源​包​加​密
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩2页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢unity3d官方培训机构:游戏加密解密那些事_快来跟我学_新浪博客
unity3d官方培训机构:游戏加密解密那些事
加密主要是为了防止美术资源被窃取(换皮)和代码被恶意修改(外挂辅助,广告,二次打包)
1.资源的加密
先说说Unity加载资源的方式,第一种Resources.Load,第二种AssetBundle。第一种是Unity缺省的资源格式,如果对这个资源进行加密,Unity将会无法识别第二种是先通过BuildPipeline.BuildAssetBundle把资源打成AssetBundle,在对AssetBundle进行加密。加载资源时,用WWW把加密后AssetBundle下载下来,进行解密,解密后在通过AssetBundle.CreateFromMemory动态创建出AssetBundle进行解密。
2.代码的加密
Unity是一个基于Mono框架的跨平台游戏开发引擎,Unity所使用的Mono属于Mono开源项目的分支在Unity中,我们写的代码会编译到Assembly-CSharp.dll和Assembly-CSharp-firstpass.dll(这个文件不一定有,Plugins或Standard
Assets中的代码会编译到这个文件里)iOS平台:目前新版Unity用L2CPP方式编译的游戏已经看不到这2个文件了,代码被编译到ios
navite代码中了,所以在iOS平台下就不考虑代码加密了。Android平台:依旧能在\assets\bin\Data\Managed\
目录下找个这2个文件第一种是对代码进行混淆,虽然有几个混淆软件CodeGuard、CryptoObfuscator、de4dot...可以用用,但是有很多限制,保护代码的作用不是太大第二种是对Assembly-CSharp.dll和Assembly-CSharp-firstpass.dll进行加密(有一定难度,需要自己从新编译修改Mono库)先下载Unity-Mono源码:/Unity-Technologies/mono&直接下Zip包(注意Tag版本与开发用的Unity版本要相同)找到/mono/metadata/image.c这个文件查看mono_image_open_from_data_with_name这个方法
MonoImage *
mono_image_open_from_data_with_name (char *data, guint32
data_len, gboolean need_copy, MonoImageOpenStatus *status, gboolean
refonly, const char *name)
& MonoCLIImageInfo *
& MonoImage *
& if (!data || !data_len) {
& & if (status)
& & & *status =
MONO_IMAGE_IMAGE_INVALID;
& & return NULL;
& if (need_copy) {
& & datac = g_try_malloc
(data_len);
& & if (!datac) {
& *status = MONO_IMAGE_ERROR_ERRNO;
& & & return
& & memcpy (datac, data,
data_len);
& image = g_new0 (MonoImage, 1);
& image-&raw_data =
& image-&raw_data_len =
& image-&raw_data_allocated =
& image-&name = (name == NULL) ?
g_strdup_printf ("data-%p", datac) : g_strdup(name);
& iinfo = g_new0 (MonoCLIImageInfo, 1);
& image-&image_info =
& image-&ref_only =
& image-&ref_count = 1;
& image = do_mono_image_load (image, status, TRUE,
& if (image == NULL)
& & return NULL;
& return register_image (image);
第一个参数char
*data这个指针指向运行时Assembly-CSharp.dll和Assembly-CSharp-firstpass.dll的内存地址,
可在该方法内添加或调用对data解密的算法
1.AssetBundle加密了那么加密算法就在Assembly-CSharp.dll或Assembly-CSharp-firstpass.dll中,用ILSpy或Reflector
C#反编译工具就能看到源码,找到WWW下载AssetBundle
的地方就能找到加密算法。
2.dll加密用IDA类似的反汇编工具加载libmono.so这个文件,搜索到mono_image_open_from_data_with_name这个方法,简单的分析一下就可以找到加密算法。也可以用IDA动态调试,忽略加密算法,dump出解密后的dll文件(动态dump比静态分析要容易简便,但静态分析可以看看别人用的加密算法,同时也能提高自己的分析能力)(来源:)
快来跟我学
博客等级:
博客积分:0
博客访问:2,801
关注人气:0
荣誉徽章:扫一扫,访问微社区
后使用快捷导航没有帐号?
签到成功!您今天第{todayrank}个签到,签到排名竞争激烈,记得每天都来签到哦!已连续签到:{constant}天,累计签到:{days}天
当前位置: &
查看: 6262|回复: 5
unity代码加密混淆
5654/1000排名<font color="#FF昨日变化3主题帖子积分
熟悉之中, 积分 654, 距离下一级还需 346 积分
熟悉之中, 积分 654, 距离下一级还需 346 积分
在线时间100 小时
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
才可以下载或查看,没有帐号?
& &&&这是小弟最近不容易研究的成果,学时间不长,写的不好请大家多多见谅。。。。。谢谢!
& && &unity在Build后生成的dll文件是很容易被一些反编译工具反编译,& &比如(reflector)就可轻易的使你的代码赤裸裸展现在别人的面前,但是unity的dll也不可像.net的dll那样有(.net reactor、Dotfuscator Community Edition等等工具)可对其加密混淆,在unity代码中的函数比如(Start、Update、OnGUI)的函数是不可被混淆的,在混淆自后毫无疑问的程序将不可运行,这些函数将调用失败,这显然是不行的。哎!这个unity中的代码混淆起来真是限制多多啊.
不过有就有解决方法
& && & 现在小编就把解决这个问题的几个方法发布一下:
方法一:使用Obfuscator插件,此插件在unity圣典上市可以下载到的.此插件会把你的变量混淆;
下载此插件后创建一个新的unity项目,导入此插件在工具栏出现Tools
然后点击Tools选择你要混淆代码所在的文件夹,接下来就会自动运行进行混淆。
到此over了,嘻嘻嘻.................
在混淆之后你运行场景有的功能可能会失效,如果你代码中有js调用C#要特别注意GameObject.GetComponent(Type);这个可能会获取不到你要的脚本或组件 。
方法二:使用CodeGuard插件:
此插件需要在 Asset Store中购买,价值40刀。(真贵..........靠!)
https://www./#/content/8881CodeGuard
这个插件也有一个便宜的,价值50人名币,在圣典的资源上......
方法三:是一位网友在博客中提到的:
在项目初期就考虑如何对项目进行分层,将需要保护的内容放置在被混淆的层中。
/thejavafan/item/5bc8d20a23f0f7d8dde5b033
这就是小编现在知道的所有方法了,希望对大家有所帮助....如果大家有其他的方法一定要告诉小编,不胜感激!
unity需要打代码吗;unity dll加密;学了.net再学unity3d;下载;unity3d 5.0圣典;unity中怎么调用c中跟unity有关的代码;unity移动代码;unity 代码;unity 纯代码;unity使用dll加密;学了.net unity3d;unity3d圣典从哪里下载;unity3d圣典4.1下载;unity3d圣典是什么;unity3d圣典4.1;unity调用c dll
(68.81 KB, 下载次数: 9)
17:00 上传
每日推荐:
72794/5000排名<font color="#FF昨日变化主题帖子积分
日久生情, 积分 2794, 距离下一级还需 2206 积分
日久生情, 积分 2794, 距离下一级还需 2206 积分
蛮牛币2928
在线时间820 小时
国外游戏都混淆代码么,为什么国内老纠结这块啊
每日推荐:
5654/1000排名<font color="#FF昨日变化3主题帖子积分
熟悉之中, 积分 654, 距离下一级还需 346 积分
熟悉之中, 积分 654, 距离下一级还需 346 积分
在线时间100 小时
国外游戏都混淆代码么,为什么国内老纠结这块啊
我也纠结这个问题,老总非让加密,我就认为没什么必要,浪费精力..........又不是什么保密的东西,就是不让人看源码.....
每日推荐:
4410/500排名<font color="#FF昨日变化4主题帖子积分
四处流浪, 积分 410, 距离下一级还需 90 积分
四处流浪, 积分 410, 距离下一级还需 90 积分
在线时间78 小时
呵呵,国内就是这样,明明是垃圾玩意还当宝,固步自封,井底之蛙,国外你比好几百倍的东西都开源了
125/50排名<font color="#FF昨日变化15主题帖子积分
注册看看, 积分 25, 距离下一级还需 25 积分
注册看看, 积分 25, 距离下一级还需 25 积分
在线时间5 小时
国内山寨能力超强,没办法啦
3225/300排名<font color="#FF昨日变化12主题帖子积分
偶尔光临, 积分 225, 距离下一级还需 75 积分
偶尔光临, 积分 225, 距离下一级还需 75 积分
蛮牛币1380
在线时间75 小时
所以很多老板做游戏也就只能做做国内,
但却不知道丹麦一个国家移动领域开发者都不到600人,
那么大的市场也就只能赚点国内小钱。
社区QQ达人
使用QQ帐号登录论坛的用户}

我要回帖

更多关于 unity3d加密软件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信