【问题标题】:Visual Studio store hidden data in the compiled files?Visual Studio 在编译文件中存储隐藏数据?
【发布时间】:2011-01-11 22:49:54
【问题描述】:

我想知道 Visual Studio 是否将隐藏数据存储在编译文件(或其他文件)中。 我说的是关于程序是用 Visual Studio 编写的事实的信息数据。

【问题讨论】:

  • 只有您的信用卡和社会安全号码。
  • 你到底想达到什么目的?

标签: c++ windows visual-studio visual-studio-2010


【解决方案1】:

Visual Studio 本身不会以这种方式为您的程序添加水印,但通常可以检测到您使用 Microsoft 的工具链只是因为附带条件,即文件中编译了哪些顺序方法,使用了哪些异常实现(MSVC++ 使用NT 的 SEH 之上的特定异常代码以实现 C++ 异常;例如,MinGW 使用完全不同的系统),以及对函数名称应用了哪些修饰。这些信息就是PEID 等工具的运作方式。

【讨论】:

  • 所以如果我用 Visual Studio 2010 编写代码,然后用 MinGW 编译它,在这种情况下,有没有人可以知道我是否使用过 Visual Studio?
  • @xRobot:假设他们无权访问您的源代码,那么不,他们将无法分辨。另一方面,让 MSVC++ 使用 MinGW 作为编译器很难甚至是不可能的。如果有人能说出您使用的是什么工具链,这有什么关系呢? MinGW 也使得调用很多 Windows API 变得很困难,即 WMI,因为它没有一套完整的 Windows 标头。 (例如,它没有wbemidl.h,并且缺少大多数与 COM 相关的东西)
【解决方案2】:

MS c++ 编译器/链接器将在 DOS 存根和 PE 标头之间添加一些编码数据,它以字母 Rich 开头,主要包含版本信息,请参阅 this page 了解更多信息

【讨论】:

    【解决方案3】:

    如果我正确理解您的问题:

    如果您不使用 Express Edition 中没有的特定选项,则无法区分您是使用 Visual C++ Express Edition(免费)还是其他非免费版本构建程序。一些VS2008版本的对比可以看here

    【讨论】:

      猜你喜欢
      • 2019-11-30
      • 2015-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多