Commit Graph

101 Commits (c3c53b2797415153c7c09fbee63576c1c235fc04)

Author SHA1 Message Date
walon c3c53b2797 修复 EvalDataTypeWithSig计算ldarga等取引用的指令的栈数据类型未包含具体类型的bug 2025-08-12 14:19:11 +08:00
walon 0889f730fd - 修复EvalStackCalculator计算Ref类型栈变量全部归结来IntPtr类型,导致il2cpp生成代码出错的bug
- 修复MethodControlFlowCalculator将box后的值类型变量类型定义为值类型的bug,正确应该是object
2025-08-12 12:46:34 +08:00
walon 87cd3caf44 change: 禁用EvalStackObfus pass,因为它的性价比太低了。如果将来无法优化,则会被移除 2025-08-07 21:32:00 +08:00
walon 8dd6352028 fix: 修复类型上包含[ObufzIgnore(ObfuzScope.TypeName)]导致类型内所有函数体不混淆的bug 2025-08-07 18:55:17 +08:00
walon 739fcb24c5 WatermarkPass不对DOTS函数注入水印指令 2025-08-06 18:27:15 +08:00
walon 246a49f8ba fix: 修复WatermarkPass某些情况下导致栈不平衡的bug 2025-08-06 15:21:23 +08:00
walon b68571de7e fix: 修复在Unity 2019上的编译错误 2025-08-05 14:20:46 +08:00
walon d52a9e7016 Code Clean Up 2025-08-03 12:37:44 +08:00
walon f5c2fe94ea WatermarkPass不打印注入日志 2025-08-02 23:22:26 +08:00
walon 54bcae5178 代码水印注入特征IL指令 2025-08-02 23:15:17 +08:00
walon 1e027e6299 feature: 支持代码水印 2025-08-02 21:52:35 +08:00
walon 4db68f707b MethodControlFlowCalculator对InputArgs为0的BasicBlock随机化打乱顺序 2025-08-01 11:32:33 +08:00
walon c596b58d3e 优化 MethodControlFlowCalculator生成的指令有可能违反IL控制流规则的问题 2025-08-01 10:57:53 +08:00
walon ddb144eac8 feature: 新增 RemoveConstField pass 2025-08-01 09:19:24 +08:00
walon 1a240c47ac 修复ModifierType::Public枚举项值的错误 2025-07-31 20:06:04 +08:00
walon 2e48164ae9 修复EvalStackCalculator计算isinst和castclass指令的返回值的类型未转换为token所引用的类型的bug 2025-07-31 12:14:18 +08:00
walon 38ad0de746 禁用obfuz时LinkXmlProcess::GenerateAdditionalLinkXmlFile返回null 2025-07-28 10:46:17 +08:00
walon 87f086e310 支持多态dll文件结构 2025-07-25 20:47:38 +08:00
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 905351789e fix: 修复静态与成员函数在包含this参数后如果参数完全相同则计算出MethodDefSignature相同导致RenameRecordMap加载symbol-mapping文件时signature冲突的bug 2025-07-21 09:35:40 +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 6a4f84a9b0 不混淆被BurstCompile函数直接或者间接调用的函数的代码,但仍然混淆函数名。 2025-07-14 11:45:15 +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 f908b648c1 修复LinkXmlProcess::GenerateAdditionalLinkXmlFile返回的link.xml为相对路径,没有生效的bug 2025-07-03 12:41:06 +08:00
walon 9cbb105405 LinkXmlProcess中保留整个Obfuz.Runtime 2025-07-03 12:09:56 +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 bf3f6e4534 ObfuscatorBuilder::FromObfuzSettings新增searchPathIncludeUnityEditorDll参数,允许将UnityEditor相关dll也加入到搜索路径 2025-06-28 20:51:54 +08:00
walon 655c2fe07f `ObfuzSettings.enable`字段移到`BuildPipelineSettings`中 2025-06-28 20:38:27 +08:00
walon 02ed0608e4 添加BuildPipelineSettings,支持自定义 LinkXmlProcess和 ObfuscationProcess的 callbackOrder。 2025-06-28 20:20:08 +08:00
walon 2b8e51b12d 调整一些类型名 2025-06-28 19:01:57 +08:00
walon 1f29b5530e 支持UI垃圾代码生成 2025-06-28 13:43:32 +08:00
walon af8477f4b3 添加ConfigGarbageCodeGenerator 2025-06-28 13:10:37 +08:00
walon 9d46b5438a 垃圾代码生成 2025-06-28 12:12:31 +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 72d0b292c5 修复 EvalStackCalculator::SimulateRunAllBlocks 计算返回值包含`creq`的函数(如`int XXX{ init;}`的setter函数)的进出栈参数时由于没有对method.ReturnType RemovePinnedAndModifiers,导致错误地判定为methodHasReturnValue,导致进出栈错误的bug 2025-06-26 08:13:24 +08:00
walon 2572841e59 修复 EvalStackCalculator计算泛型类字段类型未inflate的bug 2025-06-22 18:01:47 +08:00
walon 38ebe11d7d - 修复 EvalStackCalculator不支持Conv_R_Un指令的bug
- 修复未不支持float与double进行二元计算的bug
2025-06-22 12:03:34 +08:00
walon 73915db7ca EvalStackCalculator计算EvalStack变量时如果为ValueType则包含类型信息 2025-06-22 11:45:23 +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