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

Android 如何保护安卓应用程序免受盗窃和应用程序本身的修改?,android,security,Android,Security,这里有一个关于最近通过安卓市场实施的骗局的好报告 有人从一部有根的手机上复制了一些流行的游戏.apk文件,用smali对它们进行反编译,添加代码让它们使用昂贵的高级短信服务,用自己的密钥重新签名,然后将它们放回安卓市场。在谷歌从市场上启动应用程序之前的24小时内,超过1万名用户下载了这些应用程序 应用程序开发人员如何防止他们的作品以这种方式被窃取、修改和重新销售?我想你可以将你的应用程序的MD5哈希值与现在的应用程序的MD5哈希值进行匹配,就像你发布应用程序时一样(可能与你的应用程序一起保存在

这里有一个关于最近通过安卓市场实施的骗局的好报告

有人从一部有根的手机上复制了一些流行的游戏.apk文件,用smali对它们进行反编译,添加代码让它们使用昂贵的高级短信服务,用自己的密钥重新签名,然后将它们放回安卓市场。在谷歌从市场上启动应用程序之前的24小时内,超过1万名用户下载了这些应用程序

应用程序开发人员如何防止他们的作品以这种方式被窃取、修改和重新销售?我想你可以将你的应用程序的MD5哈希值与现在的应用程序的MD5哈希值进行匹配,就像你发布应用程序时一样(可能与你的应用程序一起保存在谷歌市场上,或者保存在你的一台服务器上)。但是我们没有工具来检查.apk文件的MD5散列,应用软件也看不到底层文件


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

不是“一劳永逸”,而是:

ProGuard工具通过 使用删除未使用的代码并重命名类、字段和方法 语义模糊的名字。结果是一个较小的.apk文件 这是更困难的反向工程。因为ProGuard制造 您的应用程序更难进行反向工程


并非所有的目的都是为了结束,但有:

ProGuard工具通过 使用删除未使用的代码并重命名类、字段和方法 语义模糊的名字。结果是一个较小的.apk文件 这是更困难的反向工程。因为ProGuard制造 您的应用程序更难进行反向工程


这种戴黑帽子的做法是无法避免的。无论你发现什么,一个幸运的、聪明的、耐心的黑客都会撤销它

尽管如此,你还是可以希望努力工作,让大多数黑客更难轻易破坏你的保护。这就是人们常说的安全性(顺便说一句:)

需要调查的领域包括:

  • 目标定位
  • 正如您所提到的,CRCs和MD5
  • 安全网络验证
  • 第二个应用程序用于检查第一个应用程序
  • 一个定制的检查类加载器(你能在android上做到吗?)

    • 这种戴黑帽子的做法是无法避免的。无论你发现什么,一个幸运的、聪明的、耐心的黑客都会撤销它

      尽管如此,你还是可以希望努力工作,让大多数黑客更难轻易破坏你的保护。这就是人们常说的安全性(顺便说一句:)

      需要调查的领域包括:

      • 目标定位
      • 正如您所提到的,CRCs和MD5
      • 安全网络验证
      • 第二个应用程序用于检查第一个应用程序
      • 一个定制的检查类加载器(你能在android上做到吗?)

      如果你愿意花点钱,那就去寻求一些专业帮助,比如Arxan。我们已经在我们的企业级应用程序中使用了此功能。基本上,它使用自己的加密重新编译.apk,并创建一个新的apk,使您能够知道是否对apk和其他类似实例进行了篡改。您可以参考此url:了解更多详细信息,并进行相应的研究。

      如果您愿意花钱,请寻求一些专业帮助,如Arxan。我们已经在我们的企业级应用程序中使用了此功能。基本上,它使用自己的加密重新编译.apk,并创建一个新的apk,使您能够知道是否对apk和其他类似实例进行了篡改。您可以参考此url:了解更多详细信息,并进行相应的研究。

      没有任何东西可以阻止犯罪分子删除您假设的MD5检查,或更改其检查的MD5(用他们的服务器替换您的服务器)。这与如何阻止盗版者删除应用程序中的真实性检查的问题非常相似。这不是真的可以解决的。你所能做的就是让它变得更难。最终,谷歌需要致力于防止恶意应用进入应用商店。没有什么可以阻止犯罪分子删除你假想的MD5检查,或更改其检查的MD5(用他们的服务器替换你的服务器)。这与如何阻止盗版者删除应用程序中的真实性检查的问题非常相似。这不是真的可以解决的。你所能做的就是让它变得更难。最终,谷歌需要努力将恶意应用程序排除在应用商店之外。不要认为自定义类加载器是可能的,但md5和crc将使破解程序更难使用。更难,但并非不可能。不要认为自定义类加载器是可能的,但md5和crc将使破解程序更难。更难,但并非不可能。