首页
社区
课程
招聘
[原创]HybridCLR C# 方法体解密记录 V1 —— 以23年的少女前线2:追放为例
发表于: 2025-8-27 16:22 708

[原创]HybridCLR C# 方法体解密记录 V1 —— 以23年的少女前线2:追放为例

2025-8-27 16:22
708

HybridCLR C# 方法体解密记录 V1 —— 以23年的少女前线2:追放为例

本来标题我想写 HybridCLR 标准代码加固解密记录 的,但考虑到不确定ym是否基于社区版的基础上作的修改,因而作罢

1. 初探

在翻文件目录的时候,我发现了在 GF2_Exilium_Data\StreamingAssets\ClientRes_Windows\Codes 下有很多 bytes 文件,且文件名都是 Unity 在 Mono 模式编译下的编译产物

Alt text

扔进 dnSpy 看一下,方法识别没有问题,但是方法体里面的 IL 指令全部被混淆,没办法解析

Alt text

2. 研究

看了一下之前导出的 dump 文件,发现这玩意的解释运行是基于 HybridCLR

Alt text

对于 HybridCLR 的源码解析,知乎有一篇文章写的不错 【划时代的代码热更新方案——hybridclr源码流程解析】

但对于我们调试苦逼人来说,还是官网的指点比较有性价比 () 【官网链接-HybridCLR源码结构及调试】

在官网中提到了,IL层指令集转换在 HybridCLR/transform/transform.cppHiTransform::Transform 函数,那么我们就去看看这个函数,多半解密也在这里面

Alt text

3. 分析

打开 IDA,找到 HiTransform::Transform,修一修结构体,一点点对照社区源码 ,发现有一段代码是多出来的

alt text

这段代码很明显对 IL 字节码进行了异或解密操作,而解密的 Key 由 exceptionClausesSizelocalVarCountcodeSize 计算得来

alt text

4. 解密

照着伪代码把 Key 计算过程和解密过程抄下来,就可以解密了

alt text

alt text

碎碎念

本文其实 2023 年年底就写的差不多了,只是因为懒没写完 :-

alt text

最近在逆蓝色原神(bushi)的时候,发现 HybridCLR 又换加密算法了,而且比两年前少前二这个还恶心,遂想起这个半成品然后写出来发发 (ˉ﹃ˉ)

今年也高考完了,考得不好去了个双非的信安,悲 :(


[培训]Windows内核深度攻防:从Hook技术到Rootkit实战!

收藏
免费 3
支持
分享
最新回复 (2)
雪    币: 546
活跃值: (1315)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
解那个没用他目前是没用多少hyb的
2025-8-27 17:27
0
雪    币: 200
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
大佬HybridCLR专业版做的代码加固你知道怎么解吗?就是hook Assembly.load拿到的DLL文件无法用dnSpy直接打开的那种
2025-9-9 10:29
0
游客
登录 | 注册 方可回帖
返回