Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to reverse obfuscation in .NET?

Is obfuscation only about garbling the names of non-public variables/members? If so, would it not be possible to write an application that would at least change these names more readible ones like "variable1", etc, and then extract the whole code that can still be compiled?

like image 620
Joan Venge Avatar asked Mar 08 '11 20:03

Joan Venge


1 Answers

No, it is about a lot more, especially with more sophisticated obfuscators. They can produce IL that cannot be expressed in most languages, and where the logic flow is horribly tangled to befuddle the best of tools. With lots of time you can do it (probably lots by hand), and there is certainly an arms race between the obfuscators and deobfuscators - but you vastly underestimate the technology here.

Also, note that many obfuscators look at an entire application (not just one assembly), so they can change the public API too.

like image 136
Marc Gravell Avatar answered Oct 13 '22 03:10

Marc Gravell