Creating a proxy for external calls
Published 31 December 2012
The references dynamic proxy hides the eventual destination of external calls from your assembly.
If you make calls outside of your assembly, these calls will still be visible in your code after string encoding and control flow obfuscation. For example, if you make a call to a message box, it would still be possible to find that call in the disassembled application, even with string encoding and control obfuscation enabled. By following external calls like this, it may still be possible for other people to understand parts of your code.
To solve this, you can use SmartAssembly to create a proxy at runtime. This proxy makes it harder to understand your code because all external calls appear to be sent to the proxy, and not to the external method, property or field which eventually receives it.
This feature protects your assembly against any modification, so you can't use this feature if you use another tool to modify your assembly after SmartAssembly.
Using the references dynamic proxy
To use hide external calls, in the Project Settings window, go to References Dynamic Proxy or click the icon in the toolbar.
Select the assemblies to protect using a proxy for external calls.
When the references dynamic proxy is enabled the coloured bars under the toolbar icon and to the left of the feature options are green. If it is disabled, the bars are orange.
You can't use the References Dynamic Proxy with assemblies using any version of Windows Phone 7.x XNA, Xbox XNA.