473,398 Members | 2,335 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,398 software developers and data experts.

Protect intelectual property in .NET code?

Hello

What is the best way (or does it exists a way at all) to protect WinForm
application
from decompiling IL.
Can it be full compiled yo windows native before distribution.

And what is best way for intelectual property algoritams and others in exe
code?

Thank you.
MilanB

Jan 4 '06 #1
8 1730
you could obfuscate the code.
provide some degrees of incomprehensibility...

you could also link it into native by using this 3rd party (expensive) tool:
http://www.remotesoft.com/linker

--
Regards,
Lloyd Dupont

NovaMind development team
NovaMind Software
Mind Mapping Software
<www.nova-mind.com>
"MilanB" <Mi****@discussions.microsoft.com> wrote in message
news:32**********************************@microsof t.com...
Hello

What is the best way (or does it exists a way at all) to protect WinForm
application
from decompiling IL.
Can it be full compiled yo windows native before distribution.

And what is best way for intelectual property algoritams and others in exe
code?

Thank you.
MilanB

Jan 5 '06 #2
Thank you

Any comment why Microsoft does not have own native compier for Windows?

Jan 5 '06 #3
Microsoft does rely a lot on 3rd parties to provide many non-essential
functionality.
Arguably the .NET linker is not essential to .NET application devlopment.

BTW there is a native linker, it's called ngen.
You could ngen your assembly on install.
But the whole point of .NET is to have MSIL code.
If I use salamender tool I'm sure I will obtain code compiled for this or
that processor, whereas MSIL is is processor independant, and the native
compilation is provided by the JIT and target the user's processor.

"MilanB" <Mi****@discussions.microsoft.com> wrote in message
news:D2**********************************@microsof t.com...
Thank you

Any comment why Microsoft does not have own native compier for Windows?

Jan 5 '06 #4
Lloyd Dupont wrote:
Microsoft does rely a lot on 3rd parties to provide many non-essential
functionality.
Arguably the .NET linker is not essential to .NET application devlopment.

BTW there is a native linker, it's called ngen.
You could ngen your assembly on install.


That's not what most people are after from a native linker though. In
particular:

1) It doesn't try to hide the IL in any way, shape or form.
2) It doesn't remove the necessity of having the .NET framework
installed.

All it does is remove JIT costs, sometimes at the expense of other
optimisations.

Jon

Jan 5 '06 #5
Thank you
Jan 5 '06 #6
>> BTW there is a native linker, it's called ngen.
You could ngen your assembly on install.


That's not what most people are after from a native linker though. In
particular:

1) It doesn't try to hide the IL in any way, shape or form.
2) It doesn't remove the necessity of having the .NET framework
installed.

All it does is remove JIT costs, sometimes at the expense of other
optimisations.

Hu? "sometimes at the expense of other optimisations"?
Really?

I've read that it could slow down cold startup as native image are much
bigger
(hence more IO), but I'm otherwise surprised by your statment...
Could you elaborate a bit more perhaps? Just curious....
Jan 5 '06 #7
Lloyd Dupont <net.galador@ld> wrote:
All it does is remove JIT costs, sometimes at the expense of other
optimisations. Hu? "sometimes at the expense of other optimisations"?
Really?


Yes.
I've read that it could slow down cold startup as native image are much
bigger
(hence more IO), but I'm otherwise surprised by your statment...
Could you elaborate a bit more perhaps? Just curious....


Well, from the docs for Ngen in the MSDN for .NET 2.0:

<quote>
For long-running applications, run-time JIT compilation performs
slightly better than native images. (Hard binding can mitigate this
performance difference to some degree.)
</quote>

Jeffrey Richter talks a little bit about it at (watch for line-wrap):

http://www.codeguru.com/Csharp/.NET/...rdparty/articl
e.php/c4651

Junfeng Zhang then rebuts Jeffrey's points in
http://blogs.msdn.com/junfeng/archiv.../27/97304.aspx
but does allow:

<quote>
And statistics shows, NGEN=3Fd file at worst performs 5-10% worse than
runtime jitter. And it has a big win in startup time since you don=3Ft
have to compile the IL assembly. I will certainly accept the very small
percentage runtime performance decrease, in trade of the startup
performance gain.
</quote>

(Interesting to note that Junfeng doesn't mention in which situations
he accepts that performance decrease. For a short-running desktop app,
that's reasonable. For a service, it's not really.)

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
If replying to the group, please do not mail me too
Jan 5 '06 #8
good reading, thanks for your links.

"Jon Skeet [C# MVP]" <sk***@pobox.com> wrote in message
news:MP************************@msnews.microsoft.c om...
Lloyd Dupont <net.galador@ld> wrote:
> All it does is remove JIT costs, sometimes at the expense of other
> optimisations.

Hu? "sometimes at the expense of other optimisations"?
Really?


Yes.
I've read that it could slow down cold startup as native image are much
bigger
(hence more IO), but I'm otherwise surprised by your statment...
Could you elaborate a bit more perhaps? Just curious....


Well, from the docs for Ngen in the MSDN for .NET 2.0:

<quote>
For long-running applications, run-time JIT compilation performs
slightly better than native images. (Hard binding can mitigate this
performance difference to some degree.)
</quote>

Jeffrey Richter talks a little bit about it at (watch for line-wrap):

http://www.codeguru.com/Csharp/.NET/...rdparty/articl
e.php/c4651

Junfeng Zhang then rebuts Jeffrey's points in
http://blogs.msdn.com/junfeng/archiv.../27/97304.aspx
but does allow:

<quote>
And statistics shows, NGEN=3Fd file at worst performs 5-10% worse than
runtime jitter. And it has a big win in startup time since you don=3Ft
have to compile the IL assembly. I will certainly accept the very small
percentage runtime performance decrease, in trade of the startup
performance gain.
</quote>

(Interesting to note that Junfeng doesn't mention in which situations
he accepts that performance decrease. For a short-running desktop app,
that's reasonable. For a service, it's not really.)

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
If replying to the group, please do not mail me too

Jan 6 '06 #9

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

6
by: YK | last post by:
All, What is the best way to protect IL code? --------------------------------------------------- Typical scenario: Visual Studio .NET 2003 includes Dotfuscator Community Edition, which...
3
by: Parham | last post by:
Hello, How to protect structures(Tables,SP,Views and Functions) of a SQL Server Database?(Password protect a database file) I have a SQL database that will distribute with my application, I want...
29
by: Frank Millman | last post by:
Hi all I am writing a multi-user accounting/business system. Data is stored in a database (PostgreSQL on Linux, SQL Server on Windows). I have written a Python program to run on the client,...
6
by: Bill | last post by:
Hey, is it possible to protect ASP code in some way? Can it be compiled, or otherwise protect the source somehow? Thanks, -Bill.
15
by: Fady Anwar | last post by:
Hi while browsing the net i noticed that there is sites publishing some software that claim that it can decompile .net applications i didn't bleave it in fact but after trying it i was surprised...
19
by: Peter | last post by:
I wrote a dll and now I want to protect from mass distribution. What is the most COST software for doing this, or can it easily be done in vb.net.
1
by: robert d via AccessMonster.com | last post by:
I don't even know if I'm able to describe what I need in the correct jargon, so please bear with me. A potential client likes my application for three out of four tasks they need done. The other...
16
by: FAQ server | last post by:
----------------------------------------------------------------------- FAQ Topic - How do I protect my javascript code? ----------------------------------------------------------------------- ...
22
by: teejayem | last post by:
Hi, I am new to programming with databases and was wanting some help. Is there any way to password protect an access database and access sent sql commands to it via vb.net code? Any help...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.