Obfuscation and build checking – building a tool to help

It’s Down Tools Week here at Red Gate, which sounds a bit like a bout of messy industrial action, but is actually a kind of week-long hack day. Most of the Reflector team (and some of our DevOps guys) are working on something we’ve had on a back burner for a while: the .NET Obfuscation Checker.

It does exactly what it sounds like it does. The checker uses Reflector to examine the assemblies and .exe files in a directory, and see what’s obfuscated. It’s based on the tool David built and that we use internally to check that our builds are ready to ship.

Over this week, we’re trying to make it more useful. We’re aiming to use Reflector to add a code view so you can have a quick look inside the assemblies. We also want to improve the way it shows you dependencies/references, and generally presents information.

It’s for a kind of pre-flight sanity check. Before shipping software, you’ll often want to obfuscate it to protect the IP. Or you just might want to make sure that what you’re shipping contains everything it needs to – that’s a particular pain point if you’re shipping a lot of DLLs. So the checker shows you what’s there, tries to decompile it, and tells you a bit about the security

Here’s what it looks like so far:

The latest build. Code preview is in the works.

We were already using Reflector for this at Red Gate, but in a pretty hacked together way. When our users started telling us they were doing the same thing, we figured it might be cool to build something a bit better.

Ryan and David have been tinkering away with the checker for the last few months, and this week we’re aiming to polish it up, test it, and get it out to people.

If you’re interested, leave a comment, or get in touch. I’ll do another update when we’ve got something you can download and play with.

One thought on “Obfuscation and build checking – building a tool to help

  1. Pingback: Dew Drop–December 6, 2012 (#1,457) | Alvin Ashcraft's Morning Dew

Leave a Reply

Your email address will not be published. Required fields are marked *