473,385 Members | 1,829 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,385 software developers and data experts.

VC7.1 and IL code

I have some IP (intellectual property) concerns regarding IL code.

1). If I compile a native (i.e. 'unmanaged') C++ project (i.e.
application or library) using C++ and the VC7.1 compiler tools, how can
I be sure that it is native code (not IL) that is generated?

2). Is native code generated by default for native C++ code projects?

Apr 20 '06 #1
2 1358
"Bit byte" <fl**@flop.com> wrote in message
news:FO********************@bt.com...
I have some IP (intellectual property) concerns regarding IL code.

1). If I compile a native (i.e. 'unmanaged') C++ project (i.e. application
or library) using C++ and the VC7.1 compiler tools, how can I be sure
that it is native code (not IL) that is generated?
By not compiling with /clr. You can use dumpbin /disasm on an image to see
the native disassembly - if you apply it to a managed assembly you won't see
much of anything.

2). Is native code generated by default for native C++ code projects?


It depends on the project template that you choose. If it's a Win32, ATL or
MFC project then it's native. If it's any of the .NET project templates,
then it's managed.

-cd
Apr 20 '06 #2

"Bit byte" <fl**@flop.com> wrote in message
news:FO********************@bt.com...
I have some IP (intellectual property) concerns regarding IL code.

1). If I compile a native (i.e. 'unmanaged') C++ project (i.e. application
or library) using C++ and the VC7.1 compiler tools, how can I be sure
that it is native code (not IL) that is generated?

2). Is native code generated by default for native C++ code projects?


Re native - managed compilation:
* All functions implemented in files compiled without /clr are compiled to
native code
* All functions implemented in files compiled with /clr are compiled to
managed code, unless they are defined in a #pragma unmanaged area
* #pragma unmanaged areas are evil - most cases where they seem to be useful
are ugly pitfalls; instead of using #pragma unmanaged, separate native code
out into files compiled without /clr

My personal opinions regarding runtime-based code (IL code or byte code) and
intelectual property:
* It is often very easy to reverse engineer runtime-based code
* Obfuscater often provide only certain amount of help
* It is also very easy to detect cross component method calls of native code
(See Logger.exe, ...). This is a huge help for reverse engineering native
code, too.
* Usually, most of the code that is written is not worth much protection.
* To make the code that is worth to be protected less reverse engineerable,
a) make sure you reduce calls into other DLLs to an absolute minimum -
especially calls into system DLLs
b) make sure you don't deploy debug symbols of the code you want to
protect
c) if really necessary, protect your code with hardware
c1) dongles (www.wibu.com)
c2) smartcard-like hardware that contains and executes your code, so
that your code is never seen by somebody else
d) if hardware is too expensive consider executing your protectable code
on your servers and make it available via web services

Marcus
Apr 21 '06 #3

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

Similar topics

51
by: Mudge | last post by:
Please, someone, tell me why OO in PHP is better than procedural.
109
by: Andrew Thompson | last post by:
It seems most people get there JS off web sites, which is entirely logical. But it is also a great pity since most of that code is of such poor quality. I was looking through the JS FAQ for any...
0
by: Namratha Shah \(Nasha\) | last post by:
Hey Guys, Today we are going to look at Code Access Security. Code access security is a feature of .NET that manages code depending on its trust level. If the CLS trusts the code enough to...
171
by: tshad | last post by:
I am just trying to decide whether to split my code and uses code behind. I did it with one of my pages and found it was quite a bit of trouble. I know that most people (and books and articles)...
4
by: KenFehling | last post by:
Hello. I am wondering if there exists a piece of software that takes multiple .js files that are nicely indented and commented and create one big tightly packed .js file. I'm hoping the one file...
88
by: Peter Olcott | last post by:
Cab you write code directly in the Common Intermediate language? I need to optimize a critical real-time function.
7
by: blackrosezy | last post by:
#include char *code; void main() { char buf = "book";
2
by: rn5a | last post by:
Assume that a user control (MyUC.ascx) encapsulates 2 TextBoxes with the IDs 'txt1' & 'txt2' respectively. To use this user control in an ASPX page, the following Register directive will be...
1
by: ahammad | last post by:
Hello, I have written a fairly complex parsing tool that is used to parse information from company documents. The program works very well, but in order to insure that all the data is copied...
66
by: Jon Skeet [C# MVP] | last post by:
I'm sure the net will be buzzing with this news fairly soon, but just in case anyone hasn't seen it yet: Microsoft are going to make the source code for the .NET framework (parts of it,...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
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
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...

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.