網路城邦
上一篇 回創作列表 下一篇  字體:
抄襲的成本很高的!
2014/12/21 07:15:24瀏覽3057|回應1|推薦15

最早的時候我不太懂為什麼有人願意公開程式原始碼?如果是入門技術如我的教學素材,也就罷了!那是職業所需普渡眾生。但是如果那是你研發一兩年的困難程式技術,直接公開程式不就讓大家抄抄去,你的產品滿街都是,卻不是你在收錢,你怎麼謀生呢?我看了一些Open Source的說法還是霧煞煞,因為他們多半從道德的角度論述,要做好人,要推進科技進步等等…這個我當然知道。但是他們沒說清楚,那我怎麼賺錢養家?保障自己的基本利益呢?

所以,我有段時間也是很害怕寫的程式原始碼被剽竊抄襲。但是慢慢也發現防不勝防,壞蛋們不必違法當駭客,駭入我的電腦,或收買我的同仁盜拷,只要精通一些「反組譯」的技術,就可以從我公開發行出去的檔案,還原大部分的原始碼。原因大概是現在多數程式都強調「跨平台」,所謂的安裝檔與執行檔已經不像古時候,直接就是編譯成機器碼的執行檔,而是一些中介檔,是在執行前一刻才根據各種作業系統所需,Just In Time(及時)的編譯出該電腦可執行的機器碼(0101這種無法解讀的東西)CPU執行。

所以啦!想完美的隱藏程式碼,保護軟體智慧財產權,似乎已是不可能的任務!但是,我也從工作經驗中慢慢體會到:想抄襲的人也很辛苦!他們的時間與人力薪資成本比我以前的認知高得多!多到必須認真考慮以抄襲方式做軟體生意的效益?不是賺多少的問題,而是會血本無歸的問題!

基本上如果是純盜拷,程式軟體完全不改,直接上市去賣,當然是明確違法,靠警察取締就可以了!只會這樣玩的低階壞蛋也不必盜取原始碼,最多就是玩玩破解序號的管制機制就可以了!但是被抓到還是要關的。會想盜取原始碼就是要進去改改商標介面,再編譯封裝成外觀不同的軟體,讓被盜版者要告他都很難!

我注意到的一個關鍵事實是:所有複雜到一定程度的軟體都必須持續的維護改版,你絕對不可能偷到程式後,只簡單改改商標就上市,即使勉強上市也會發現原廠持續改版一段時間後,你的東西就明顯落伍沒人要了!不幸買到的客戶也因為你無法後續服務,頻頻抗議甚至索賠,讓這種廠商狼狽不堪。

所以要抄就得抄得徹底,必須高薪聘請幾個程式高手,好好的解讀那個偷來的複雜程式,等到完全理解內容,可以除錯維護,甚至作一些小小的升級改版之後再上市。那麼你需要的時間與薪資成本就至少是直接請人開發的一半以上,甚至更多了!那還不如直接投資被抄襲的公司,買他們的股票比較容易賺錢,而且合法!

我們的日常工作,以某個角度來看,其實也是常常在「抄襲」別人的程式,我們開發程式時總會遇到種種困難,自己摸索研發很慢,就會試著Google一下別人是不是發生過類似問題,是不是有人好心會提供寫好的程式碼?通常都找得到,但是解讀別人的程式其實很累,常常也會耐不住性子,乾脆自己重寫算了!

所以啦!如果有人高薪雇用我去做「逆向工程」,解讀偷來的幾千甚至幾萬行程式,我是一點興趣都沒有的!因為又累又沒成就感,如果是我讀得懂的東西,自己重寫也寫得出來,何必辛苦的去犯法呢?

最近我改寫完成JavaScript版的車牌辨識程式,學生們立即提出:HTML5APP即使封裝後也很容易全部解開,原始碼會一覽無遺!他們寫的小APP程式也就罷了,老師寫的複雜辨識程式好像不宜如此公開吧?我反而比他們看得開,我不是神,我想得出的辦法,世界某處一定也有人想得出來!現在沒有,稍後也一定有,其實沒那麼神奇,我連專利都懶得申請,因為申請專利與被盜版時訴訟的時間都遠遠超過軟體的生命週期,沒太大意義的。

我暫定的對策是將數千行程式碼的註解都用另一個小程式「洗掉」!再將JavaScript程式碼全部串成一行!這是JS語言可以允許的編排結構,指令之間不必換行,有分號隔開即可。完全不換行的程式碼,閱讀起來當然很困難,想用人為判斷正確的一一斷行,就可以浪費盜版者幾天的時間。當然還有一些所謂防君子不防小人的騷擾技巧,可以拖延抄襲者解讀的時間,增加困難度,但其實都無法完全阻止他們終究完全掌握我的程式。我覺得這樣就夠了!

最關鍵的其實是「程式註解」!沒有註解的超大程式,連作者我自己要繼續動工寫程式都很難,誰能隨時記得幾千行程式?近百個公用變數與函數的意義?那些完全不懂我的流程用意的逆向工程師,想要完全理解程式沒有三五個月是一定辦不到的!拖延惡意的對手三五個月,我的產品已經賣得差不多了,該產品的熱潮需求已過,對手堅持繼續推出同樣的產品只會虧本而已!同時間我的研發腳步不會停止,他們想繼續跟產品原創者競爭,門都沒有!除非我索價太高或者退休!

其實這也不是我的創見,Google公司一直都是走類似的路,最核心的Google Maps等產品一開始就是公開程式碼的,至今也沒看到被其他「盜版」者取代啊?關鍵當然是抄襲者無法真的超越Google的技術,光是找到某時間階段的程式版本還是無用的!有自信的開發者就可以這樣,玩得很帥氣,我希望我也可以!

( 心情隨筆工作職場 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=yccsonar&aid=19753410

 回應文章

方正平
等級:8
留言加入好友
2014/12/21 17:38

建議可以申請某些專利。

沒法子呀,其他人經常以專利當做武器阻止後進者進入市場,逼得開放源碼也要以專利回擊。

不過,專利申請和維護需要成本就是了,而且需要優秀的專利法務人員合作。


鄉下老師(yccsonar) 於 2014-12-21 20:23 回覆:
好像有點離題了!