Using decompilation and PowerShell with reflection to automate the (seemingly) impossible

By Paul Shamus

Elevator Pitch

Have you ever run into a roadblock trying to automate some process and thought, wow this is something even PowerShell can’t solve? Me too. I’ll show you how I decompiled a Windows Form-based application and then used PowerShell with reflection to automate the seemingly impossible.

Description

PowerShell is one of the best automation utilities to have in your toolbox. But there are some problems that PowerShell alone can’t solve - take, for example, the BizTalk ESB Toolkit, a Windows Forms-based application with no command-line options. How do you automate applying the configuration settings without UI automation? Enter decompilation.

This session will cover how I peeled away the layers of the BizTalk ESB Toolkit using JustDecompile, and used PowerShell with reflection to create a single script that will apply the configuration settings - even via PSRemoting!

Notes

The application in question is the BizTalk ESB Toolkit. I’m not sure what the legal ramifications are for showing the underpinnings of the main application in a tool like JustDecompile. The two options I can think of are:

  1. Get approval from Microsoft - I plan on getting in contact with someone I know from Microsoft who can put me in touch with someone on the ESB/BizTalk team
  2. Build a sample application and use that instead. This will be much more challenging, as there is quite a bit to try and reproduce.

I’m also up for making this a longer session if you think it warrants it. The content is pretty complex and having a longer session might allow for a deeper dive and/or more questions.