Saturday, 8 September 2012

Control Flow Obfuscation

Finally it's here. I started to switch groups of instructions and connect them with branch instructions, also known as Control Flow Obfuscation. This works really good at methods without try statements, but with try statements it becomes harder. I've managed to make it support one try statement at a time, but when you got a try statement in a try statement, the output crashes. Still working on that.

Anyway, here are some screenshots again:
Original Application

Original output

Obfuscated Application

Randomly switched IL of obfuscated application
Still same output