修复当一个Type之前为不需要混淆名字,后面改为需要混淆时,仍然使用mapping文件中的newFullname作为新名字,而它的newFullname为空字符串串,导致il2cpp生成代码出现问题的严重bug。
parent
e0da3da2bc
commit
6e989ccd36
|
@ -128,7 +128,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus
|
||||||
nameMaker.AddPreservedNamespace(type, type.Namespace);
|
nameMaker.AddPreservedNamespace(type, type.Namespace);
|
||||||
string fullTypeName = type.FullName;
|
string fullTypeName = type.FullName;
|
||||||
RenameMappingType rmt = rma?.types.GetValueOrDefault(fullTypeName);
|
RenameMappingType rmt = rma?.types.GetValueOrDefault(fullTypeName);
|
||||||
if (rmt != null)
|
if (rmt != null && rmt.status == RenameStatus.Renamed)
|
||||||
{
|
{
|
||||||
var (newNamespace, newName) = MetaUtil.SplitNamespaceAndName(rmt.newFullName);
|
var (newNamespace, newName) = MetaUtil.SplitNamespaceAndName(rmt.newFullName);
|
||||||
nameMaker.AddPreservedNamespace(type, newNamespace);
|
nameMaker.AddPreservedNamespace(type, newNamespace);
|
||||||
|
@ -149,7 +149,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus
|
||||||
string methodSig = TypeSigUtil.ComputeMethodDefSignature(method);
|
string methodSig = TypeSigUtil.ComputeMethodDefSignature(method);
|
||||||
|
|
||||||
RenameMappingMethod rmm = rmt?.methods.GetValueOrDefault(methodSig);
|
RenameMappingMethod rmm = rmt?.methods.GetValueOrDefault(methodSig);
|
||||||
if (rmm != null)
|
if (rmm != null && rmm.status == RenameStatus.Renamed)
|
||||||
{
|
{
|
||||||
nameMaker.AddPreservedName(method, rmm.newName);
|
nameMaker.AddPreservedName(method, rmm.newName);
|
||||||
}
|
}
|
||||||
|
@ -168,7 +168,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus
|
||||||
nameMaker.AddPreservedName(field, field.Name);
|
nameMaker.AddPreservedName(field, field.Name);
|
||||||
string fieldSig = TypeSigUtil.ComputeFieldDefSignature(field);
|
string fieldSig = TypeSigUtil.ComputeFieldDefSignature(field);
|
||||||
RenameMappingField rmf = rmt?.fields.GetValueOrDefault(fieldSig);
|
RenameMappingField rmf = rmt?.fields.GetValueOrDefault(fieldSig);
|
||||||
if (rmf != null)
|
if (rmf != null && rmf.status == RenameStatus.Renamed)
|
||||||
{
|
{
|
||||||
nameMaker.AddPreservedName(field, rmf.newName);
|
nameMaker.AddPreservedName(field, rmf.newName);
|
||||||
}
|
}
|
||||||
|
@ -186,7 +186,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus
|
||||||
nameMaker.AddPreservedName(property, property.Name);
|
nameMaker.AddPreservedName(property, property.Name);
|
||||||
string propertySig = TypeSigUtil.ComputePropertyDefSignature(property);
|
string propertySig = TypeSigUtil.ComputePropertyDefSignature(property);
|
||||||
RenameMappingProperty rmp = rmt?.properties.GetValueOrDefault(propertySig);
|
RenameMappingProperty rmp = rmt?.properties.GetValueOrDefault(propertySig);
|
||||||
if (rmp != null)
|
if (rmp != null && rmp.status == RenameStatus.Renamed)
|
||||||
{
|
{
|
||||||
nameMaker.AddPreservedName(property, rmp.newName);
|
nameMaker.AddPreservedName(property, rmp.newName);
|
||||||
}
|
}
|
||||||
|
@ -204,7 +204,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus
|
||||||
nameMaker.AddPreservedName(eventDef, eventDef.Name);
|
nameMaker.AddPreservedName(eventDef, eventDef.Name);
|
||||||
string eventSig = TypeSigUtil.ComputeEventDefSignature(eventDef);
|
string eventSig = TypeSigUtil.ComputeEventDefSignature(eventDef);
|
||||||
RenameMappingEvent rme = rmt?.events.GetValueOrDefault(eventSig);
|
RenameMappingEvent rme = rmt?.events.GetValueOrDefault(eventSig);
|
||||||
if (rme != null)
|
if (rme != null && rme.status == RenameStatus.Renamed)
|
||||||
{
|
{
|
||||||
nameMaker.AddPreservedName(eventDef, rme.newName);
|
nameMaker.AddPreservedName(eventDef, rme.newName);
|
||||||
}
|
}
|
||||||
|
@ -627,9 +627,12 @@ namespace Obfuz.ObfusPasses.SymbolObfus
|
||||||
if (_typeRenames.TryGetValue(type, out var record) && record.renameMappingData != null)
|
if (_typeRenames.TryGetValue(type, out var record) && record.renameMappingData != null)
|
||||||
{
|
{
|
||||||
var rmt = (RenameMappingType)record.renameMappingData;
|
var rmt = (RenameMappingType)record.renameMappingData;
|
||||||
Assert.IsFalse(string.IsNullOrWhiteSpace(rmt.newFullName));
|
if (rmt.status == RenameStatus.Renamed)
|
||||||
(newNamespace, newName) = MetaUtil.SplitNamespaceAndName(rmt.newFullName);
|
{
|
||||||
return true;
|
Assert.IsFalse(string.IsNullOrWhiteSpace(rmt.newFullName));
|
||||||
|
(newNamespace, newName) = MetaUtil.SplitNamespaceAndName(rmt.newFullName);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
newNamespace = null;
|
newNamespace = null;
|
||||||
newName = null;
|
newName = null;
|
||||||
|
@ -640,8 +643,12 @@ namespace Obfuz.ObfusPasses.SymbolObfus
|
||||||
{
|
{
|
||||||
if (_methodRenames.TryGetValue(method, out var record) && record.renameMappingData != null)
|
if (_methodRenames.TryGetValue(method, out var record) && record.renameMappingData != null)
|
||||||
{
|
{
|
||||||
newName = ((RenameMappingMethod)record.renameMappingData).newName;
|
RenameMappingMethod rmm = (RenameMappingMethod)record.renameMappingData;
|
||||||
return true;
|
if (rmm.status == RenameStatus.Renamed)
|
||||||
|
{
|
||||||
|
newName = ((RenameMappingMethod)record.renameMappingData).newName;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
newName = null;
|
newName = null;
|
||||||
return false;
|
return false;
|
||||||
|
@ -651,8 +658,12 @@ namespace Obfuz.ObfusPasses.SymbolObfus
|
||||||
{
|
{
|
||||||
if (_fieldRenames.TryGetValue(field, out var record) && record.renameMappingData != null)
|
if (_fieldRenames.TryGetValue(field, out var record) && record.renameMappingData != null)
|
||||||
{
|
{
|
||||||
newName = ((RenameMappingField)record.renameMappingData).newName;
|
RenameMappingField rmm = (RenameMappingField)record.renameMappingData;
|
||||||
return true;
|
if (rmm.status == RenameStatus.Renamed)
|
||||||
|
{
|
||||||
|
newName = ((RenameMappingField)record.renameMappingData).newName;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
newName = null;
|
newName = null;
|
||||||
return false;
|
return false;
|
||||||
|
@ -662,8 +673,12 @@ namespace Obfuz.ObfusPasses.SymbolObfus
|
||||||
{
|
{
|
||||||
if (_propertyRenames.TryGetValue(property, out var record) && record.renameMappingData != null)
|
if (_propertyRenames.TryGetValue(property, out var record) && record.renameMappingData != null)
|
||||||
{
|
{
|
||||||
newName = ((RenameMappingProperty)record.renameMappingData).newName;
|
RenameMappingProperty rmm = (RenameMappingProperty)record.renameMappingData;
|
||||||
return true;
|
if (rmm.status == RenameStatus.Renamed)
|
||||||
|
{
|
||||||
|
newName = ((RenameMappingProperty)record.renameMappingData).newName;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
newName = null;
|
newName = null;
|
||||||
return false;
|
return false;
|
||||||
|
@ -673,8 +688,12 @@ namespace Obfuz.ObfusPasses.SymbolObfus
|
||||||
{
|
{
|
||||||
if (_eventRenames.TryGetValue(eventDef, out var record) && record.renameMappingData != null)
|
if (_eventRenames.TryGetValue(eventDef, out var record) && record.renameMappingData != null)
|
||||||
{
|
{
|
||||||
newName = ((RenameMappingEvent)record.renameMappingData).newName;
|
RenameMappingEvent rmm = (RenameMappingEvent)record.renameMappingData;
|
||||||
return true;
|
if (rmm.status == RenameStatus.Renamed)
|
||||||
|
{
|
||||||
|
newName = ((RenameMappingEvent)record.renameMappingData).newName;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
newName = null;
|
newName = null;
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in New Issue