0xd4d/de4dot — Issue #7: .net Reactor
Author: high6
Created: 2011-10-20 19:39:41+00:00
State: open

If you need an assembly obfuscated in the latest version or any of the versions on the website let me know and I can get you them.

Anyways there are 2 control flow schemes which I wanted to mention (both used by .net reactor). One which is quite easy, it is basically dotfuscator's without the local variable.

ldc.i4 0
theswitch:
switch(label2, label3)
label2:
ldc.i4 1
br theswitch
label3:
ret

The next is a bit more complex. I have been thinking of a way to deal with it. I was thinking of recursively evaluating methods and seeing which methods return const values. Also seeing which conditionals are const. So they have something like the following

bool ConstMethod()
{
return false;
}

if (ConstMethod())
{
//Pop for obfuscation as the decompiler doesn't know this will never be true.
}

Anyways tomorrow I will be looking over your code and seeing if I can help. I will let you know if I start working on either of these.