I am using the 7.80 version of Enigma Protector.
I am using EP for a C# WinForms application.
If I Enigma Protect this application, it works.
If I first obfuscate the C# application then Enigma Protect it, it doesn't work.
I suspect it is because of the VM. The app might run if it is somehow disabled.
I would like to use the rest of the features of EP, like registration, file virtualization, registry virtualization etc.
Just not the VM as the application is already obfuscated.
Obfuscation is mandatory.
Is there any option to disable 'Virtual Machine' while protecting an app?
NOTE: The obfuscated exe works fine with 'Enigma Virtual Box'.
Option to disable VM
Re: Option to disable VM
Hi,
Yes, the obfuscated exe may not work, but this happens not due to virtual machine, this is incompatibility of obfuscator with Enigma Protector. Obfuscator does not allow the file to be modified further. So this basically issue of this obfuscator tool.
Be honest, there are rare obfuscation tools that support further protection. The Enigma Protector itself does not support protected file to be somehow processed again with other packer or protector.
We know that ConfuserEx obfuscator supports further protection, so I recommend to use it.
Enigma Virtual Box works only because it almost does not change the original file structure, there is no code compression/encryption, this is easy tool can't be compared with Enigma Protector.
Yes, the obfuscated exe may not work, but this happens not due to virtual machine, this is incompatibility of obfuscator with Enigma Protector. Obfuscator does not allow the file to be modified further. So this basically issue of this obfuscator tool.
Be honest, there are rare obfuscation tools that support further protection. The Enigma Protector itself does not support protected file to be somehow processed again with other packer or protector.
We know that ConfuserEx obfuscator supports further protection, so I recommend to use it.
Enigma Virtual Box works only because it almost does not change the original file structure, there is no code compression/encryption, this is easy tool can't be compared with Enigma Protector.
Re: Option to disable VM
Hi,
would you mind sharing wich program you use to protect it before and wich options you are using in the .net Obfuscator and wich protection options are you using with Enigma? What is your .net version you are using and do you use the bundling options when publishing the .net application?
A general approach to find the issue is do to the following step by step:
1)Disable all options on your .net Obfuscator.
2)Enable only String encryption => Use Enigma => Does it work?
3)Enable String Encryption AND Control flow, make sure if your Control Flow has an option to Emit Invalid OP codes disable this.
Use Enigma => Does it work? If not, please try using a less aggressive Control Flow for example if you can disable underflow and token.
4)If this works, try String Encryption, Control Flow AND Renaming, use Enigma Protector afterwards => Does it still run?
Now do this with all available options, i would suggest to leave something like MSIL Encryption off as this could potentially make Enigma Protector think the assembly gets modified in runtime because thats pretty much exactly what happens there that all functions have no MSIL code in them and it gets restored in runtime.
If you are using managed virtualization, try this at the very end.
would you mind sharing wich program you use to protect it before and wich options you are using in the .net Obfuscator and wich protection options are you using with Enigma? What is your .net version you are using and do you use the bundling options when publishing the .net application?
A general approach to find the issue is do to the following step by step:
1)Disable all options on your .net Obfuscator.
2)Enable only String encryption => Use Enigma => Does it work?
3)Enable String Encryption AND Control flow, make sure if your Control Flow has an option to Emit Invalid OP codes disable this.
Use Enigma => Does it work? If not, please try using a less aggressive Control Flow for example if you can disable underflow and token.
4)If this works, try String Encryption, Control Flow AND Renaming, use Enigma Protector afterwards => Does it still run?
Now do this with all available options, i would suggest to leave something like MSIL Encryption off as this could potentially make Enigma Protector think the assembly gets modified in runtime because thats pretty much exactly what happens there that all functions have no MSIL code in them and it gets restored in runtime.
If you are using managed virtualization, try this at the very end.
