Update detection due to new cflow deob code
This commit is contained in:
parent
12b327bef3
commit
fd12b92e4b
|
@ -66,12 +66,16 @@ namespace de4dot.code.deobfuscators.dotNET_Reactor.v3 {
|
|||
return false;
|
||||
|
||||
var badBlock = block.FallThrough;
|
||||
var goodblock = block.Targets[0];
|
||||
if (badBlock == null)
|
||||
return false;
|
||||
if (badBlock.Sources.Count != 1)
|
||||
return false;
|
||||
var goodblock = block.Targets[0];
|
||||
|
||||
if (badBlock == goodblock) {
|
||||
// All of the bad block was removed by the cflow deobfuscator. It was just a useless
|
||||
// calculation (div by zero).
|
||||
block.replaceLastInstrsWithBranch(numInstrsToRemove, goodblock);
|
||||
}
|
||||
else if (badBlock.Sources.Count == 1) {
|
||||
instrs = badBlock.Instructions;
|
||||
if (instrs.Count != 12)
|
||||
return false;
|
||||
|
@ -106,6 +110,9 @@ namespace de4dot.code.deobfuscators.dotNET_Reactor.v3 {
|
|||
|
||||
block.replaceLastInstrsWithBranch(numInstrsToRemove, goodblock);
|
||||
badBlock.Parent.removeDeadBlock(badBlock);
|
||||
}
|
||||
else
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user