第九章 我叫蝉思动(1/2)
从鼎龙大厦20层的落地玻璃墙看出去,中官村的繁华一览无遗。
五年前,张至诚隔窗眺望时,心里是一览众山小的成就感,现在他感觉到的却是悬崖边的阵阵寒风。
已经到开发尾声的APP是他这辈子最大的赌博,这个叫“梦真魔镜”的APP可以用手机体验虚拟试衣。
虚拟试衣并不是新鲜玩意,市面上也有了手机虚拟试衣的APP,“梦真魔镜”不一样。
它不仅可以让人自拍后跟服装、鞋帽和皮包之类的装饰品实时合成,还可以把手机当成3D扫描仪现场扫东西。
没错,把手机变成手持3D扫描仪才是“梦真魔镜”的本质,只是软硬件技术都还不够成熟,只能用来玩,所以才把用途定位在虚拟试衣上。
即便如此,“梦真魔镜”的商业价值也足以震动整个行业,之前几次小规模的技术演示,已经让十几家投资公司追上门来开盘口,都是几千万的规模。
张至诚都拒绝了,他缺钱,为了这个APP,他已经把公司所有的利润,连带他的老本全压了上去。
可他对“梦真魔镜”有百分之二百的信心,投资公司丢下几千万就想拿走公司的大把股份,他真答应了,以后会后悔得要死。
现在他真有些后悔了,自己不该拒绝得那么干脆。
在APP进入测试阶段时,张至诚发现自己忽略了一个巨大的威胁:反编译,也就是破解。
“梦真魔镜”的核心价值是代码,而现在的安卓APP,反编译不要太简单,毕竟是开源体系。
苹果的难一些,但对高手来说,只要肯下工夫,也没有破解不了的。
张至诚一直在国外留学,五年前带着技术回国创业,业务跟手机没关系,对国内的版权问题没什么深刻认识。
现在他才明白,“梦真魔镜”的代码如果得不到有效保护,一旦上市,不到一个月,同样的APP就能遍地开花,而他对这些强盗毫无办法。
上法院?
拖你个两三年,就算讨回了公道,强盗已经吃饱洗白,统治了市场。
这段时间张至诚所有精力都放在反破解上,不指望别人永远破解不了,只要把难度提升到高手也要花相当长时间就够了。
他估算过,只要三个月内不被破解,“梦真魔镜”就能圈完市场。
张至诚是编程高手,他把自己当作未来的潜在破解者,寻求各种反破解手段。
然而不管是公司里的技术骨干,还是他相熟的其他高手,交出来的东西,在他手上都熬不了两天。
收拾心神,张至诚一条条删着邮箱里的垃圾邮件,暗叹自己真是病急乱投医,居然跑到同城网站去发招聘信息,结果收了一堆广告。
正删得手酸,一条主题明显不同的邮件进入他的视线。
“重点是so库保护吗?
我可以试试。”
点开邮件,正文只有一个QQ号。
应该是个科班出身的码农吧,写邮件就跟写代码似的。
张至诚想了想,上QQ把这个“蝉思动”加了好友。
他已经不抱什么希望,就像他在微软、苹果和IBM的朋友说的那样,要让别人三个月内破解不了,至少得下半年工夫,现在他已经没有半年时间了。
能做的只有在市场推广上动作快点,抢在破解前圈到尽可能多的地盘。
不过跟人聊聊,说不定会有新思路。
【说下你的大概方向吧,是加壳、二次打包还是指纹校验?】
张至诚发去信息,一般的安卓APP都是Java写的,虽然有混淆、加壳、数字签名、二次打包等保护方法,但Java本身就很容易逆向,所以反编译没什么难度。
“梦真魔镜”和大多数手游一样,Java只是写界面,底层是C/C++写的,核心代码放到so库里,可以提升运行效率,也方便保护。
so库文件就相当于Windows的Dll文件,保护住它就保护住了核心代码。
目前so库保护也就加壳、二次打包这些方法,大家都已经熟悉了,高手破解起来也不是太难。
【都不是,可以给个程序先试试,具体报酬是多少?
试过后能先付一半吗?】
“蝉思动”的回复让张至诚想右上角,so库保护就这些路子了,你还能凭空变一个出来?
还问多少钱,五毛你要不要?
【一周内我反编译不了,就给你十万!】
他咬着牙回复,再找了个APP的源代码发过去。
“刚学编程的吧,不知道天高地厚……”
张至诚摇头苦笑,他想起当初自己刚留学那会,也是自负得不行,结果在一帮巨巨面前落得灰头土脸。
面对这种后辈,他还是有耐心教教对方什么叫现实。
【好,三天后回你。】
这次张至诚利索地右上角了,三天就能搞定?
以为是写“Helloworld”啊?
这只是一个小插曲,忙起来就忘了。
到第三天打开QQ,“蝉思动”发来一个文件,张至诚才记起有这么回事,可他正忙,没理会。
中午约了一个高人,是国内一家互联网巨头的技术总监,安全方面造诣很深,他得准备资料。
到了中午,张至诚正要关电脑,记起这事,把文件收了下来。
是之前他给那个“蝉思动”的APP,已经重新打了包。
算算还有半个小时,抱着“告诉那家伙现实有多残酷”的心思,他开始反编译这个APP。
先上Dex2jar和JD-GUI这样的反编译工具,这是小白都会用的,如果连这一关都过不了,中午自己就有了新的谈资。
嗯,果然有点门道,一般工具对付不了,不过看起来像是加了外壳,难道是壳中套壳?
张至诚的兴趣上来了,这一步搞不定,就从内存入手。
就算是so库加壳,都是在内存中调用,分析内存就能脱壳。
把内存工具把数据抓出来,看着一串串的字符,他愣住了,内存的状态不太对啊,数据为什么会是这个样子的?
这完全不认识啊!
这一刻,张至诚仿佛回到了大学时代,第一次上linux课的时候,老师在念:“这是bss段、data段、rodata段、text段”,而他对着计算机满屏的八位数干瞪眼。
半小时后,张至诚在内存数据上依旧找不到符合linux的特征,他不知道该怎么形容自己的内心感受,大概离崩溃不远了吧。
我了个草!
难道你是做了个新的虚拟机,把APP丢虚拟机里了!
?
打个比方,他原本想要的是一个保险箱,收到的却是一个次元袋……
安卓的核心是linux,可如果有人用一种谁都不认识的语言,写了一个可以在安卓运行的虚拟机,再在虚拟机里运行APP,这让人怎么破解?
虚拟机把数据在硬件上运行的特征都改了,要破解APP,还得先破解虚拟机。
虚拟机是一般人能写得出来的?
就算是在软硬件底层有相当造诣的高手,也得凑一群,花大把时间才搞得定。
而破解一种语言和方法完全陌生的虚拟机,难度比破解PS4还要大。
要知道全球所有的顶尖黑客都在破解PS4,花了两年时间才有进展。
“张总,黄总来了,张总?
张……”
秘书推门进来的时候,看到张至诚就一直保持着两眼发直,盯着电脑屏幕的姿势。
秘书又敲门又叫人的,就是没反应。
跟在后面的人制止了秘书下一步更激烈的唤醒行动,走到张至诚背后,看到底是什么东西。
然后,就没有然后了,黄总很快就跟张总一样两眼发直地盯着屏幕,简直比看绝世美女还要专注。
秘书无语,悄悄退了出去。
“像是用虚拟机的核心层,堆栈模式都是新的,甚至内存映射也不认识。”
“是啊,内存页的管理也看不出脉络,比JVM细致得多。
哟,黄总!
你来了啊!
哎呀,看得太入迷了不好意思!”
“一样一样,不是腰痛我还不想动呢。”
“您看……如果这个是层壳,能破解吗?”
“没有破解不了的软件,关键是看时间。
这个嘛,差不多是要原始人化验牛奶里有没有蛋白精吧。”
本章未完,请翻下一页继续阅读.........