posts - 535,comments - 60,views - 197万

分成c#代码(SDK)和c++代码(dll\so)

加解密流程:
c# new一个新类,初始化的时候传入key
c# 通过SetString方法传入待加密或者解密字符串
c# 通过Run方法,传递要求加密(0)或者解密(1)
c# 通过GetString方法获取加密或者解密结果

dll(c++)功能:
核心加解密函数


密钥保密:
key在c#保存,使用64位字符串,按特定位取,c#采用rsa解密
salt在c++保存,取sha256
iv在文件中保存,需要另外一个工具生成文件内容,游戏程序只读文件。

工具默认规则为生成128位长度字符,按奇数1、3、5位把base64后的iv字符串插入,插入完毕下一个奇数位,再补一个“=”

 


混淆方案:
1、dll对外没有直接加解密函数,只能按步骤调用
2、dll内部加解密有默认key\salt\iv,如果被人直接调用,不会出错
3、key\salt\iv保存在三个不同地方,组合在一起才能正确解密
4、函数定义和变量命名避免key\encrypt\decrypt等
5、unity最终使用IL2CPP编译

 

posted on   凌度  阅读(2278)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
历史上的今天:
2007-04-23 编译器错误信息: CS0016: 未能写入输出文件“c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示