开源代码被人抄去用另一个语言重写闭源,只能认栽吗

2025 年 8 月 12 日
 Dimole

如题。每次开源项目更新后第二天,闭源的程序就能跟进一样的功能。使用 IDA 反编译后发现其闭源程序部分实现逻辑相似度较高,只是使用了不同语言,而对方认为他用另一个语言重写了就是没有相似度、和开源原作无关联。

开源的时候不知道江湖水深,选择的是 MPL-2.0 ,是只能认栽了吗?

5251 次点击
所在节点    问与答
43 条回复
kinghly
2025 年 8 月 12 日
你造车,别人也造车。
peteretep
2025 年 8 月 12 日
选择开源前就要想清楚,
这就是开源的效果啊,
人家不参考不复制,那开源的意义在哪里?
iorilu
2025 年 8 月 12 日
这很正常把

这已经是文明的了

再说了, 如果你不愿意这样, 那完全可以关闭开源, 并且从性能功能超过对方不就行了
Greendays
2025 年 8 月 12 日
用另一种语言写了那就是人家的东西了。
w3
2025 年 8 月 12 日
我的所有开源项目都是 AGPL-3.0 最严格的条款。

- 代码修改后再发布时必须同许可证开源
- 代码仅跑在自家服务器、供外部用户通过网络使用时必须开源
a33291
2025 年 8 月 12 日
@WillBeethoven OP 描述这种好像没办法,类似 TX 直接"借鉴"别人的创意,并未直接借用任何产物
zzz22333
2025 年 8 月 12 日
既想开源又不想被白嫖,建议还是不要开源了。
w3
2025 年 8 月 12 日
@a33291 对方留下了可比对的“文本相似度”证据,如果没有那是真没办法了。
nevin47
2025 年 8 月 12 日
@Dimole #8 拿了就跑正常,拿了跑了不回馈社区还嘴贱骂一嘴,这种建议贴出来骂死他。。。
Foxkeh
2025 年 8 月 12 日
那就许可证改掉
icanfork
2025 年 8 月 12 日
那你以后闭源就好了
hxsf
2025 年 8 月 12 日
> "而对方认为他用另一个语言重写了就是没有相似度、和开源原作无关联"

首先,直接阅读你代码然后自己再写一份(不论语言)都是侵犯你著作权的!
像规避著作权侵犯,一般最稳健的做法是使用净室设计( Clean-room design )( https://en.wikipedia.org/wiki/Clean-room_design )百科里也有相关案例(正反面)
BTW 净室方法不能规避专利。
dcsuibian
2025 年 8 月 12 日
第一个层面:
首先,如果对方是大量参考了你的代码然后翻译成另一种语言,那他这种实际属于派生作品。如果他闭源分发了,那就是违法开源协议。
第二个层面:
即使他违反开源协议,你要举证也是非常困难的。

建议:
谁主张谁举证。如果你觉得他说开源版本会丢数据的言论不实的话,你可以大大方方地在项目相关文档中说明并驳斥,要求对方提供证据。但是不要说对方抄袭(否则这个就是你来举证了)。
他诋毁你是因为他怕抢不走你的用户。
项目本身开源免费的话,那你大大方方的就可以了。开源是你的优势,闭源是他的劣势。如果是完全相同的功能,用户为啥要选择闭源版本?
同时如果他增强了你的功能,你可以直接拿过来,毕竟你是开源的,他是闭源的。你肯定没法抄他的。
久而久之他的就不会有啥用户的。

另外多说一嘴:
如果是我开源,不打算赚钱搞开闭源版本的话,那直接就是 MIT 协议起手了。这样就不用担心这种问题。
因为许可证相当宽松,基本怎么样都不违反。甚至即使被我讨厌的人拿去用了,我也会继续开源,毕竟本来就没有任何限制。
HENQIGUAI
2025 年 8 月 12 日
是这样的,无论你选择什么协议,其实都只是相当于一个君子协定。你就算闭源打包加壳的代码,他们都会解密拆壳反编译的。
GeruzoniAnsasu
2025 年 8 月 12 日
没错所以真正的开源项目一定有商业版:

如果厂商只会抄 -> 那么他的产品一定落后于商业版
如果厂商不止抄 -> 但他产品不开源,那口碑一定不如开源+商业版
如果厂商抄完了还开源 -> 大家都开源,那太好了

全赢!
CKylinMC
2025 年 8 月 12 日
啊?佬,是你吗?我看见一个项目刚给所有 contributers 询问要不要换 AGPL3 ,理由完全一样的
newaccount
2025 年 8 月 12 日
你可以在项目里加个页面叫耻辱柱,把对方钉死在上面
iv8d
2025 年 8 月 12 日
直接闭源,要想炒照样能炒,你拿出证据直接扔出来。
iv8d
2025 年 8 月 12 日
@dcsuibian 大佬说的在理
fbichijing
2025 年 8 月 12 日
感觉 #17 和 #36 这两种方法都很有趣。

从 #17 引申一下,或可以让自己的闭源领先开源几个版本或者一段时间。不过从程序角度可能客观来说,可能只是加大了一点难度?

#36 的方法感觉很好玩。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1151709

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX