Update detection due to new cflow deob code

This commit is contained in:
de4dot 2012-01-09 03:19:13 +01:00
parent 12b327bef3
commit fd12b92e4b

View File

@ -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;
}