How to obfuscate a binary compile with .NET framework? Tools such as Ebowla and Pecloak.py will encrypt it but the program won't run. Even UPX can't pack it. Wondering are there any ways to obfuscate it?
-
Can you clarify your question? Are you looking for the theory behind .net obfuscation or are you looking for specific product recommendations? – Dan Landberg Aug 14 '18 at 21:24
-
3(note that specific product recommendations are off-topic on this site) – forest Aug 14 '18 at 21:24
-
3In other words, answer @user52472 's comment very, very carefully. :) – Cowthulhu Aug 14 '18 at 21:25
-
You may want to read https://security.stackexchange.com/questions/107025/is-obfuscation-worth-it – Marcel Aug 15 '18 at 06:00
-
If I understand the question correctly, you can use something like StarForse or ArmDot. – MastAvalons Oct 04 '18 at 16:14
2 Answers
There are many obfuscators around, free ones too, just google for ".NET obfuscators". Visual Studio, the IDE from Microsoft, has one integrated, too. If you want to start out, I would try this one first.
Typically these obfuscators take the IL (Intermediate language), rename variables, create obscure control structures, and use more functions to make things complicated to read.
However, the code will still be easily "decompileable" with the respective tools, it will just be less readable by humans. General consensus is, AFAIK, not to obfuscate, as this is something like "Security by obscurity".
- 3,494
- 1
- 18
- 35
Because code obfuscation is a subjective process i.e. the level of 'how difficult it is for a human to read and understand' is going to be different depending on what de-obfuscating tools are available, and because obfuscation might make things difficult to read but doesn't actually increase confidentiality to any real degree, perhaps it's better to think about what you're trying to achieve and start a question from there?
Is it to help with some kind of licensing/copying issue, or with hiding authentication mechanisms, or hiding hard-coded sensitive data?
There may be a better way to achieve your aims that code obfuscation which is not an effective control against a determined and knowledgeable adversary.
- 1,824
- 12
- 21