使用基於LGPL授權QT的『歪歪yy語音』允許反編譯嗎?
原則上不允許,但是真有人做了,YY也不會有什麼反應。
YY客戶端大部分代碼是界面交互邏輯,少量網路連接管理,還有音視頻處理演算法庫。這些都沒什麼值得逆向工程的。
YY代碼里沒有做任何對代碼邏輯加密加殼混淆的處理,沒有刻意去對抗逆向工程,當然不排除部分工程師因為水平不夠寫出的代碼晦澀難懂。
YY自身的安全性不是建立在協議保密的基礎上的,服務端有一套預防和發現惡意客戶端程序的機制。就像你無論多精通HTTP協議也很難把web server搞垮。GNU Lesser General Public License (LGPL)
題主自己也說了, QT 是 LGPL 的,不是 GPL 。一字之差,區別著實不小:通過動態鏈接等方式使用 LGPL 代碼(準確地說是代碼編譯出來的模塊)是不會受到協議「傳染」的,即不要求將 GPL/LGPL 協議也應用到該項目中。所以很多開源「庫」都是 LGPL 的,否則哪會有那麼多公司用這些開源庫來開發私有軟體?
退一步說,即使 YY 修改了 QT 代碼、或是直接內嵌使用了 QT 代碼,導致受到 LGPL 約束;甚至說是使用了某個 GPL 代碼。你都無權逆向 YY 。只能訴諸法律追究其侵犯版權。不能把他人的錯誤當做自己違法的理由,這個法律常識不需要再強調吧?
最後,即使 YY 是開源的,他們也有權力在伺服器端採取任何可能的手段(如果有)來防止他人修改後的客戶端連接到伺服器。這是不違反 GPL/BSD 等流行開源協議的!
P.S. FSF 為了應對現在的互聯網時代新「威脅」,提出了 AGPL 協議,雖然不能直接地「解決」上面這個問題,但有一定關聯,可以拓展閱讀一下。就反編譯這個行為來說,是合法的
LGPL並不要求公開源代碼,也沒有授權你對軟體進行反編譯,甚至GPL也沒有允許進行反編譯,所以。
能不能反編譯YY和LGPL許可證沒什麼關係不過,反向工程本身並不違法. 最高人民法院關於審理不正當競爭民事案件應用法律若干問題的解釋第十二條 通過自行開發研製或者反向工程等方式獲得的商業秘密,不認定為反不正當競爭法第十條第(一)、(二)項規定的侵犯商業秘密行為。
前款所稱「反向工程」,是指通過技術手段對從公開渠道取得的產品進行拆卸、測繪、分析等而獲得該產品的有關技術信息。當事人以不正當手段知悉了他人的商業秘密之後,又以反向工程為由主張獲取行為合法的,不予支持。
這條司法解釋和反向工程合法的論證邏輯你可以這樣理解:如果反向工程本身已經非法,那麼這條司法解釋就沒有意義了。
當然,你反向工程之後把逆向的源碼用於某種用途是否合法,我也不知道.不過題主注意一點,根據你的截圖,你可能已經同意了YY的使用協議了,裡面可能有對反編譯行為的相關約定。
不過《中華人民共和國合同法》還有一些法條,他的法律適用我也不清楚第三百二十二條 技術合同是當事人就技術開發、轉讓、諮詢或者服務訂立的確立相互之間權利和義務的合同。
第三百二十九條 非法壟斷技術、妨礙技術進步或者侵害他人技術成果的技術合同無效。
這可能表明,如果您能證明YY使用了GPL協議的代碼,卻沒有開源的話,你可以無視掉他的最終用戶許可協議?
作為一個軟體工程的學生,我在立場上是支持逆向工程合法的(似乎現在沒有法律禁止逆向工程,也沒有保護逆向工程權利,還是個爭議問題?)上學期剛剛學了知識產權法,可惜基本全忘了。答案僅供參考。就算人家是用了GPL協議的組件,就算人家是反編譯了別人的東西自己改出來的,你都無權去做別人沒許可你的事情,他如果侵犯了別人的版權,那是權利人的事情,不關你的事兒,你也沒有執法權,更不可能把你的行為合法化。
不能。Why you shouldn"t use the Lesser GPL for your next library
- GNU ProjectLGPL 允許使用在商業項目中。上圖很明顯,YY 是商業項目,All rights reserved,所以你無權做 YY 未授權的事。
推薦閱讀:
※mysql的資料庫設計到底該不該加約束,比如非空約束,外鍵約束等。因為我看到我們公司的DBA在設計資料庫結構的時候都是不加任何約束的,這樣對性能的提高有多大,會不會影響到數據的完整性。新手求大牛解答?
※你們寫軟體的時候都是用什麼神奇的IDE?
※一個簡單的功能需要多少行代碼?
※21歲神經官能症(又叫植物神經紊亂)還能從事軟體開發嗎?