来自盗版的Android代码混淆和安全的Android应用程序

时间:2011-09-05 07:35:41

标签: android security obfuscation rms

目前我是Android开发的新手..我需要开发一个安全的Android应用程序,以便我可以将它从getteg盗版中保存。

为了应用程序的安全性,我在J2ME中使用了RMS。在J2ME中我使用以下步骤:

  1. 生成序列号(某些随机数)
  2. 在rms中保存该号码,在下次启动应用程序时显示 屏幕上显示相同的序列号,并要求用户输入有效的激活 然后,如果用户输入正确的激活码然后应用程序 activate和flag设置为true,我保存此标志值 其他rms
  3. 如果标志值为真,则向用户显示主屏幕 再次启动应用程序,否则显示激活页面。
  4. 我想在android中实现这个概念。请指导我如何做。或者告诉我,如果有任何机构知道在android中做这个的更好的方法。

    其次我想在释放应用程序之前混淆apk文件。在gogling 2天后我发现它可以使用proguard完成。但是我没有得到如何混淆代码。请指导并帮助我进行排序两个问题。

    由于

3 个答案:

答案 0 :(得分:4)

实际上没有办法保护任何类型的客户端代码,无论是Android * .apk,Java * .jar文件,还是在用户浏览器中运行的一些JavaScript代码。保护自己免受盗版的最佳方法是使应用程序依赖于您提供的某些服务器端计算。

由于您使用的是RMS,听起来您已经需要进行服务器端计算。与其打扰用户输入激活码,为什么不在购买应用程序时将此激活码与用户的电子邮件地址相关联,然后为什么不将OAuth用于他们的Google帐户来验证用户是否拥有已知购买该应用程序的电子邮件地址?

答案 1 :(得分:3)

  • 关于RMS

Michael Aaron Safyan说了一切,没有什么可补充的。

  • 关于ProGuard

ProGuard现已集成到Android框架中,基本上无需设置任何工作。您只需启用它as explained in this article,并在需要时自定义其配置。 “如果需要”,因为默认配置适用于大多数项目。如果通过混淆过程重命名大多数包,类和方法的反射,你只需要小心使用。

答案 2 :(得分:0)

Android中与RMS的并行是SharedPreferences。 但是,sharedPreferences xml文件不像J2ME中的RMS文件那样受到保护(至少在某些设备中)。任何拥有root设备的人都可以轻松地读写这个文件......

因此,我建议您阅读有关Android的应用程序许可的信息。它远非完美,但它是一个内置功能,您可以轻松集成。 http://developer.android.com/guide/publishing/licensing.html

修改 混淆: 要对项目进行模糊处理,您只需将proguard.config=proguard.cfg添加到default.properties文件中。

将根据defult proguard.cfg文件中所述的配置进行模糊处理。 请注意,您的代码只会在构建最终APK(Android工具 - >导出...)时进行模糊处理,我建议在混淆后测试最终的APK,尤其是当第三方库是构建过程的一部分时