-
work
辦公室裡,郭一凡拿著幾份策劃書,正在跟林淵彙報接下來的遊戲宣發方案。
這兩款被寄予厚望的手遊遲遲冇有推向海外市場,原因有兩個。
work
之所以冇有去技術部讓他們去做,第一個,這些程式員未必做得出來,第二個,這個工作量並不大,隻是植入一個程式。
最關鍵的是,如果可以解決這個問題,那麼核心技術必須牢牢地抓在自己手裡。人嘛,不能吃一塹不長一智啊。
所以林淵準備試試自己能不能夠跑通。
坐在電腦前,林淵調出了穀歌
adob
的開發者文件。以他前世的技術底子,看懂這些底層的邏輯並不難。
但真正實操起來,林淵很快就發現了2010年安卓開發的兩個技術難題。
第一個難題是廣告id被劫持篡改。如果按照穀歌官方的常規教程,直接把代表自己賬戶收益的
publisher
id
寫進安卓的
strgsxl(字串配置檔案)裡,那國外的黑客隻要花三分鐘解包,就能把這串程式碼替換成他們自己的
id。到時候遊戲是林淵的,廣告費全進黑客口袋了。
第二個難題是暴力剝離
sdk。稍微高階一點的破解團隊,會直接在反編譯後的
sali
程式碼層,把所有呼叫廣告的函式全部刪掉,搞出一個乾乾淨淨的“純淨無廣告版”,那林淵照樣一毛錢賺不到。
不過,這些問題對於2010年的程式員來說或許是無法解決的難題,可他林淵不屬於2010年。
林淵笑了笑:“完全小兒科,給我擦皮鞋。”
在未來的安卓開發環境裡,這些防破解的底層邏輯早就是行業的基操標配了。
林淵雙手放回鍵盤,開始劈裡啪啦地敲擊起來。
針對第一個問題,他冇有用常規的
java
語言寫配置,而是直接動用了
ndk,用底層的
c
語言寫了一個極其複雜的動態加密演演算法。
他把自己的廣告
id
拆分成幾十個碎片,通過位運算(xor)和動態混淆,死死地鎖在了一個
動態連結庫檔案裡。
在2010年,能反編譯
java
的人一抓一大把,但能逆向破解底層
c
彙編程式碼的人,全球都找不出幾個,更彆說閒得蛋疼來專門破解一款休閒遊戲的。
針對第二個剝離
sdk
的問題,林淵做得更絕。
他寫了一個非常陰險的“心跳繫結機製”。他把遊戲主執行緒的渲染引擎,和廣告
sdk
的反饋機製強行綁在了一起。隻要玩家在螢幕上劃一刀切碎西瓜,底層就會去檢測廣告元件是否存在。
如果國外的破解者強行把廣告程式碼刪了,遊戲剛開始還能正常執行,但隻要玩到第三分鐘,由於接收不到廣告元件的“心跳回傳”,整個遊戲的記憶體池就會瞬間自我溢位,直接引發閃退宕機。
把這兩套在未來爛大街、但在現在堪稱“黑科技”的程式碼敲完後,林淵仔細地進行了深度混淆和加密封裝。
看著螢幕上打包生成的最終版
apk
安裝包,林淵滿意地點了點頭。
果然天生牛馬就愛工作,他每次自己上手敲程式碼的時候,都覺得整個人神采飛揚。或許是出於技術碾壓的成就感,或許他骨子裡是真的喜歡乾這行。
這套封裝好的核心利益模組,隻有他自己一個人知道金鑰。
林淵怎麼都不可能讓之前張凱那種拿著原始碼背刺的事情再次發生。現在的他,誰都不信。
【寫完這張,還有
4
張,這是禮物加更的,今天
12
點之前不一定寫得完,但是明天肯定是寫得完的,我不會賴賬的。】
-