Unfortunately, at the moment, this proxy fixer can only fix proxies which return literal values. For example, this proxy won't get fixed :
static int myProxy() {
return 1 + 1;
}
But I'm doing my best to update it asap :)
When we're talking about IL code and .NET reverse engineering, a "proxy" is an intermediate method to a value. Quick example
static void main(string[] args) {
Console.WriteLine(myProxy());
}
static int myProxy() {
return "hello!;
}
As you can see, proxies can make values harder to read. Now imagine this applied to thousands of values, submersed in thousands of lines of code...
Obviously, proxies can call other proxies, which will then call other proxies... That's why I added a "depth" setting on this proxy remover. Quick example of a depth 2 proxified code.
static void main(string[] args) {
Console.WriteLine(myProxy());
}
static int myProxy() {
return anotherProxy();
}
static int anotherProxy() {
return "hello!";
}
Result after proxy removal :
static void main(string[] args) {
Console.WriteLine("hello!");
}
Special thanks to
- the NetShields Obfuscator community
- 0x4d4 (dnlib's inventor)
- Mindsystemm (a nice friend of mine)