Obfuscation with Xenocode

G

Guest

I downloaded a trial copy of Xenocode, but it breaks my application.

I loaded my CF1 app and two assemblies, and selected the "Minimize size -
recommended for CF apps" option. I also turned off "metadata reduction" (so I
could use mapping file feature) and "dead code elimination" (because my app
kept bombing with a message saying things had been dead-code stripped) and
added a [Xenocode.Client.Attributes.RenameSymbol(false)] attribute in front
of every property that is used by reflection.

Now I'm getting MissingMethodException errors. In some cases, these are
thrown by CF when trying to call my overrides for such methods as OnClosing,
which Xenocode has elected not to rename (obfuscate). In other cases, they're
thrown by my overrides trying to call the CF base class.

If I tell Xenocode to rename the OnClosing method, this particular problem
goes away. My application then bombs with the next error, and so on. I've
spent two days chasing my tail :-(

Has anyone run into these issues? Is there a guide somewhere on how to
configure things? Can anyone recommend a different obfuscator?

TIA
 
N

Neville Lang

David,

I have used Xenocode successfully for about 3 years now. Since I migrated my
app from VS .NET 2003 to VS2005, I upgraded my older Xenocode 2004 to
Postbuild 2007, the new name of the product.

Broadly, there are 4 features that you can use, namely: Symbol Renaming,
Control Flow Obfuscation, ILDASM Suppression and String Encryption. I found
that for my CF1 app (when it was in VS .NET 2003) that I could only use
Symbol Renaming and Control Flow Obfuscation. Both ILDASM Suppression and
String Encryption caused problems in my app and so I stopped using them.

After migrating my CF1 app to VS2005 (still using CF1 at the moment) and
Postbuild 2007, I have not had the time to see if ILDASM Suppression and
String Encryption still fail or not.

Hopefully this information my help you.

Regards,
Neville Lang
 
G

Graham McKechnie

David,
One that works well on the desktp and also claims to suppport CF is .Net
Reactor. http://www.eziriz.com/

I've used it successfully for a desktop app, but haven't tried it yet on my
CF app.

Graham

David said:
I downloaded a trial copy of Xenocode, but it breaks my application.

I loaded my CF1 app and two assemblies, and selected the "Minimize size -
recommended for CF apps" option. I also turned off "metadata reduction"
(so I
could use mapping file feature) and "dead code elimination" (because my
app
kept bombing with a message saying things had been dead-code stripped) and
added a [Xenocode.Client.Attributes.RenameSymbol(false)] attribute in
front
of every property that is used by reflection.

Now I'm getting MissingMethodException errors. In some cases, these are
thrown by CF when trying to call my overrides for such methods as
OnClosing,
which Xenocode has elected not to rename (obfuscate). In other cases,
they're
thrown by my overrides trying to call the CF base class.

If I tell Xenocode to rename the OnClosing method, this particular problem
goes away. My application then bombs with the next error, and so on. I've
spent two days chasing my tail :-(

Has anyone run into these issues? Is there a guide somewhere on how to
configure things? Can anyone recommend a different obfuscator?

TIA
 
G

Guest

Rebuilding my application as a single assembly, before running it through
xenocode, seems to have solved the immediate problem.
 
C

Chris Craft

Hi David,

..NET Obfuscator, Code Protector, and Pruner
http://preemptive.com/products/dotfuscator/index.html

Salamander .NET obfuscator
http://www.remotesoft.com/salamander/obfuscator.html

Hope that helps,
Chris Craft
http://www.cjcraft.com/blog/

David said:
I downloaded a trial copy of Xenocode, but it breaks my application.

I loaded my CF1 app and two assemblies, and selected the "Minimize size -
recommended for CF apps" option. I also turned off "metadata reduction"
(so I
could use mapping file feature) and "dead code elimination" (because my
app
kept bombing with a message saying things had been dead-code stripped) and
added a [Xenocode.Client.Attributes.RenameSymbol(false)] attribute in
front
of every property that is used by reflection.

Now I'm getting MissingMethodException errors. In some cases, these are
thrown by CF when trying to call my overrides for such methods as
OnClosing,
which Xenocode has elected not to rename (obfuscate). In other cases,
they're
thrown by my overrides trying to call the CF base class.

If I tell Xenocode to rename the OnClosing method, this particular problem
goes away. My application then bombs with the next error, and so on. I've
spent two days chasing my tail :-(

Has anyone run into these issues? Is there a guide somewhere on how to
configure things? Can anyone recommend a different obfuscator?

TIA
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top