混淆函数体不应该包含 $Obfuz$前缀的类
parent
ca3c15c44e
commit
b216ed1eb3
|
@ -0,0 +1,13 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Obfuz.Editor
|
||||
{
|
||||
public static class ConstValues
|
||||
{
|
||||
public const string ObfuzMetadataNamePrefix = "$Obfuz$";
|
||||
}
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
using dnlib.DotNet;
|
||||
using dnlib.DotNet.Emit;
|
||||
using Obfuz.Editor;
|
||||
using Obfuz.Emit;
|
||||
using Obfuz.Utils;
|
||||
using System;
|
||||
|
@ -74,13 +75,13 @@ namespace Obfuz.Data
|
|||
{
|
||||
_module.EnableTypeDefFindCache = false;
|
||||
ITypeDefOrRef objectTypeRef = _module.Import(typeof(object));
|
||||
_holderTypeDef = new TypeDefUser($"$Obfuz$ConstFieldHolder${_holderTypeDefs.Count}", objectTypeRef);
|
||||
_holderTypeDef = new TypeDefUser($"{ConstValues.ObfuzMetadataNamePrefix}ConstFieldHolder${_holderTypeDefs.Count}", objectTypeRef);
|
||||
_module.Types.Add(_holderTypeDef);
|
||||
_holderTypeDefs.Add(_holderTypeDef);
|
||||
_module.EnableTypeDefFindCache = true;
|
||||
}
|
||||
|
||||
var field = new FieldDefUser($"$RVA_Value{_holderTypeDef.Fields.Count}", new FieldSig(GetTypeSigOfValue(value)), FieldAttributes.Static | FieldAttributes.Private | FieldAttributes.InitOnly);
|
||||
var field = new FieldDefUser($"{ConstValues.ObfuzMetadataNamePrefix}RVA_Value{_holderTypeDef.Fields.Count}", new FieldSig(GetTypeSigOfValue(value)), FieldAttributes.Static | FieldAttributes.Private | FieldAttributes.InitOnly);
|
||||
field.DeclaringType = _holderTypeDef;
|
||||
return new ConstFieldInfo
|
||||
{
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
using dnlib.DotNet;
|
||||
using Obfuz.Editor;
|
||||
using Obfuz.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
@ -35,6 +36,10 @@ namespace Obfuz
|
|||
{
|
||||
return true;
|
||||
}
|
||||
if (method.Name.StartsWith(ConstValues.ObfuzMetadataNamePrefix))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (ShouldBeIgnoredByCustomAttribute(method))
|
||||
{
|
||||
return true;
|
||||
|
@ -44,10 +49,10 @@ namespace Obfuz
|
|||
|
||||
public bool IsInWhiteList(TypeDef type)
|
||||
{
|
||||
//if (type.Name.StartsWith("$Obfuz$"))
|
||||
//{
|
||||
// continue;
|
||||
//}
|
||||
if (type.Name.StartsWith(ConstValues.ObfuzMetadataNamePrefix))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (IsInWhiteList(type.Module))
|
||||
{
|
||||
return true;
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
using dnlib.DotNet;
|
||||
using dnlib.DotNet.Emit;
|
||||
using Obfuz.Editor;
|
||||
using Obfuz.Emit;
|
||||
using Obfuz.Utils;
|
||||
using System;
|
||||
|
@ -108,7 +109,7 @@ namespace Obfuz.ObfusPasses.CallObfus
|
|||
|
||||
private TypeDef CreateProxyTypeDef()
|
||||
{
|
||||
var typeDef = new TypeDefUser("$Obfuz$ProxyCall", _module.CorLibTypes.Object.ToTypeDefOrRef());
|
||||
var typeDef = new TypeDefUser($"{ConstValues.ObfuzMetadataNamePrefix}ProxyCall", _module.CorLibTypes.Object.ToTypeDefOrRef());
|
||||
typeDef.Attributes = TypeAttributes.NotPublic | TypeAttributes.Sealed;
|
||||
_module.EnableTypeDefFindCache = false;
|
||||
_module.Types.Add(typeDef);
|
||||
|
@ -122,7 +123,7 @@ namespace Obfuz.ObfusPasses.CallObfus
|
|||
{
|
||||
_proxyTypeDef = CreateProxyTypeDef();
|
||||
}
|
||||
MethodDef methodDef = new MethodDefUser($"$Obfuz$ProxyCall$Dispatch${_proxyTypeDef.Methods.Count}", methodSig,
|
||||
MethodDef methodDef = new MethodDefUser($"{ConstValues.ObfuzMetadataNamePrefix}ProxyCall$Dispatch${_proxyTypeDef.Methods.Count}", methodSig,
|
||||
MethodImplAttributes.IL | MethodImplAttributes.Managed,
|
||||
MethodAttributes.Static | MethodAttributes.Private);
|
||||
methodDef.DeclaringType = _proxyTypeDef;
|
||||
|
|
Loading…
Reference in New Issue