Jump to content
  • Advertisement
Sign in to follow this  
Eric_B

distributing native code instead of ILAsm

This topic is 5466 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Is there a way to distribute cached native code compiled JIT instead of IL code? I want to protect my app from disassebly. .Net apps are easier to reverse engineer than native code. If it is possible what are the drawbacks?

Share this post


Link to post
Share on other sites
Advertisement
They're both easy to reverse engineer. Don't sweat it. If your algorithm isn't novel enough to be protected by a patent, it isn't worth obfuscating.

Share this post


Link to post
Share on other sites
Quote:
Original post by Eric_B
Is there a way to distribute cached native code compiled JIT instead of IL code?

I want to protect my app from disassebly. .Net apps are easier to reverse engineer than native code.

If it is possible what are the drawbacks?


There is, I believe, a way to target native code instead of MSIL with csc. But, I advocate not doing that:

One drawback is that you're eliminating half the reason .NET is cool--that such apps can potentially work on any platform which implements the CLR. This includes compatiblilty with all Windows flavors and, if you're not using WinForms, anything else.

If people want to disassemble your app, they're going to do it. That's a fact. Might as well stick with convenience.

Share this post


Link to post
Share on other sites
Will running ngen on the code before distro'ing it (I know this JIT's it and generates the executable), allow it to run properly on all machines (those that have the runtime installed anyways)

Share this post


Link to post
Share on other sites
Quote:
Sure... although the .NET forum might be a better match.

Thanks

Quote:
They're both easy to reverse engineer. Don't sweat it. If your algorithm isn't novel enough to be protected by a patent, it isn't worth obfuscating.


Quote:
If people want to disassemble your app, they're going to do it. That's a fact. Might as well stick with convenience.


I don't mind someone, who knows what he/she is doing, reverse engineering my code. On the other hand, I don't like the idea of someone, who can barely write code, stealing the code by using a tool like salamander decompiler.

Share this post


Link to post
Share on other sites
Quote:
Original post by CpMan
Will running ngen on the code before distro'ing it (I know this JIT's it and generates the executable), allow it to run properly on all machines (those that have the runtime installed anyways)


No that just generates a native image in the GAC for the machine it was ngen'd on, the original executable is unchanged.

Share this post


Link to post
Share on other sites
Quote:
Original post by Eric_B
I don't mind someone, who knows what he/she is doing, reverse engineering my code. On the other hand, I don't like the idea of someone, who can barely write code, stealing the code by using a tool like salamander decompiler.

Since when did reverse engineering code require skill? It just requires lots of time. I don't see why it matters what the relative skill level of someone who is wanting to decompile your code means. Using an obfuscation tool can help.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!