1

I want to know if Visual Studio store hidden data in compiled files ( or other files ). I am talking about information data about the fact that the program is written with Visual Studio.

xRobot
  • 25,579
  • 69
  • 184
  • 304

3 Answers3

5

Visual Studio itself does not watermark your programs in this way, but it is often detectable that you used Microsoft's toolchain simply because of incidentals, i.e. what order methods are compiled into the file, what implementation of exceptions is used (MSVC++ uses a specific exception code on top of NT's SEH in order to implement C++ exceptions; MinGW, for example, uses a completely different system), and what decorations are applied to function names. These bits of information are how tools like PEID operate.

Billy ONeal
  • 104,103
  • 58
  • 317
  • 552
  • So if I write the code with Visual Studio 2010 and then compile it with MinGW, in this case does anyone can know if I have used Visual Studio ? – xRobot Jan 11 '11 at 23:07
  • @xRobot: Assuming they don't have access to your source code, then no, they won't be able to tell that. On the other hand, getting MSVC++ to use MinGW as a compiler is difficult to impossible. Why does it matter if someone can tell what toolchain you're using? MinGW also makes it difficult to call a lot of Windows APIs, i.e. WMI, because it does not have a complete set of Windows headers. (For example, it doesn't have `wbemidl.h`, and it's missing most COM related stuff) – Billy ONeal Jan 11 '11 at 23:22
3

The MS c++ compiler/linker will add some encoded data between the DOS stub and the PE header, it starts with the letters Rich and contains mostly version info, see this page for more info

Anders
  • 97,548
  • 12
  • 110
  • 164
1

if I correctly understand your question:

it's impossible to distinguish if you build your program using Visual C++ Express Edition (free) or other non-free editions if you don't use specific options not available in Express Edition. some comparison of VS2008 editions can be found here

Andriy Tylychko
  • 15,967
  • 6
  • 64
  • 112