Kjava的安全技術規范,關于kjava的產品安全,在我開發以前往往都是被忽略的,但是到發行的時候卻往往被遺忘,導致了產品中出現安全隱患,第一,你的產品很輕易就被人反編譯;第二,你的圖片,音效都會被人盜用,給公司造成重大的損失。我就曾經吃過這個虧,以前開發的幾個東西被人盜用,并且在國內的幾個網站上公開下載,我個人損失較小,但是公司假如碰到了這種情況,就損失很大了。
所以我覺得應該根據我以往開發的經驗,整理出一套行之有效的公司kjava程序的安全規范,這也是非常有必要的。J 希望我這篇草稿文檔能起到拋磚引玉的作用,得到大家的更多的好辦法,我將不斷的整理并且形成公司的技術規范。在次感謝你的關注!
下面先說說我的一些經驗把,由于我本人的開發環境是WTK + Uedit,所以我的經驗也都是根據這方面來進行的,請大家注重,
第一,就是源代碼的混淆,這是一個非常值得重視的問題。首先這方面所存在的問題在于WTK默認的混淆器是retroguard,而這個混淆器使用起來非常的方便,只需要把它放在WTK的bin目錄下就可以了,我們通常在混淆的時候考慮到很多方面,retroguard最大的問題就在于他不能混淆Nokia 60SDK開發包的,也就是說我們開發的Nokia手機游戲是沒有辦法來混淆的,這可怎么辦呢,還好我們找到了一個叫做PRoguard的工具,這個工具混淆的能力要比retroguard還要強,甚至他可以幫助你刪除掉無用的代碼,精簡你的程序。
但是proguard的還有一個最大的不足就是他無法和WTK14集成,假如使用起來還需要自己手寫腳本,這是非常令人惱火的,大大降低了開發的效率。假如集成到WTK20中確又違反了移動的規定,采用了jdk14來編譯整個程序,移動測試很難通過,我當初就是吃了這個虧。
為了解決這個問題,我和幾個作技術的朋友討論商量了一個行之有效的辦法,我們仍然采用WTK14來做開發(這也是移動的規范所規定的),但是我們需要對WTK的一些內容編輯,主要是把他們的默認的混淆其設置成retroguard,并且在midpapi.zip中將諾基亞的SDK打包進去。好的我現在來具體的說明一下具體過程。
請先看附件的"增強混淆WTK"的兩個文件,ktools.properties和midpapi.zip這是我已經修改過的WTK系統文件,已經采用了設定默認的混淆器retroguard和打入nokia sdk的midpapi.zip(西門子,摩托等其他的開發抱環境也可以這么做)用他們去替換原有位置的文件就可以了,然后將retroguard放在bin的目錄下,再點擊WTK目錄的混淆菜單就可以了
這種方法經過測試,其混淆是安全的,難以被破解的,同時也符合移動的規范(移動要求代碼必須用jdk1.3來編譯而不能使用jdk1.4來編譯)所以還有一個工具JDK Check 1.0(beta)(1).exe(見附件)它可以用來檢查你的代碼使用哪個版本的jdk來編譯的,保證在移動的測試中能夠順利地通過!
我用過jbuilder中的混淆工具,也是retroguard,這是他自帶的混淆工具,但是我發現他編譯出來的東西也是jdk1.4這是我非常地迷惑,不知道是否能夠通過移動的測試,希望同事們能夠討論這個問題。
其次,在于游戲資源的加密,打包和壓縮,我推薦辦法是采用ResTool.exe(附件有),采用這個工具可以將游戲中的資源變成一個資源文件,但是并沒有加密,也沒有作到太大的壓縮,我覺得以后應該能夠解決改善這個東西吧。
希望大家不斷的能提出自己更好的經驗之談,我們一起來完成這個規范,我們今后交付合作伙伴的產品,都要經過嚴格的安全設置,降低公司的風險。謝謝大家!新聞熱點
疑難解答