Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Personally identifying information (of the programmer) in .NET Assemblies

Tags:

.net

anonymity

When going through some of my applications in the past, I have noticed that compiled into the assembly is information such as where my project is, my username (which happened to be my full name, not my online handle) in Windows, and honestly I'm not sure what else.

Now I know the primary reason of this is when compiled under Debug, as this was file locations to the source files or pdb files (can't recall which).

The question is, what other "personally identifiable" information can end up in compiled assemblies and what can be done to prevent this from ending up in the assembly?

I assume if I simply set the project to Release mode to disable debugging symbols in the compiled assembly, this would achieve my goal, however I'm still curious if anything else I am missing.

I generally have no issue with people knowing I made something, but it did kind of irk me that my full name was in my distributed assemblies without my knowledge.

like image 919
Brett Allen Avatar asked Jan 11 '10 23:01

Brett Allen


People also ask

How can I programmatically obtain information about an assembly?

You can programmatically obtain information about an assembly by using reflection. For more information, see Reflection (C#) or Reflection (Visual Basic).

What are the components of a net assembly?

All the .NET assemblies contain the definition of types, versioning information for the type, meta-data, and manifest. The designers of .NET have worked a lot on the component (assembly) resolution.

What are assemblies in net?

Assemblies in .NET. Assemblies form the fundamental units of deployment, version control, reuse, activation scoping, and security permissions for .NET-based applications. An assembly is a collection of types and resources that are built to work together and form a logical unit of functionality.

What is an assembly in programming?

An assembly is a collection of types and resources that are built to work together and form a logical unit of functionality. Assemblies take the form of executable (.exe) or dynamic link library (.dll) files, and are the building blocks of .NET applications.


2 Answers

Depending on your VS setup, it's possible that you might have identifying information in the assembly information (AssemblyInfo.cs). If you publish via ClickOnce, then there is also the publish information which you can get to from the Publish tab. Both of these tags are completely configurable.

It's also possible that you have a license file for a 3rd-party product that contains identifying information, which must be distributed with the app, either as an external file or embedded resource; if so, there's probably not much you can do about it other than bring it up with the vendor.

Aside from these items, I can't think of any other reason why personal information would be compiled into an assembly. Debug information only goes in the PDB file - without that, you can't get symbols or line numbers. This applies to both debug and release mode.

like image 139
Aaronaught Avatar answered Sep 28 '22 12:09

Aaronaught


All of that information is in Visual Studio under Project/Properties/Application/Assembly Information. Most of it is optional. Just blank out what you don't want in the assembly.

like image 21
Robert Harvey Avatar answered Sep 28 '22 12:09

Robert Harvey