第241章 Network
第241章 Network (第2/2页)之所以没有去技术部让他们去做,第一个,这些程序员未必做得出来,第二个,这个工作量并不大,只是植入一个程序。
最关键的是,如果可以解决这个问题,那么核心技术必须牢牢地抓在自己手里。人嘛,不能吃一堑不长一智啊。
所以林渊准备试试自己能不能够跑通。
坐在电脑前,林渊调出了谷歌AdMOb的开发者文档。以他前世的技术底子,看懂这些底层的逻辑并不难。
但真正实操起来,林渊很快就发现了2010年安卓开发的两个技术难题。
第一个难题是广告ID被劫持篡改。如果按照谷歌官方的常规教程,直接把代表自己账户收益的PUbliSherID写进安卓的StringS.Xml(字符串配置文件)里,那国外的黑客只要花三分钟解包,就能把这串代码替换成他们自己的ID。到时候游戏是林渊的,广告费全进黑客口袋了。
第二个难题是暴力剥离SDK。稍微高级一点的破解团队,会直接在反编译后的Smali代码层,把所有调用广告的函数全部删掉,搞出一个干干净净的“纯净无广告版”,那林渊照样一毛钱赚不到。
不过,这些问题对于2010年的程序员来说或许是无法解决的难题,可他林渊不属于2010年。
林渊笑了笑:“完全小儿科,给我擦皮鞋。”
在未来的安卓开发环境里,这些防破解的底层逻辑早就是行业的基操标配了。
林渊双手放回键盘,开始噼里啪啦地敲击起来。
针对第一个问题,他没有用常规的Java语言写配置,而是直接动用了NDK,用底层的C++语言写了一个极其复杂的动态加密算法。
他把自己的广告ID拆分成几十个碎片,通过位运算(XOR)和动态混淆,死死地锁在了一个.SO动态链接库文件里。
在2010年,能反编译Java的人一抓一大把,但能逆向破解底层C++汇编代码的人,全球都找不出几个,更别说闲得蛋疼来专门破解一款休闲游戏的。
针对第二个剥离SDK的问题,林渊做得更绝。
他写了一个非常阴险的“心跳绑定机制”。他把游戏主线程的渲染引擎,和广告SDK的反馈机制强行绑在了一起。只要玩家在屏幕上划一刀切碎西瓜,底层就会去检测广告组件是否存在。
如果国外的破解者强行把广告代码删了,游戏刚开始还能正常运行,但只要玩到第三分钟,由于接收不到广告组件的“心跳回传”,整个游戏的内存池就会瞬间自我溢出,直接引发闪退死机。
把这两套在未来烂大街、但在现在堪称“黑科技”的代码敲完后,林渊仔细地进行了深度混淆和加密封装。
看着屏幕上打包生成的最终版APK安装包,林渊满意地点了点头。
果然天生牛马就爱工作,他每次自己上手敲代码的时候,都觉得整个人神采飞扬。或许是出于技术碾压的成就感,或许他骨子里是真的喜欢干这行。
这套封装好的核心利益模块,只有他自己一个人知道密钥。
林渊怎么都不可能让之前张凯那种拿着源码背刺的事情再次发生。现在的他,谁都不信。
【写完这张,还有4张,这是礼物加更的,今天12点之前不一定写得完,但是明天肯定是写得完的,我不会赖账的。】