一次U3D DLL加密的记录(一)
这篇文章主要针对windows下对u3d游戏的加密过程
主要步骤:
①:编译和替换加密后的libmono.so
②:导出安卓工程
③:加密和替换Assembly-CSharp.dll
④:用eclipse等工具导出apk
首先参考一下我的《一次编译libmono.so的记录》
接着把项目导出成安卓工程,在xxx/assets/bin/Data/Managed下找到Assembly-CSharp.dll,然后写个文件读写程序进行破坏c#程序集结构,从而达到该程序集解不开的目的
示例程序代码如下:
1 #include <stdio.h> 2 3 #define MAXLEN 1024 4 5 void main() 6 { 7 8 FILE * outfile, *infile; 9 10 infile = fopen("Assembly-CSharp.dll", "rb"); 11 12 outfile = fopen("Assembly-CSharp-tmp.dll", "wb" ); 13 14 unsigned char buf[MAXLEN]; 15 16 if( outfile == NULL || infile == NULL ) 17 { 18 return; 19 } 20 21 int rc; 22 int _index = 0; 23 while( (rc = fread(buf,sizeof(unsigned char), MAXLEN,infile)) != 0 ) 24 { 25 if (_index == 0) 26 buf[0] += 1; 27 fwrite( buf, sizeof( unsigned char ), rc, outfile ); 28 _index++; 29 } 30 31 fclose(infile); 32 33 fclose(outfile); 34 35 return; 36 }
通过运行加密程序,会得到一个输出文件Assembly-CSharp-tmp.dll,这个就是加密过的文件了,已经不再是c#程序集了。把原先的Assembly-CSharp.dll替换掉,就能达到加密的效果了,配合解密的libmono.so打包出来的apk就能达到一般的代码加密效果了。
不过大家也可能想到了,这么繁琐的替换过程,能不能用一键功能代替,答案是肯定的,linux和mac下都有sh自动打包的教程了,那么参考我的下一篇文章
一次U3D DLL加密的记录(二)
,就能达到在windows下一键打包。
转载于:https://www.cnblogs.com/xijianchui/p/5242248.html
一次U3D DLL加密的记录(一)相关推荐
- 一次U3D DLL加密的记录(二)
上一篇文章一次U3D DLL加密的记录(一)已经介绍了Assembly-CSharp.dll的加密和打包方法,但每次都得导出安卓工程,接着替换资源,再导出apk,这样以来是非常繁琐的. 这篇文章主要针 ...
- Unity - 游戏加密方案-DLL加密方法记录
Unity - 游戏加密方案-DLL加密方法记录 DLL加密 Unity中的自定义脚本都会打包到Assembly-CSharp.dll这个DLL中,所以目前常见的游戏加密方案就是,用对称加密算法加密A ...
- Mac 下编译 libmono.so 和 DLL 加密详解
Unity 打出的安卓包为了防止反编译,需要对 Assembly-CSharp.dll 加密处理.Assembly-CSharp.dll 是由 libmono.so 运行时读取然后在 mono 虚拟机 ...
- unity打包实现对dll加密
Unity 打包后防破解 DLL加密 前言:之前有个活,需要将公司的unity程序进行加密.本来想使用混淆插件进行简单的混淆,后来发现有问题所以选择dll加密.期间碰到很多坑,记录一下. 1.加密方案 ...
- Unity3D DLL加密
网上搜了很多教程 就这篇成功了 转载一下 原文 http://blog.51cto.com/snailwalk/1745970 Unity3D打包android应用程序时,如果不对DLL加密,很容易被 ...
- VS调试dll详细过程记录
VS调试dll详细过程记录 还可以参考博客: https://blog.csdn.net/u014738665/article/details/79779632 在我们写的程序中有时候调用dll,并且 ...
- 文华财经指标公式大全,通达信指标加密破解DLL加密防破解技术方法
STICKLINE(做多 AND C<O,C,O,0.3,0),COLORFF00FF; STICKLINE(做多 AND C>=O,C,O,3,1),COLOR0000FF; {ST ...
- 金蝶K3加密许可记录清除策略浅析
1.1 应用场景及需求 加密许可记录是监控所有客户端的系统登录情况及加密站点许可的使用情况的信息表,可以统计客户端登录的应用系统即使用的模块,帐套名称.使用方式.登录用户名.工作站名称和登录时间的相关 ...
- Unity3d Assembly-CSharp.dll加密
解密无非就为了 修改游戏功能数据.提取游戏资源.加入自己想加的广告... 加密就是保护游戏不被恶意修改,经常看到有人说:"加什么密,你以为自己写的代码很NB?见不得人?" 我只想说 ...
- 腾讯Unity3D手游 dll加密分析
此文章的技术内容已过时,仅当做技术存档参考.腾讯的Unity游戏已不再mono.so中加密dll了,而是通过libtprt.so来hook了加载Assembly-CSharp.dll的地方进行解密,解 ...
最新文章
- WWDC 2011 苹果全球开发者大会【中文】
- ES6-12 array/数值拓展、ArrayOf、ArrayFrom
- ZT:利用Google搜索功能来突破封锁下载
- MacBook 推出移动硬盘时总是提示有程序在使用它,如何解决?
- 解读华为云原生数据库设计原则,打破传统数据库上云瓶颈
- Selenium API-WebDriver 方法
- C# 获得 当年1月1号
- 某学校新买了一批计算机,2020年度初中信息技术考试选择题.doc
- 如何删除尾随换行符?
- sigar 网络 java_java-Sigar网络速度
- Print Conductor中文版
- OpenCms创建网站过程图解
- 百度AI图像识别——红酒识别、货币识别、车辆检测等
- hive插入多条数据sql_HIVE sql使用总结
- 漫反射与Lambert模型
- nginx 代理解决跨域问题
- 知识:ubuntu硬盘挂载详细步骤:
- 小百合海外站 lilybbs.us or woft.net 教育网 paradiso.cn:10078
- Canny边缘检测算法(python 实现)
- RPA设计实施、开发和单元测试
热门文章
- 天梯赛座位分布-一点都不垃圾的模拟题,代码长度超过100行的都是傻子
- 老司机带你了解微信/支付宝支付的相关概念
- Ubuntu /CentOS 设置开机启动,添加自定义系统服务,自定义开机启动
- ubuntu 14.04中安装Jenkins
- Eclipse、STS 常用设置、操作 与 常用快捷键
- JavaScript String 对象、Math 对象使用详解
- BZOJ1815 SHOI2006有色图(Polya定理)
- EA(Enterprise Architecture,企业架构)
- 架构设计师(Architect)的专业与角色
- iview中position: 'fixed'最顶层z-index