如何保护Android应用程序免遭盗窃和修改应用程序本身?

时间:2011-12-12 23:16:59

标签: android security

这里有一个很好的报告,说明最近在Android市场上发生的骗局。

http://www.theregister.co.uk/2011/12/12/android_market_malware/

有人从根电话中复制了一些流行的游戏.apk文件,用smali反编译它们,添加代码使他们使用昂贵的高级短信服务,用自己的密钥重新签名,然后将它们放回Android市场。超过10K的用户在Google从市场上启动应用程序之前的24小时内下载了它们。

应用开发者如何以这种方式防止他们的工作被盗,修改和重新推销?我想你可以匹配你的应用程序的MD5哈希值,因为它是你运送它时(可能是你的应用程序在谷歌市场或你的一个服务器上保存),与应用程序的MD5哈希现在一样。但是我们没有用于检查.apk文件的MD5哈希的工具,并且应用软件看不到底层文件。

确保您运行的应用程序的身份完整性肯定是一个已解决的问题。什么是最佳做法?

3 个答案:

答案 0 :(得分:3)

不是全部,而是ProGuard

  

ProGuard工具通过缩小,优化和混淆代码   删除未使用的代码并重命名类,字段和方法   语义晦涩的名字。结果是一个较小的.apk文件   逆向工程更难。因为ProGuard制作   你的申请难以逆向工程。

答案 1 :(得分:3)

这种黑帽练习是不可避免的。无论你找到什么,一个幸运,聪明,耐心的黑客都会撤消它。

但是,你仍然希望能够努力工作,使大多数黑客更容易破坏你的保护。这就是人们经常称之为IT安全的行为。)

要调查的字段是:

  • obfscation
  • 你提到的CRC和MD5
  • 安全联网验证
  • 检查第一个
  • 的第二个应用
  • 自定义检查类加载器(你可以在android上执行吗?)

答案 2 :(得分:0)

如果您愿意花一些钱,那就去寻求一些专业的帮助,比如阿尔山。我们在企业级应用中使用过它。基本上它使用自己的加密重新编译.apk并创建一个新的apk,它将使您知道是否使用apk和其他此类实例进行了篡改。您可以参考此网址:https://www.arxan.com/了解更多详情并进行相应的研究。