[請益] 請問大家如何保護程式碼?(防反組譯)

作者: KJzelda (cheer)   2018-09-26 17:44:30
各位好,
小弟目前需要對公司新產品(硬體裝置)開發影像軟體演算法,
並包個API給客戶使用,
這個裝置演算法須處理的資料量很大,
且速度上希望達到real time的效果。
但老闆對於公開API(dll?)在外覺得很不放心,
怕被有心人士或競爭對手反組譯破解後得知我們的演算法核心,
因我之前對於這種開發案並無經驗,
不知道一般商業用API或SDK都如何防反組譯?
上網google了一下發現普遍都是說再怎麼防,
被破解只是時間長短的問題,真的是如此嗎?
若是把演算法運算布置在雲上的話(ex.AWS)是可行的嗎?
但又覺得光資料傳輸就很難達到real time。
請教大家是否有相關經驗可以分享給我,謝謝。
作者: DirKai (Dirk_AI(MIX))   2018-09-26 17:48:00
哪間公司可以說嗎? 通常是很厲害才需要防成這樣吧
作者: hidog (.....)   2018-09-26 18:31:00
真的很重要的話 應該找專業的來防 而不是讓你自己找方法硬體裝置的話 演算法是跑在embedded linux上嗎?如果是 這應該很難破吧 不同平台的組語長相都不太一樣
作者: pttano (pttano)   2018-09-26 18:45:00
dll不是ms的特殊種嗎?怎麼會是linux,linux我只知道.so,.a
作者: fukinhot (抱歉粗口我怕熱)   2018-09-26 18:46:00
ﴮNET Obfuscator,其他語言你可以用混淆器(Obfuscator)當關鍵字找
作者: pttano (pttano)   2018-09-26 18:49:00
怎麼防要看你們的演算法,多一組iv亂算或是protocol 加入time stamp 或是protocol加幾個欄位會消耗cpu time但實際上也是沒意義的
作者: f19870421 (魚兒)   2018-09-26 18:51:00
跟老闆說你沒做過 請他找專業的
作者: pttano (pttano)   2018-09-26 18:52:00
簡單就是用硬體加速算有意義的,軟體耗點cpu算沒意義的
作者: hotdogmc (陳全)   2018-09-26 19:08:00
沒有辦法防吧…
作者: sarafciel (Cattuz)   2018-09-26 19:33:00
看能不能把演算法弄在硬體的ROM裡面 API負責call就好不過講白了你把東西交到別人手上有心要破都是可以破的就是門檻跟時間問題而已
作者: now99 (陳在天)   2018-09-26 19:44:00
放硬體吧
作者: hidog (.....)   2018-09-26 19:45:00
因為硬體我會猜是embedded pc平臺應該不用強調
作者: menShow (The Show)   2018-09-26 19:55:00
軟體混淆器,硬體加密狗加殼.但都只是增加破解難度
作者: splitline (台ㄎ廢文王)   2018-09-26 21:00:00
不可能完全防反組譯啊,只能增加破解的成本讓破解划不來
作者: accessdenied (存取違規)   2018-09-26 21:03:00
如果你知道MS Adobe 這些做視窗軟體的,花多少錢在研發註冊碼邏輯,啟動機制,反盜版的安裝程序,卻每次發行新版馬上對岸就有註冊機,綠色版,免安裝可攜版,你就不會糾結在這點。沒被破解只是因我你的東西沒什麼價值而已。*只是因為
作者: ap954212 (death is like the wings)   2018-09-26 21:05:00
推樓上
作者: badyy (nick)   2018-09-26 21:22:00
TrustZone/SGX 錢花下去,平台硬體老大哥能保護你XD
作者: lovebridget (= =")   2018-09-26 21:24:00
寫爛一點啊 不過八成已經夠爛了
作者: wave1et (百分百殖利率)   2018-09-26 21:32:00
申請專利阿
作者: mathrew (Joey)   2018-09-26 21:48:00
有這麼好防 別人花錢都是傻子
作者: kurtsgm   2018-09-26 22:23:00
放雲端可以啊 但是你做影像...可以承受latency嗎....
作者: alog (A肉哥)   2018-09-26 22:23:00
等申請到你的技術大概也過時了 申請沒這麼快 還有維持你技術優勢的成本 光蒐證調查什麼的有必要也是要找逆向工程的人才幫你看
作者: kurtsgm   2018-09-26 22:24:00
為了防反組譯如果犧牲太多performance可能不太划算
作者: alog (A肉哥)   2018-09-26 22:25:00
另外做混淆只是加慢他的運作速度 因為會產生很多不必要的運作跟損耗另外是 只有人有心 就算不做反編譯 大致上的算法規則可能會因為大量反覆測試下會看到一些關鍵會做的人也不會直接看逆向或看程式碼 因為沒有當初設計的原理的相關資料無法再進行改良跟後續維護只要你們那個產品包進去很划算 不會有人直接挑戰你那個api還打算重造輪子 有也會是用資料去探出你們的處理邏輯剩下的則由他們現成開發好核心再進行改良 簡單來說 就是模仿、借idea但他們都沒動到你的程式哦如果你老闆認為這個商機很大或是已經有知道哪家真的會硬幹那麼你們就得真的砸錢出來找專家來幫你測測看一邊攻一邊看如何防禦 至少難度門檻拉高一點但還是要強調 一切還是時間早晚的問題別傻傻的沒有考量你維持這個技術優勢所需要投入的成本 這是很多方面的開銷
作者: s89162504 (阿本)   2018-09-26 22:50:00
影像處理演算法有這麼好逆向嗎symbol去掉 正常-O2 正常編出來都沒這麼好解吧
作者: ktecv2000 (跛銘)   2018-09-26 23:16:00
你再怎麼做反逆向通常痛到的應該是要打你們產品的hacker…XD對於真的要竊取你們技術的hacker就只是增加點成本而已,如果真有那個價值那何樂不為?對於前者來說,你的產品不一定有洞,逆向成本一拉高它可能就不想做了,但對後者來說你核心技術就擺在那邊,要挖掘出來只是時間早晚問題如果還是真要做,你可以去逛逛看雪或是reddit的Reversiing Engineering版,看一下駭客們平常都怎麼玩的
作者: testPtt (測試)   2018-09-26 23:50:00
直接做成OS
作者: olozil (ヾ(ΦωΦ)ツ)   2018-09-27 07:57:00
簡單的加個殼跟老闆有交代就好(′゜ω。‵)
作者: y3k (激流を制するは静水)   2018-09-27 09:04:00
擾亂+runtime compression就差不多了 要更強保護變雲卡實在XD
作者: pttano (pttano)   2018-09-27 13:12:00
千萬不要拿混淆器來亂用
作者: viper9709 (阿達)   2018-09-27 23:15:00
二樓正解
作者: buper (ymsrc)   2018-09-28 00:02:00
寫爛,就不會有人想扣了(x

Links booklink

Contact Us: admin [ a t ] ucptt.com