就是先用kali扫一下,手机信息。根据开了什么端口等等来判断如何去做,是不是可以直接弱口令。
王者荣耀 原神 永劫无界 明日方舟 森林之子
工程建设与数字城市 汽车开发
创建项目 导入资源 搭建场景 添加组件 编写逻辑 程序测试 打包发布
两种脚本后端 Mono IL2CPP(最近常用)
Mono 是跨平台的 .Net Framework 的实现。Mono 做了一件很了不起的事情,将 CLR 在所有支持的平台上重新实现了一遍(包含手机上常用的安卓平台和Switch,PS4,这样的游戏机平台),并且mono还将 .Net Framework 提供的基础类库也重新实现了一遍。
Unity当年选用Mono而不是几乎只能在Windows上运行的.Net Core 就是看重了Mono的跨平台支持。并且Mono是一个开源软件,Unity也很方便在Mono的基础上做修改和微调。
Mono打包先转化为中间语言,然后 在运行的时候再把中间语言翻译为机器码 总之,不会在编译的时候翻译为机器码,而是在运行的时候再编译
Just in time 只有运行的时候才会编译
打包速度快 只是一个翻译官
翻译为中间代码
支持运行时代码执行
必须将代码发布成托管程序集(.dll)
Mono VM的移植非常麻烦,python,java都是解释型语言,都要通过虚拟机来做事,来调用虚拟机的函数,每个平台都要重新翻译成哪个平台的机器语言,来匹配
Mono版本授权受限,很多C#新的特性无法使用 后期收费了
存在 游戏名_Data
文件夹
开发人员代码被编译打包到 游戏名_Data\Managed\Assembly-CSharp.dll
里面
常规C#逆向流程
使用dnSpy
对该DLL
进行反编译—支持动调调试
分析核心逻辑实现代码,约等于对着源码阅读
根据分析下结果对代码进行patch,实现某种变态功能
patch–打补丁
IL to C++
ahead of time 会把中间代码在翻译成C++代码,直接用C++编译器就够了, 直接给他都编译好
相比Mono构建更慢 程序效率高 多平台移植方便
存在UnityPlayer.dll
存在 游戏名_Data
文件夹
没有Mono
文件夹
游戏名_Data
目录下有il2cpp_data
文件夹
相比Mono更复杂些
GameAssembly.dll
一般很大,得至少五十兆,非常大,所有代码都在里面
用dumper
工具回复符号
用IDA对dll反编译
分析核心逻辑实现的代码
根据分析结果进行patch , 实现某种变态功能