Make sure blocks are laid out in a verifiable order
This commit is contained in:
parent
865cfb9536
commit
f79b12d4f3
|
@ -201,5 +201,10 @@ namespace de4dot.blocks {
|
||||||
throw new ApplicationException("Invalid ld/st local instruction");
|
throw new ApplicationException("Invalid ld/st local instruction");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void repartitionBlocks() {
|
||||||
|
foreach (var scopeBlock in getAllScopeBlocks(methodBlocks))
|
||||||
|
scopeBlock.repartitionBlocks();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -460,6 +460,7 @@ namespace de4dot {
|
||||||
int numRemovedLocals = blocks.optimizeLocals();
|
int numRemovedLocals = blocks.optimizeLocals();
|
||||||
if (numRemovedLocals > 0)
|
if (numRemovedLocals > 0)
|
||||||
Log.v("Removed {0} unused local(s)", numRemovedLocals);
|
Log.v("Removed {0} unused local(s)", numRemovedLocals);
|
||||||
|
blocks.repartitionBlocks();
|
||||||
}
|
}
|
||||||
deobfuscateStrings(blocks);
|
deobfuscateStrings(blocks);
|
||||||
deob.deobfuscateMethodEnd(blocks);
|
deob.deobfuscateMethodEnd(blocks);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user