让说我有,我已经GPL下发布,以提供给任何人来源的项目。后来我发现一个非常类似的产品,但由于封闭源代码,二进制,只能由别人分布。

有没有发现他们正在使用他们的产品我的源代码的好方法?

如果该溶液是以某种方式进行反向工程二进制,是否有可能以某种方式自动执行它?

编辑:澄清。该bug狩猎是一种选择,但不是绝对的,特别是如果该项目是一个库和二进制增加了自己的GUI,例如。我感兴趣的情况是,当它不是明显地告诉代码被提起。

有帮助吗?

解决方案

查找软件胎记。该方法尝试建立基于二进制代码或动态行为的软件之间的联系。基督教Collberg是软件水印的专家,从胎记而得。这是所有仍在研究土地。

其他提示

错误。

如果闭源发布股最它的错误与您的项目中,它可能“解禁”。

您也可以尝试反编译你自己的二进制与开放源码的二进制的反编译的版本......尽管这可能不会是可靠的。

显然,如果怀疑二进制不stripped,你可以查找共享相同的名称代码的任何符号。

有一个大体上的反编译和反向工程二进制码工作的。世界专家可能是克里斯蒂娜西富恩特斯。她做了很多与反编译。 这也将是有趣的写亚历克斯·艾肯并询问如果他的工具的软件相似度测度可适于二进制码。

这是显而易见的方法是搜索字符串。使用Unix的字符串工具,看看二进制包含任何从你的代码中文字字符串。主要的东西一样提示消息中的错误消息和文本。

您可以尝试拆解这两个程序和比较组装,但如果他们使用不同的编译器,然后thier程序可能有细微的差别。有几个自由反汇编器或调试器也可在装配步骤通过。

除此之外是不是真的有一个简单的方法,找出那种事。

我能想到的最正确的方式是类似的字“Esquivalience”在牛津字典。结果 只要在代码某处独特的内容添加一些二进制数组,不要忘记做一些简单的使用它,因此链接器不会优化它拿走。你或许应该混淆它有点所以它不会很明显的普通读者认为这是多余的。结果 用六角editior打开编译的二进制和寻找它。

你为什么不看符号表使用纳米?

$ nm a.out
...
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top