分成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编译
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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\