站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2ME 专题手机游戏盗版现象的深入分析及对策

手机游戏盗版现象的深入分析及对策

摘要: 手机游戏盗版现象的深入分析及对策
<tr><td>
http:///tech/article2193.html
J2ME技术是由美国sun公司提出的,旨在为手机等小型手持无线设备提供可移植的java扩展机制。从此技术提出到现在已经过了好几年的时间,得到了手机厂商、运营商、软件开发商的广泛支持。目前,可以说支持J2ME的手机已经在全世界范围内普及。在中国,中国移动于2002年推出了百宝箱业务,使得用户可以通过移动梦网以手机支付的形式下载和购买J2ME软件,截至2005年底,此项业务的月总收入已经超过3000万元人民币。中国联通也在2004年推出了神奇宝典UniJa业务,为CDMA用户提供J2ME软件下载的增值业务,目前也已经取得了可观的收入。
然而,有调查数据显示,在中国的Java手机用户中,仅有约30%为下载J2ME应用和游戏付费,而大部分用户则使用盗版手机软件。这是因为,J2ME软件由于其先天性的安全性缺陷,使得应用很易于破解,且难以对非法传播进行有效控制。通常是在百宝箱上发布的新应用、新游戏,在短短的几个小时内就会在各个盗版web和wap站点上迅速传播开来,而这些盗版软件,与从百宝箱上下载到的正版软件毫无二致。可想而知,当用户知道可以轻易的免费获得软件之后,怎么还会去付费下载软件呢?盗版导致开发商的收入下降,使得开发商无法向研发投入更多资金,并严重的打击了他们的开发积极性,从而又导致软件质量的下降,而质低价高的应用更无法吸引用户为它们买单,而去选择盗版。这样形成了一个恶性循环,长此以往,中国手机软件的市场前景令人担忧。
J2ME技术的软肋造成的非法传播现象并非仅在中国出现,国外运营商、开发商同样面临类似的境况。国际组织OMA(OpenMobileAlliance.org)提出了无线设备上的DRM(Digital Right Management 数字版权管理)方案,用来保护开发商和运营商的利益。DRM的基本理念是,把内容(图片,铃声,主题,游戏,应用……)和使用权限分开,人们对使用权付费而不是对内容本身付费。理念是很好的,然而,OMA的方案需要硬件的特殊支持,也就是说无法适用于市场上保有的巨大基数的现有终端。
有些国外公司提出了自己的基于现有技术的DRM框架,他们通过一定的技术手段,向J2ME软件自动中加入一些权限验证代码,使得使用者在访问到真正的内容之前要先经过权限的检测,来达到版权保护的目的。百宝箱在JAR中加入的5K代码也是想达到类似的目的。然而此方案有一个致命的缺陷,即过于脆弱。它的假设前提是,使用者最多不过是存在恶意的普通用户,而并非经验丰富的破解者。而对于有一定水平(相对于PC软件的破解者,这个水平要求要低得多)的破解者,完全可以通过“反编译-删除权限检测代码-重新编译-重新打包”这样模式化的手段来轻易进行破解,对于他们,这种脆弱的防线形同虚设。而一旦破解者将破解后的软件非法传播出去之后,他们的一切努力都将付之东流。
有一部分软件开发商在开发过程中就考虑到了版权保护的问题,为了保护自身的利益,他们在程序中人为的加入了注册码验证机制,要求使用者必须购买一个合法的注册码或序列号才能访问软件的全部功能。比如北京掌讯远景代理的《厨行天下》就采用了这样的思想。然而,由于手机软件技术平台的限制,注册码无法与终端实现绑定。也就是说,有恶意的用户完全可以取得一个合法注册码后将其与软件的拷贝一起传播。因此这种方案同样无法对开发商利益进行有效保护。而进一步说,有经验的破解者同样可以按照前面说过的方法,定位到注册验证代码,将此代码删除或篡改后重新打包发布。《厨行天下》就是这样在发布不久就惨遭破解。
那么, J2ME应用的那些缺陷使得它如此脆弱又易于传播呢?下面我从技术方面对这些问题进行详细的分析:
1. 体积小便于传播。J2ME软件通常以JAR包的形式进行发布。一个JAR包实际上就是一个以.jar为扩展名的zip压缩文件,里面包含应用的所有可执行文件(.class文件)和资源文件(图片,音乐,音效,数据等)。而由于手机机能、存储空间、无线网络带宽等等原因,J2ME软件的体积一般都比较小,从几十K字节到数百K字节不等,与动辄几十M几百M甚至上G的PC软件相比,这样小的体积,使得J2ME软件的获取,存储和传播都非常容易。
2. 便于安装。通常J2ME软件都能以很多种不同的方式安装到设备上,常见的有:无线下载(OTA),数据线,红外,蓝牙等。移动梦网百宝箱和联通UniJa业务都限制了手机只能通过无线下载方式安装应用。但调查显示,大部分用户仍然使用数据线等手段安装软件和游戏。显然,这部分用户使用的都是盗版软件。
3. 易于在手机和电脑之间相互传输。绝大部分手机都提供至少一种手段(数据线、红外及蓝牙等)使得手机可以和PC相互传输数据,如照片、铃声等。这也使得J2ME软件很容易从手机传输回到PC上。虽然一些手机厂商为了保护开发商的版权并未在官方的连接软件中提供把J2ME软件传回PC的功能,但一些第三方软件(如MMMB: MobiMB Mobile Media Browser)和一些手机专用软件(如SeleQ)却仍然支持此项功能。部分用户利用此项功能,从百宝箱付费下载到软件后,回传到电脑,再用各种方式非法传播软件的拷贝。
4. 难以与硬件设备绑定。有些PC软件可以通过获取硬件的唯一识别码(比如网卡的唯一ID)来把软件与付费用户的特定硬件绑定,比如,根据硬件识别码来产生对应的注册码,这样可以避免注册码的非法传播。但这个手段在手机上却不可行。由于安全性的考虑,绝大部分手机中的2ME可以访问的硬件属性极其有限,因此无法与当前硬件进行匹配性测试,来验证当前运行的拷贝是否合法。而如果使用普通的注册码机制(不与硬件绑定),就无法控制恶意用户将软件拷贝和他获得的合法注册码一起传播的行为。
5. 可执行代码可以被轻易的反编译,进而被非法修改。由于前面第3点,J2ME软件的载体JAR包很容易得到,只要用winzip等软件解压缩就可以获得全部的可执行代码(.class文件)。这时只要使用jad,jode等反编译工具对类文件进行反编译,在大部分情况下都可以获得可编译的.java源代码。这时只要重新编译,重新预校验,并重新打包,就可以获得和原版功能完全一致的新软件包。可想而知,在重新编译之前,破解者完全可以任意的修改代码。虽然大部分情况下,开发商都会对其发布包中的类文件进行混淆,但一般来说混淆只能使得反编译后的代码可读性变差,而程序的逻辑是不变的。对于破解者来说,没有必要读懂全部代码,只要找到关键代码,也就是注册码验证代码,并加以篡改就可以了。
6. 即使不进行重编译,仍有可能被非法修改。有些时候使用jad,jode等工具无法将全部.class文件彻底反编译,比如,反编译后的源代码可能包含编译器无法识别的虚拟机指令。虽然这些源代码因包含错误语法而不能直接重新编译,但仍然对破解者具有参考意义。水平较高的破解者可以参考反编译后的代码,定位到关键代码处,比如——注册码验证后的跳转语句,然后使用十六进制编辑工具(如IDA pro, UltraEdit32, Hex workshop等)直接修改.class二进制文件,改变跳转语句的逻辑,比如把虚拟机指令ifeq(等于零则跳转)改变为ifne(不等于零则跳转),这样仍然可以达到破解的目的。

[]当软件的所有源代码都完全暴露在破解者面前的时候,任何源代码级的保护方案似乎都显得苍白无力。
那么,是不是我们只能在盗版者面前放弃抵抗、束手就擒了呢?我认为,虽然我们无法从根本上消灭盗版现象(连Windows都被破解了),但可以通过一定的技术手段尽可能的增加破解成本,即最大限度的给破解者制造麻烦,从而将破解的门槛大大提高。无保护的J2ME软件,只要会使用反编译、打包等工具,并有一定Java语言基础就可以轻松进行破解。但进行保护处理之后,破解者除了必须精通java语言,熟练使用各种相关工具以外,还必须理解Java虚拟机指令,并具备极大的耐心才有可能完全破解被保护的软件。

目前,我们已经根据以上指导思想开发出了手机软件反盗版技术,此方案沿用了DRM方案(数字版权管理)的思想,即:把内容和使用权分开,经过加密的内容可以任意传播,但必须获得适当的使用权后才能使用该内容,使用权限对象中包含对内容进行解密的必要数据。我们充分考虑到了现有硬件平台和软件技术的局限性,在方案中对前面提出的各种破解手段均设计了相应的对策。
我们的技术方案有以下几个技术优点:
1. 完全基于MIDP1.0技术规范实现,不需要设备的特殊支持,可适用于市面上绝大多数终端。
2. 完善、可靠、健壮的DRM解决方案,把内容本身与内容的使用权限成功的剥离。内容已被加密,可以用任意方式传播。加密后的手机软件仍然是标准的J2ME程序,能够正常安装,但必须从服务器端获得适当的使用权限才能正常运行。而使用权限也可以使用多种方式、通过多种渠道进行销售。
3. 可以实现以使用天数和使用次数为单位的,非常灵活的资费控制模式。可以实现一次或多次免费试用。
4. 通过技术手段,直接对最终的二进制可执行文件(.class文件)进行加密。开发者在开发流程中完全不必考虑版权保护问题,而可以把精力全部投入到内容的开发上。
5. 验证流程非常简单,对用户体验的影响很小。而加入的验证代码对软件的性能影响极小。
6. 加入的代码非常精简,对软件发布包体积的影响很小。
[]
综上所述,本技术方案将软件的内容本身与其使用权限进行了有效的分离,拷贝可以自由的传播,但必须获得适当的使用权限才能正常使用。权限的发放则完全由服务器控制,安全而可靠。本技术使得J2ME等无线软件易于传播的特性不再是开发商的敌人,而成为他们拓展市场、增加收入的有力战友。
[]
[]目前本技术正在申报国家发明专利,我们希望就此技术寻求两个层面的合作:
1. 投资合作
2. 基于本技术的商业下载平台的改造或搭建

有兴趣与我们合作的公司请与我联系,联系方式:
email: rocks@cnjm.net
MSN: rocks_joyamigo@hotmail.com
[]来信请注明您的姓名,公司,职位,以及想与我们进行哪个方面的合作。好奇者恕不回复。
http:///tech/article2193.html
</td></tr></table></td> </tr> <tr> <td background="/pic/split.gif" height=1></td> </tr> <tr> <td class="tdMargin1">
↑返回目录
前一篇: 极限压缩JAR包中的图片
后一篇: CLDC API和MIDP API源代码下载地址(包含各个版本)