Unity反编译-加密和混淆方式

写在前面:

    无论是unity工程发布的跨平台包,还是C#工程本身,都存在容易被反编译的缺陷(比如用Reflector进行反编译)。一旦程序被反编译,我们的核心算法、通信逻辑,都将暴漏。导致产品被抄袭、外挂满天飞,进而损失惨重。那么我们怎么才能防止黑客的恶意破解呢?

    对付反编译,比较成熟的方案无非就两种,一种是加密(加壳),一种是混淆。前一种方案,由于C#,和Unity的关系,我们很难做到自定义的加密。后一种,就是把程序的可读性,降低到令人发指的程度。当黑客拿到源代码后,也是气血上涌,眼前发黑。好的混淆,需要花极大的精力,才能还原。当他攻破的时候,我们改改程序再混淆,重新发布就又够他折腾的了。 


如何混淆:

    混淆很简单。原理就是查找、替换而已。市面上有很多混淆工具,最好是在混淆工具的基础上,自己再写一下,二次混淆。算法也不难。如果需要全局混淆,以及自动混淆,那么就复杂一些了,需要再加上词法分析和语法分析。

混淆后得倒的代码如下:



简单的混淆代码示例:



完整版的Python混淆代码请看我下一篇文章。


后注:

    这里还得喷一点,其实在真正的高手面前,加密混淆都用上,也只能延缓被攻破的时间。我上大学的时候,就尝试写过杀毒软件,那时候随便拿个单机软件做样本,用winhex看一下,就能看出很多东西了,再用特征库一对比,就能知道个大概。所以我觉得未来安全的趋势,文件、指令都应该是动态的。否则,只要是固定文件,总有被破的时候。 






  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值