【问题标题】:Protecting company data in open source software executable保护开源软件可执行文件中的公司数据
【发布时间】:2016-09-19 13:01:57
【问题描述】:

我们是一个开源模拟项目的用户,其中许可协议允许分发没有源代码的可执行文件。该软件编译为 DLL,可以在启动时通过两种方式进行初始化:

  1. 它读取一系列人类可读的文本文件来分配/设置不同的变量。这是默认选项。
  2. 或者,分发版提供了一个可选的源文件,用于在编译时设置变量。不需要输入文件。

第二个选项的出现是因为用户对分发输入文件表示犹豫,因为它们包含关于他们正在模拟的东西的 IP。开发商很友善,可以容纳。

问题:假设 A 公司使用第二个选项分发可执行文件以供其客户使用。 A 公司可以采取哪些措施来确保数据受到保护/保障/加密?这里的偏执是确保有人不能使用源代码在可执行文件中查找模式(通过反编译或其他方式)并在编译时发现变量值。

操作系统是 linux、OSx 和 Windows。

【问题讨论】:

  • 这似乎类似于一些关于二进制混淆的现有问题(例如stackoverflow.com/questions/2273610/…)。
  • 如果它在二进制文件中,则可以找到它。时期。有实验研究使程序行为无法理解,但它并不是真正可用的。
  • 太宽泛了。这不是咨询网站。
  • 请不要在收到答案后更改您的问题。

标签: c encryption dll decompiling decompiler


【解决方案1】:

无。

该工具是开源的这一事实与问题无关。稍加调整,IP 编译成闭源​​程序的答案是一样的。

加密不起作用。你可以阅读更多关于它的信息here,但简而言之,你需要向你的对手提供锁定的数据和密钥。这种方案实际上密钥长度为零,称为“混淆”。

另一个复杂的因素是你的对手对通过定义良好的接口传递给 DLL 的数据感兴趣。任何人都可以监视您的程序和 DLL 之间的接口,并获取实际数据,就像在文件中一样容易。

你唯一能做的,这里开源可以帮助你,就是将你的 IP 集成到 DLL 中,然后尝试混淆整个事情。和以前一样,请注意,这只会使获取数据变得更加困难,而且绝非不可能。

【讨论】:

    猜你喜欢
    • 2018-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-04
    相关资源
    最近更新 更多