Commit Graph

57 Commits (6ec1a74d577b6aa6cf16e6588aaf989ca035913a)

Author SHA1 Message Date
walon 0985b3d06e 修复$$Obfuz$RVA$的所有rva字段累计长度超出16k引发的在hybridclr下运行出错的问题。此问题是hybridclr的bug,因为ldslfd之类指令要求offset小于16k。 2025-07-23 20:56:38 +08:00
walon d4133f1e8a 移除不必要的对NUnit.Framework的引用 2025-07-23 19:34:42 +08:00
walon 3bcf204f69 ExprObfus的BasicObfuscator支持混淆参数类型为IntPtr的表达式 2025-07-21 11:37:29 +08:00
walon 3bcb093467 由于EvalStackObfus会显著增加混淆后的程序集大小(当obfuscationPercentage=1.0时大约增加了5倍),将默认obfuscationPercentage改为0.05,并且在global obfuscationPercentage超过0.1时打印警告 2025-07-14 18:12:54 +08:00
walon 083ddd3035 对于标记`[BurstCompile]`的类型,除了类型名和函数名以外的仍然混淆 2025-07-11 19:08:25 +08:00
walon 2887231df7 禁止混淆带`[BurstCompile]`的函数 2025-07-11 18:03:25 +08:00
walon e3d9d7a08e 重构GroupByModuleEntityManager代码 2025-07-02 18:57:53 +08:00
walon 4b0c5d7521 CallObufs新增Delegate Proxy支持 2025-07-01 18:46:09 +08:00
walon 9b9eb6d12d 重构CallObfusPass代码 2025-06-30 20:02:49 +08:00
walon 655c2fe07f `ObfuzSettings.enable`字段移到`BuildPipelineSettings`中 2025-06-28 20:38:27 +08:00
walon a833cf26e1 修复MonoBehavoiur和ScriptableObject的属性没有混淆的bug 2025-06-28 10:49:30 +08:00
walon 7a7ef72728 支持控制流混淆 2025-06-28 10:10:50 +08:00
walon ac9c96b4b9 删除CallObfusPass中无用代码 2025-06-26 17:28:30 +08:00
walon f3bde846ea CallObfuscationSettings新增设置obfuscateCallToMethodInMscorlib 2025-06-26 11:01:00 +08:00
walon 905da05afc 重构:将CallObfus的特殊白名单函数计算逻辑从 ConfigurableObfuscationPolicy移到 CallObfusPass 2025-06-26 10:49:14 +08:00
walon 62deffa10d 1. 修复CallObfus混淆了Enum.HasFlag和GetHashCode函数后,Unity 2021的il2cpp生成cpp代码时发生内部异常的问题
2. 修复CallObfus混淆了MethodBase.GetCurrentMethod导致返回了错误函数的严重bug
2025-06-26 10:09:01 +08:00
walon 832a955167 修复DefaultObfuscator抛出异常的问题 2025-06-22 10:48:55 +08:00
walon 5cdc4c9f92 修复符号混淆开启Debug时由于没有读取mapping文件导致增量混淆结果不一样的bug 2025-06-22 10:48:08 +08:00
walon 0508421850 添加ControlFlowObfus基础代码 2025-06-22 10:39:57 +08:00
walon 0ad96daa32 代码清理 2025-06-22 10:39:31 +08:00
walon 1f9aac59ee 调整表达式混淆顺序,改到EvalStackObfus之前 2025-06-21 11:43:04 +08:00
walon 338d2acf05 ExprObfus默认混淆级别的None改为Basic 2025-06-21 11:42:43 +08:00
walon d8fb8bc630 CallObfus ConfigurableObfuscationPolicy默认对所有调用都开启cacheIndex 2025-06-21 11:21:24 +08:00
walon 67990f841a 支持EvalStackObfus 2025-06-21 10:59:39 +08:00
walon f8571ada9e const加密支持多种混淆方式 2025-06-21 09:20:36 +08:00
walon 8314ed4327 支持 MostAdvancedObfuscator 2025-06-20 18:58:54 +08:00
walon f247719bc1 实现 AdvancedObfuscator 2025-06-20 18:23:38 +08:00
walon 9c445213b5 支持配置 obfuscationLevel和 obfuscationPercentage,支持advancedObfuscation::neg 2025-06-20 17:34:25 +08:00
walon 111d3a7dc1 支持部分 AdvancedObfuscator 2025-06-20 16:56:14 +08:00
walon 8288042e94 实现 ExprObfus,暂时只支持BasicObfuscator 2025-06-20 12:06:01 +08:00
walon b84d158fac 修复 ReflectionCompatibilityDetector处理Enum.TryParse<T>,并且T包含泛型参数时抛出异常的bug 2025-06-16 17:02:31 +08:00
walon 0fe0a91793 修复 ReflectionCompatibilityDetector错误地对未混淆程序集中Enum打印错误日志的bug 2025-06-16 11:41:18 +08:00
walon d60d0e02dd BasicBlockCollection新增参数决定是否计算inLoop 2025-06-15 10:55:09 +08:00
walon df53a0bd1b 修复 ReflectionCompatibilityDetector检查Enum.Parse TryParse GetName GetNames时的判定条件为枚举类型名被混淆的错误,应该是枚举项被混淆 2025-06-14 09:16:06 +08:00
walon 174140c5da 修复 ReflectionCompatibilityDetector检查Enum.ToString时的判定条件为枚举类型名被混淆的错误,应该是枚举项被混淆 2025-06-13 21:31:05 +08:00
walon 3f00d5ca91 新增 ReflectionCompatibilityDetector 2025-06-13 21:00:58 +08:00
walon 6226c3a867 - 修复 RvaDataAllocator::GetDataHolderType 创建TypeDefUser未disableTypeDefFindCache的bug
- 使用 DisableTypeDefFindCacheScope 重构创建TypeDef类型自动disable和enable TypeDefFindCache
2025-06-12 15:07:13 +08:00
walon a61f31e289 不混淆标记了`[Serializable]`特性的枚举类的枚举项名 2025-06-12 14:25:24 +08:00
walon ea5a8e62ce 修复当混淆程序集虚函数override了nonObfuscatedButReferencingObfuscatedModuleSet程序集中虚函数,错误地将nonObfuscatedButReferencingObfuscatedModuleSet中虚函数也混淆的bug 2025-06-12 10:30:42 +08:00
walon 83598d6805 更精确地进行虚函数override匹配,检查返回值和参数的匹配性 2025-06-12 09:49:24 +08:00
walon a109511f9e 新增 ObfuscationTypeMapper及相应的Instinct函数RegisterReflectionType 2025-06-10 13:56:05 +08:00
walon 3867a98d48 修复未Preserve混淆后的名字,导致新增的混淆函数名与旧的混淆函数名冲突的严重bug 2025-06-10 13:55:09 +08:00
walon 025f900f4e 修复 CallObfus生成Dispatch函数对被调用排序造成调用到错误函数的严重bug 2025-06-10 13:53:53 +08:00
walon 10d450c4e3 生成稳定的call obfus的Dispatch函数名 2025-06-10 08:32:31 +08:00
walon ac6ca08d87 优化InstinctPass 2025-06-10 08:29:47 +08:00
walon 260f8b8cc5 新增InstinctPass,将 ObfuscationInstincts::FullNameOf和NameOf函数转为混淆前的原始类全名和类名 2025-06-09 22:57:40 +08:00
walon 40f6c90494 修复在Unity 2020及更低版本上的编译错误 2025-06-09 17:21:26 +08:00
walon 2ecf363d0b 修复 VirtualMethodGroupCalculator 计算一个类型继承了多个interface,并且这些interface包含相同签名的函数时,未映射为相同虚函数名的bug 2025-06-09 13:28:23 +08:00
walon 75a4e2cdad 符号混淆中method和field名全局唯一,方便还原混淆符号 2025-06-09 13:25:04 +08:00
walon b7d2f69321 生成混淆名全局唯一,而不是本程序集内唯一,否则DeobfuscateStackTrace很有可能因为不同程序集的类型名重名而无法分辨准确类型 2025-06-09 09:16:01 +08:00