论坛首页 Java企业应用论坛

J2ME - 混淆代码

浏览 2497 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-11-30   最后修改:2008-12-02


 

这两天在弄个J2ME相关的东西,下载了一个诺基亚的WTK2.5.2,也安装了Eclipse的J2me插件:eclipseme .

这些都很顺利,但当用建立J2ME 项目后,并,调用此插件的Export Antenna Build Files 时,将生成Ant 相关的配置文件:包括build.xml 和eclipse-build.xml.

文件eclipse-build.xml 中有一段:

 

<wtkobfuscate jadfile="${path.build.output}/${midlet.name}.jad" jarfile="${path.build.output}/${midlet.name}.jar">
         <argument value="'-keep public class * extends javax.microedition.midlet.MIDlet'"/>
         <argument value="-dontusemixedcaseclassnames -dontnote -defaultpackage ''"/>
</wtkobfuscate>

 

这是混淆相关的配置,如果你不需要,直接注释掉就可以了,但是如果你不想你的代码被轻松的破解,那么就需要这一小段,但这个诺基亚的默认WTK好像没有安装关于混淆器的东西,所以当我们直接运行这个Ant build 你的项目是会报出一个错误:

 

BUILD FAILED
E:\j2me\HelloWorld\eclipseme-build.xml:42: The following error occurred while executing this line:
E:\j2me\HelloWorld\eclipseme-build.xml:62: The following error occurred while executing this line:
E:\j2me\HelloWorld\eclipseme-build.xml:65: No obfuscator found in WTK bin directory, CLASSPATH, or properties.

 

所以需要我们自己下载一个: proguard ,解压后,把proguard.jar文件直接放入 WTK_HOME/bin 目录,就一切ok了。

当然你也可以选用其他类似的混淆器,例如retroguard

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics