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(附件有),采用这个工具可以将游戏中的资源变成一个资源文件,但是并没有加密,也没有作到太大的压缩,我觉得以后应该能够解决改善这个东西吧。
希望大家不断的能提出自己更好的经验之谈,我们一起来完成这个规范,我们今后交付合作伙伴的产品,都要经过严格的安全设置,降低公司的风险。谢谢大家!