android - 如何保护 Android 应用程序免受盗窃和应用程序本身的修改?

标签 android security

这里有一份关于最近通过 Android 市场实现的骗局的好报告。

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

有人从 root 手机上复制了一些流行的游戏 .apk 文件,用 smali 反编译它们,添加代码使它们使用昂贵的高级 SMS 服务,用他自己的 key 重新签名,然后将它们放回 Android 市场.在谷歌将应用程序从市场上推出前的 24 小时内,超过 10,000 名用户下载了它们。

应用开发者如何防止他们的作品以这种方式被窃取、修改和再营销?我想您可以将您的应用程序的 MD5 哈希值与您发布它时的状态(可能与您的应用程序一起保存在谷歌市场或您的一台服务器上)与现在的应用程序的 MD5 哈希值相匹配。但是我们没有检查 .apk 文件的 MD5 散列的工具,并且底层文件对应用程序软件不可见。

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

最佳答案

这种黑帽做法是无法避免的。无论您找到什么,幸运的、聪明的、有耐心的黑客都会将其撤消。

尽管如此,您仍可以希望努力工作,使大多数黑客更难轻易破坏您的保护措施。这就是人们通常所说的 IT 安全 btw :)

要调查的领域是:

  • 混淆
  • 您提到的 CRC 和 MD5
  • 安全的网络验证
  • 第二个应用程序检查第一个应用程序
  • 自定义检查类加载器(你能在 android 上做吗?)

关于android - 如何保护 Android 应用程序免受盗窃和应用程序本身的修改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10748539/

相关文章:

ios - IPA包含我的源代码在IOS中的相对路径

c# - 只读文本框的服务器验证 - 防止输入值

android - 如何让 Dagger2 编译器选项工作?

android - Play-services-ads 18.0.0 崩溃

java - 如何在 Java 中像使用 TCP 套接字一样使用 Http 连接

PHP登录 - 密码输入 - 特殊字符? - Centos 5 系统

c# - 收到的 WCF 服务器证书的部分链验证失败

android - Rio 字段绑定(bind) : LINQ interface not supporterd error on Datetime in LINQ comparison?

android - 从 API 22 升级到 23 : FileNotFoundException: **file full path** open failed: EACCES (Permission denied) 时出错

ruby-on-rails - 我的缓存解决方案安全吗?