Rename classes
This commit is contained in:
parent
f04a4d74a7
commit
7f5401625e
|
@ -40,7 +40,7 @@ namespace de4dot.code {
|
||||||
IDeobfuscator deob;
|
IDeobfuscator deob;
|
||||||
AssemblyModule assemblyModule;
|
AssemblyModule assemblyModule;
|
||||||
IAssemblyClient assemblyClient;
|
IAssemblyClient assemblyClient;
|
||||||
DynamicStringDecrypter dynamicStringDecrypter;
|
DynamicStringInliner dynamicStringInliner;
|
||||||
IAssemblyClientFactory assemblyClientFactory;
|
IAssemblyClientFactory assemblyClientFactory;
|
||||||
SavedMethodBodies savedMethodBodies;
|
SavedMethodBodies savedMethodBodies;
|
||||||
bool userStringDecrypterMethods = false;
|
bool userStringDecrypterMethods = false;
|
||||||
|
@ -380,7 +380,7 @@ namespace de4dot.code {
|
||||||
deob = deob.moduleReloaded(module);
|
deob = deob.moduleReloaded(module);
|
||||||
initializeDeobfuscator();
|
initializeDeobfuscator();
|
||||||
deob.DeobfuscatedFile = this;
|
deob.DeobfuscatedFile = this;
|
||||||
updateDynamicStringDecrypter();
|
updateDynamicStringInliner();
|
||||||
}
|
}
|
||||||
|
|
||||||
void initAssemblyClient() {
|
void initAssemblyClient() {
|
||||||
|
@ -397,13 +397,13 @@ namespace de4dot.code {
|
||||||
else
|
else
|
||||||
throw new ApplicationException(string.Format("Invalid string decrypter type '{0}'", options.StringDecrypterType));
|
throw new ApplicationException(string.Format("Invalid string decrypter type '{0}'", options.StringDecrypterType));
|
||||||
|
|
||||||
dynamicStringDecrypter = new DynamicStringDecrypter(assemblyClient);
|
dynamicStringInliner = new DynamicStringInliner(assemblyClient);
|
||||||
updateDynamicStringDecrypter();
|
updateDynamicStringInliner();
|
||||||
}
|
}
|
||||||
|
|
||||||
void updateDynamicStringDecrypter() {
|
void updateDynamicStringInliner() {
|
||||||
if (dynamicStringDecrypter != null)
|
if (dynamicStringInliner != null)
|
||||||
dynamicStringDecrypter.init(getMethodTokens());
|
dynamicStringInliner.init(getMethodTokens());
|
||||||
}
|
}
|
||||||
|
|
||||||
IEnumerable<int> getMethodTokens() {
|
IEnumerable<int> getMethodTokens() {
|
||||||
|
@ -805,7 +805,7 @@ namespace de4dot.code {
|
||||||
|
|
||||||
case DecrypterType.Delegate:
|
case DecrypterType.Delegate:
|
||||||
case DecrypterType.Emulate:
|
case DecrypterType.Emulate:
|
||||||
dynamicStringDecrypter.decrypt(blocks);
|
dynamicStringInliner.decrypt(blocks);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -915,7 +915,7 @@ namespace de4dot.code {
|
||||||
}
|
}
|
||||||
|
|
||||||
void IDeobfuscatedFile.stringDecryptersAdded() {
|
void IDeobfuscatedFile.stringDecryptersAdded() {
|
||||||
updateDynamicStringDecrypter();
|
updateDynamicStringInliner();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,7 @@ using de4dot.code.AssemblyClient;
|
||||||
using de4dot.blocks;
|
using de4dot.blocks;
|
||||||
|
|
||||||
namespace de4dot.code {
|
namespace de4dot.code {
|
||||||
abstract class StringDecrypter : MethodReturnValueInliner {
|
abstract class StringInlinerBase : MethodReturnValueInliner {
|
||||||
protected override void inlineReturnValues(IList<CallResult> callResults) {
|
protected override void inlineReturnValues(IList<CallResult> callResults) {
|
||||||
foreach (var callResult in callResults) {
|
foreach (var callResult in callResults) {
|
||||||
var block = callResult.block;
|
var block = callResult.block;
|
||||||
|
@ -62,7 +62,7 @@ namespace de4dot.code {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class DynamicStringDecrypter : StringDecrypter {
|
class DynamicStringInliner : StringInlinerBase {
|
||||||
IAssemblyClient assemblyClient;
|
IAssemblyClient assemblyClient;
|
||||||
Dictionary<int, int> methodTokenToId = new Dictionary<int, int>();
|
Dictionary<int, int> methodTokenToId = new Dictionary<int, int>();
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ namespace de4dot.code {
|
||||||
get { return methodTokenToId.Count != 0; }
|
get { return methodTokenToId.Count != 0; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public DynamicStringDecrypter(IAssemblyClient assemblyClient) {
|
public DynamicStringInliner(IAssemblyClient assemblyClient) {
|
||||||
this.assemblyClient = assemblyClient;
|
this.assemblyClient = assemblyClient;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -129,7 +129,7 @@ namespace de4dot.code {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class StaticStringDecrypter : StringDecrypter {
|
class StaticStringInliner : StringInlinerBase {
|
||||||
MethodDefinitionAndDeclaringTypeDict<Func<MethodDefinition, object[], string>> stringDecrypters = new MethodDefinitionAndDeclaringTypeDict<Func<MethodDefinition, object[], string>>();
|
MethodDefinitionAndDeclaringTypeDict<Func<MethodDefinition, object[], string>> stringDecrypters = new MethodDefinitionAndDeclaringTypeDict<Func<MethodDefinition, object[], string>>();
|
||||||
|
|
||||||
public override bool HasHandlers {
|
public override bool HasHandlers {
|
|
@ -186,7 +186,7 @@
|
||||||
<Compile Include="renamer\TypeNames.cs" />
|
<Compile Include="renamer\TypeNames.cs" />
|
||||||
<Compile Include="renamer\TypeRenamerState.cs" />
|
<Compile Include="renamer\TypeRenamerState.cs" />
|
||||||
<Compile Include="renamer\VariableNameState.cs" />
|
<Compile Include="renamer\VariableNameState.cs" />
|
||||||
<Compile Include="StringDecrypter.cs" />
|
<Compile Include="StringInliner.cs" />
|
||||||
<Compile Include="UserException.cs" />
|
<Compile Include="UserException.cs" />
|
||||||
<Compile Include="Utils.cs" />
|
<Compile Include="Utils.cs" />
|
||||||
<Compile Include="Win32Path.cs" />
|
<Compile Include="Win32Path.cs" />
|
||||||
|
|
|
@ -178,7 +178,7 @@ namespace de4dot.code.deobfuscators.CliSecure {
|
||||||
|
|
||||||
proxyDelegateFinder.find();
|
proxyDelegateFinder.find();
|
||||||
|
|
||||||
staticStringDecrypter.add(stringDecrypter.Method, (method, args) => stringDecrypter.decrypt((string)args[0]));
|
staticStringInliner.add(stringDecrypter.Method, (method, args) => stringDecrypter.decrypt((string)args[0]));
|
||||||
|
|
||||||
if (options.DecryptMethods) {
|
if (options.DecryptMethods) {
|
||||||
addCctorInitCallToBeRemoved(cliSecureRtType.InitializeMethod);
|
addCctorInitCallToBeRemoved(cliSecureRtType.InitializeMethod);
|
||||||
|
|
|
@ -172,7 +172,7 @@ namespace de4dot.code.deobfuscators.CryptoObfuscator {
|
||||||
stringDecrypter.init(resourceDecrypter);
|
stringDecrypter.init(resourceDecrypter);
|
||||||
if (stringDecrypter.Method != null) {
|
if (stringDecrypter.Method != null) {
|
||||||
addResourceToBeRemoved(stringDecrypter.Resource, "Encrypted strings");
|
addResourceToBeRemoved(stringDecrypter.Resource, "Encrypted strings");
|
||||||
staticStringDecrypter.add(stringDecrypter.Method, (method, args) => {
|
staticStringInliner.add(stringDecrypter.Method, (method, args) => {
|
||||||
return stringDecrypter.decrypt((int)args[0]);
|
return stringDecrypter.decrypt((int)args[0]);
|
||||||
});
|
});
|
||||||
DeobfuscatedFile.stringDecryptersAdded();
|
DeobfuscatedFile.stringDecryptersAdded();
|
||||||
|
|
|
@ -41,7 +41,7 @@ namespace de4dot.code.deobfuscators {
|
||||||
|
|
||||||
OptionsBase optionsBase;
|
OptionsBase optionsBase;
|
||||||
protected ModuleDefinition module;
|
protected ModuleDefinition module;
|
||||||
protected StaticStringDecrypter staticStringDecrypter = new StaticStringDecrypter();
|
protected StaticStringInliner staticStringInliner = new StaticStringInliner();
|
||||||
IList<RemoveInfo<TypeDefinition>> typesToRemove = new List<RemoveInfo<TypeDefinition>>();
|
IList<RemoveInfo<TypeDefinition>> typesToRemove = new List<RemoveInfo<TypeDefinition>>();
|
||||||
IList<RemoveInfo<MethodDefinition>> methodsToRemove = new List<RemoveInfo<MethodDefinition>>();
|
IList<RemoveInfo<MethodDefinition>> methodsToRemove = new List<RemoveInfo<MethodDefinition>>();
|
||||||
IList<RemoveInfo<FieldDefinition>> fieldsToRemove = new List<RemoveInfo<FieldDefinition>>();
|
IList<RemoveInfo<FieldDefinition>> fieldsToRemove = new List<RemoveInfo<FieldDefinition>>();
|
||||||
|
@ -153,7 +153,7 @@ namespace de4dot.code.deobfuscators {
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void deobfuscateStrings(Blocks blocks) {
|
public virtual void deobfuscateStrings(Blocks blocks) {
|
||||||
staticStringDecrypter.decrypt(blocks);
|
staticStringInliner.decrypt(blocks);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual bool deobfuscateOther(Blocks blocks) {
|
public virtual bool deobfuscateOther(Blocks blocks) {
|
||||||
|
|
|
@ -115,7 +115,7 @@ namespace de4dot.code.deobfuscators.Dotfuscator {
|
||||||
public override void deobfuscateBegin() {
|
public override void deobfuscateBegin() {
|
||||||
base.deobfuscateBegin();
|
base.deobfuscateBegin();
|
||||||
foreach (var info in stringDecrypter.StringDecrypterInfos)
|
foreach (var info in stringDecrypter.StringDecrypterInfos)
|
||||||
staticStringDecrypter.add(info.method, (method, args) => stringDecrypter.decrypt(method, (string)args[0], (int)args[1]));
|
staticStringInliner.add(info.method, (method, args) => stringDecrypter.decrypt(method, (string)args[0], (int)args[1]));
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void deobfuscateEnd() {
|
public override void deobfuscateEnd() {
|
||||||
|
|
|
@ -421,11 +421,11 @@ namespace de4dot.code.deobfuscators.SmartAssembly {
|
||||||
Log.v("Adding string decrypter. Resource: {0}", Utils.toCsharpString(info.StringsResource.Name));
|
Log.v("Adding string decrypter. Resource: {0}", Utils.toCsharpString(info.StringsResource.Name));
|
||||||
var decrypter = new StringDecrypter(info);
|
var decrypter = new StringDecrypter(info);
|
||||||
if (decrypter.CanDecrypt) {
|
if (decrypter.CanDecrypt) {
|
||||||
staticStringDecrypter.add(DotNetUtils.getMethod(info.GetStringDelegate, "Invoke"), (method, args) => {
|
staticStringInliner.add(DotNetUtils.getMethod(info.GetStringDelegate, "Invoke"), (method, args) => {
|
||||||
var fieldDefinition = DotNetUtils.getField(module, (FieldReference)args[0]);
|
var fieldDefinition = DotNetUtils.getField(module, (FieldReference)args[0]);
|
||||||
return decrypter.decrypt(fieldDefinition.MetadataToken.ToInt32(), (int)args[1]);
|
return decrypter.decrypt(fieldDefinition.MetadataToken.ToInt32(), (int)args[1]);
|
||||||
});
|
});
|
||||||
staticStringDecrypter.add(info.StringDecrypterMethod, (method, args) => {
|
staticStringInliner.add(info.StringDecrypterMethod, (method, args) => {
|
||||||
return decrypter.decrypt(0, (int)args[0]);
|
return decrypter.decrypt(0, (int)args[0]);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -546,7 +546,7 @@ namespace de4dot.code.deobfuscators.SmartAssembly {
|
||||||
|
|
||||||
public override IEnumerable<string> getStringDecrypterMethods() {
|
public override IEnumerable<string> getStringDecrypterMethods() {
|
||||||
var list = new List<string>();
|
var list = new List<string>();
|
||||||
foreach (var method in staticStringDecrypter.Methods)
|
foreach (var method in staticStringInliner.Methods)
|
||||||
list.Add(method.MetadataToken.ToInt32().ToString("X8"));
|
list.Add(method.MetadataToken.ToInt32().ToString("X8"));
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
|
@ -99,7 +99,7 @@ namespace de4dot.code.deobfuscators.Xenocode {
|
||||||
public override void deobfuscateBegin() {
|
public override void deobfuscateBegin() {
|
||||||
base.deobfuscateBegin();
|
base.deobfuscateBegin();
|
||||||
|
|
||||||
staticStringDecrypter.add(stringDecrypter.Method, (method, args) => stringDecrypter.decrypt((string)args[0], (int)args[1]));
|
staticStringInliner.add(stringDecrypter.Method, (method, args) => stringDecrypter.decrypt((string)args[0], (int)args[1]));
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void deobfuscateEnd() {
|
public override void deobfuscateEnd() {
|
||||||
|
|
|
@ -249,10 +249,10 @@ namespace de4dot.code.deobfuscators.dotNET_Reactor.v3 {
|
||||||
|
|
||||||
antiStrongName = new AntiStrongName();
|
antiStrongName = new AntiStrongName();
|
||||||
|
|
||||||
staticStringDecrypter.add(decrypterType.StringDecrypter1, (method2, args) => {
|
staticStringInliner.add(decrypterType.StringDecrypter1, (method2, args) => {
|
||||||
return decrypterType.decrypt1((string)args[0]);
|
return decrypterType.decrypt1((string)args[0]);
|
||||||
});
|
});
|
||||||
staticStringDecrypter.add(decrypterType.StringDecrypter2, (method2, args) => {
|
staticStringInliner.add(decrypterType.StringDecrypter2, (method2, args) => {
|
||||||
return decrypterType.decrypt2((string)args[0]);
|
return decrypterType.decrypt2((string)args[0]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -421,12 +421,12 @@ namespace de4dot.code.deobfuscators.dotNET_Reactor.v4 {
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var info in stringDecrypter.DecrypterInfos) {
|
foreach (var info in stringDecrypter.DecrypterInfos) {
|
||||||
staticStringDecrypter.add(info.method, (method2, args) => {
|
staticStringInliner.add(info.method, (method2, args) => {
|
||||||
return stringDecrypter.decrypt(method2, (int)args[0]);
|
return stringDecrypter.decrypt(method2, (int)args[0]);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (stringDecrypter.OtherStringDecrypter != null) {
|
if (stringDecrypter.OtherStringDecrypter != null) {
|
||||||
staticStringDecrypter.add(stringDecrypter.OtherStringDecrypter, (method2, args) => {
|
staticStringInliner.add(stringDecrypter.OtherStringDecrypter, (method2, args) => {
|
||||||
return stringDecrypter.decrypt((string)args[0]);
|
return stringDecrypter.decrypt((string)args[0]);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user