Add HasHandlers property to base class
This commit is contained in:
parent
f19be8019e
commit
5f6841e317
|
@ -163,6 +163,8 @@ namespace de4dot.code {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public abstract bool HasHandlers { get; }
|
||||||
|
|
||||||
protected MethodDefinition Method {
|
protected MethodDefinition Method {
|
||||||
get { return blocks.Method; }
|
get { return blocks.Method; }
|
||||||
}
|
}
|
||||||
|
@ -173,6 +175,8 @@ namespace de4dot.code {
|
||||||
protected abstract CallResult createCallResult(MethodReference method, Block block, int callInstrIndex);
|
protected abstract CallResult createCallResult(MethodReference method, Block block, int callInstrIndex);
|
||||||
|
|
||||||
public int decrypt(Blocks theBlocks) {
|
public int decrypt(Blocks theBlocks) {
|
||||||
|
if (!HasHandlers)
|
||||||
|
return 0;
|
||||||
try {
|
try {
|
||||||
blocks = theBlocks;
|
blocks = theBlocks;
|
||||||
callResults = new List<CallResult>();
|
callResults = new List<CallResult>();
|
||||||
|
|
|
@ -74,6 +74,10 @@ namespace de4dot.code {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool HasHandlers {
|
||||||
|
get { return methodTokenToId.Count != 0; }
|
||||||
|
}
|
||||||
|
|
||||||
public DynamicStringDecrypter(IAssemblyClient assemblyClient) {
|
public DynamicStringDecrypter(IAssemblyClient assemblyClient) {
|
||||||
this.assemblyClient = assemblyClient;
|
this.assemblyClient = assemblyClient;
|
||||||
}
|
}
|
||||||
|
@ -128,7 +132,7 @@ namespace de4dot.code {
|
||||||
class StaticStringDecrypter : StringDecrypter {
|
class StaticStringDecrypter : StringDecrypter {
|
||||||
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 bool HasHandlers {
|
public override bool HasHandlers {
|
||||||
get { return stringDecrypters.Count != 0; }
|
get { return stringDecrypters.Count != 0; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -153,8 +153,7 @@ namespace de4dot.code.deobfuscators {
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void deobfuscateStrings(Blocks blocks) {
|
public virtual void deobfuscateStrings(Blocks blocks) {
|
||||||
if (staticStringDecrypter.HasHandlers)
|
staticStringDecrypter.decrypt(blocks);
|
||||||
staticStringDecrypter.decrypt(blocks);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual bool deobfuscateOther(Blocks blocks) {
|
public virtual bool deobfuscateOther(Blocks blocks) {
|
||||||
|
|
|
@ -35,7 +35,7 @@ namespace de4dot.code.deobfuscators {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool HasHandlers {
|
public override bool HasHandlers {
|
||||||
get { return decrypterMethods.Count != 0; }
|
get { return decrypterMethods.Count != 0; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -518,9 +518,7 @@ namespace de4dot.code.deobfuscators.dotNET_Reactor.v4 {
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool deobfuscateOther(Blocks blocks) {
|
public override bool deobfuscateOther(Blocks blocks) {
|
||||||
if (booleanValueInliner.HasHandlers)
|
return booleanValueInliner.decrypt(blocks) > 0;
|
||||||
return booleanValueInliner.decrypt(blocks) > 0;
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void deobfuscateMethodEnd(Blocks blocks) {
|
public override void deobfuscateMethodEnd(Blocks blocks) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user