逆向工程
逝水追风
一名初级Unity程序员
展开
-
《部落冲突》英雄角色的渲染方式
部落冲突的建筑、地面和小兵都是2D的序列帧,英雄采用3D渲染到RenderTexture的方式,以便和2D的环境进行正常的遮挡关系。最终效果图:抓帧证明:...原创 2019-12-28 11:26:52 · 1287 阅读 · 0 评论 -
Soul Knight破解小记
记一次对Soul Knight的修改,实现了人物全解锁以及无限宝石的功能。原创 2017-03-01 10:04:41 · 8464 阅读 · 0 评论 -
ILSpy反编译Unity协程
问题分析直接用ILSpy或类似工具反编译出的C#脚本里协程和编写时明显不同:无参数协程示例:private IEnumerator startCt_result(){ ScGame.c__IteratorE c__IteratorE = new ScGame.c__IteratorE(); c__IteratorE.<>f__this = this; retu原创 2017-03-30 01:18:23 · 4200 阅读 · 0 评论 -
Unity手游《梦间集》黑盒技术浅析
重庆完美世界前几天公测了一款女性向的《梦间集》武侠手游,据说画质和游戏性相当不错,战斗模式居然不是流行的卡牌和回合制,而是传统的SLG,这对喜欢玩三国志曹操传的我有很大的吸引力,下午下载玩了下,感觉蛮不错的,JP/CN双语音 + 二次元飘逸帅哥美女(当然是帅哥比较多)......原创 2017-07-30 00:57:12 · 2025 阅读 · 3 评论 -
浅谈Unity的资源管理系统
一. 外部资源的导入外部导入的资源主要有图片、模型(可能包含动画)、音频等。每种类型的文件都有很多种类型,如图片有png、psd、jpeg、tga等,当导入这些文件的时候Unity会将其处理问自己的数据格式YAML,保存在Library下面,同时在Assets下面在该资源文件的位置生成meta文件,记录其GUID和一些设置信息,如FBX文件的设置、图片导入后用户配置的Sprite的信息。含有子资源...原创 2018-04-13 01:32:32 · 2367 阅读 · 1 评论 -
IL2Cpp简易加密方法
Mono作为backend的时代,破解总的来说还是容易的:修改libmono.so :从内存动态搜素dll特征值动态dump 混淆Dll:dnspy作者的de4net可以反混淆大部分混淆器 修改Dll的PE结构(腾讯MTP):可以用XPose抓取Dll主体配合一些工具修复PE头 动态解密Dll Method(网易易盾):这一招最狠,每次只能Dump一部分Method实现,除非分析解密的s...原创 2019-06-24 18:38:10 · 11379 阅读 · 3 评论 -
Unity序列化文件到底是如何关联MonoBehaviour的
我们知道Unity序列化文件的格式是YAML,在Inspector面板上可以拖拽的脚本、资源会被视为引用。以下YAML语句描述了一条对资源的引用:{fileID: -1155515603, guid: 7f2f46c0507666e498f75cc4d6f91a07, type: 3}打包后,GUID是一个32长度的string,Runtime进行处理时速度较慢,因此会被转换为int64...原创 2019-07-03 23:25:57 · 2268 阅读 · 2 评论 -
在Unity中复刻《海岛奇兵》海水渲染
周末花了一天时间在Unity中复刻了一下《海岛奇兵》海岛场景海水的渲染效果,先上目前复刻的效果图:总体上还原了海水深度、海面波光、海水流动、海岸泡沫的效果。复刻的思路其实就是拿Adreno Profiler、SnapDragon和Intel GPA进行抓帧,随后分析渲染用到的Shader、uniform参数。记录一些踩到的坑:AdrenoProfiler极容易报错,但是抓到的R...原创 2019-08-26 01:00:29 · 2278 阅读 · 1 评论