代码之家  ›  专栏  ›  技术社区  ›  Austin Hanson

如何防止应用程序盗窃(特定于Android应用程序)?

  •  19
  • Austin Hanson  · 技术社区  · 15 年前

    我想知道怎样才能最有效地防止人们窃取我的应用程序(在线下载.apk的副本而不是购买它)。

    我花了一个 许多 特别是在一个(droidbox)上的时间,在我能保证提供pro版本非法拷贝的人不能发布sync之前不会发布。

    有人实施过吗?我试过检查我的包签名和未签名副本的签名,但似乎是一样的-也许我在这里做错了什么。我不确定人们是否真的分发了signed.apk,在这种情况下,我认为签名验证不会从…

    请注意,这个问题是针对android市场应用程序的 -不同的是,应用程序交付是我无法控制的,我无法将合法购买和非法下载联系起来。

    8 回复  |  直到 6 年前
        1
  •  13
  •   Janusz Daniel Rindt    12 年前

    现在有了新的谷歌应用授权。有关详细信息,请阅读 android developer blog .

    一个简短的总结:google提供了一个库,可以通过电话向市场客户机进行进程间调用。然后,市场客户端将询问google服务器登录用户是否购买了应用程序,并将此答案转发给您。开发人员配置文件中应该有一个公钥,您需要对到google服务器的连接进行加密,以防止对答案进行欺骗。您还可以为查询提供应用程序和设备唯一ID,以便无法将已批准的查询转发到另一个设备,并构建类似于授权代理的内容,其中一个已购买的副本将IS授权的答案转发到其他设备。

    目前,这项服务看起来足够安全,甚至可以保护市场上更有价值的应用程序。我会尝试一下,也许在我用了一点之后再回来留下更多的信息。

    如果你的应用程序真的很受欢迎,像一个电子艺界游戏或其他东西,这个广域网不会阻止用户入侵它。要破解应用程序,必须有人购买它,然后解压缩apk,并编辑你的应用程序的字节码,以为市场发送了正确的答案。新的字节码可以打包到另一个apk中,并且可以安装在每个允许侧装的手机上。 为了使这更困难,你可以总是试图混淆你的apk,使你的字节码难以理解。

        2
  •  5
  •   Austin Hanson    15 年前

    应用程序购买者和开发人员之间通过市场 转发电子邮件地址 由谷歌提供联系买家。

    利用integration callback设置将购买信息发送到您自己的服务器,您可以使用php通过电子邮件将唯一标识符(注册代码)发送到购买(购买期间从google发出的回调是实时的)。然后,用户使用此电子邮件使用唯一标识符注册他们的软件,该标识符随后链接到他们的android(或google帐户用户名)并且软件被“激活”,并且 放心 合法 .

    显而易见的问题

    • 为什么这是一个合适的解决方案,当它需要用户阅读电子邮件?我们的市场是那些能够使用安卓设备购买应用程序的人。通过使用android设备,意味着用户拥有google帐户,这意味着他们知道如何使用电子邮件。

    • 如何在应用程序中使用具有唯一标识符的电子邮件?在应用程序中创建一个内容处理程序,处理“myactivator://uniqueid或其他”之类的内容,这会导致应用程序与内部服务器通信,该服务器会记录激活。将此作为链接嵌入到用户可以单击的电子邮件中。

    • 如何生成唯一的标识符?我将以某种方式使用电子邮件-我相当有信心谷歌已经使其独特到足以拒绝任何可行的联系信息销售方法。

    • 那些已经购买了软件的人呢?这里有很多选择-没有理想或糟糕的。

      • 向所有以前的买家发送电子邮件
      • 允许用户通过输入订单号激活(可以通过登录checkout.google.com获得)。

    何苦?

    因为我们有些人 许多 在申请时说“你应该接受盗版”是一记耳光。

        3
  •  4
  •   Stephan Branczyk    15 年前

    那些对使用盗版应用程序来访问其Dropbox不够严格的人可能会使用他们的Dropbox进行盗版。忘掉那些人。让他们走吧。是的,我敢打赌有很多人,但让我们面对现实吧,那些人无论如何都不会付给你任何钱。把注意力放在你能控制的部分上,忘掉剩下的。

    关注那些在工作、业务、代码、财务、论文和/或私人家庭照片中使用Dropbox的Android用户。95%的人,他们的Dropbox中有一些有价值的东西,并且希望它保持私有,他们会想购买你的应用程序(假设它对他们足够好)。

    让我用这个比喻:

    当你要雇一个锁匠来给你的家上锁时,你是雇一个看起来很像的人,一个小时要花150美元,还是雇一个愿意卖给你一把偷来的锁的阴暗的人来给你的前门上锁?

        4
  •  2
  •   Janusz Daniel Rindt    15 年前

    在最知名的论坛发布你自己的非法副本,并在一周后使其禁用,并显示如下消息

    谢谢你偷东西…我靠编写这个应用程序为生。X美元不会伤害你,我可以在下一顿饭之前,继续为你做一些很棒的更新。

    我想这是你唯一能做的。人们总是会想办法复制你的应用,所有的对策只会干扰付费的用户。

    复制你应用程序的人不是你的客户,他们永远不会是。只是把他们对这个项目的使用看作是一种病毒式的营销。至少他们在谈论你的应用,也许他们的一些朋友会买这个应用。

        5
  •  1
  •   Chris Thornton    15 年前

    一般共享软件建议这里-许可软件给个人。即,提供针对其用户名的个性化许可证密钥。如果密钥上有他们的名字,他们就不太可能分发密钥。您可能可以自动化订单的后端实现,以提供自定义密钥。在输入名称/键之前,让您的“Pro”版本以试用模式运行。

        6
  •  0
  •   Cheery    15 年前

    不要离开你的电脑,这样别人就可以偷走你的申请。

    或者等待…你是说你不想别人复制你的软件?然后…不在第一时间发布它可能是你最好的选择。

    与位相关的链接: http://news.cnet.com/8301-27076_3-20003120-248.html

    你也没有任何机制来估计非法拷贝软件的数量。享受你试图阻止雨,即使实体比你已经尝试和失败。

        7
  •  0
  •   Janusz Daniel Rindt    15 年前

    在野外有一种新的工具似乎是正确的:

    Automatic Application Licensing 来自凯斯实验室。

    我还没有尝试过,但如果这是可行的,它听起来像是你想在你的高价安卓应用程序中使用的东西。

    如果有人测试它留下评论或编辑我的回答与个人反馈。

        8
  •  0
  •   Anthony.    6 年前

    我也有同样的问题。我最近在这个网站上发现了一些可免费下载的付费应用: https://dlandroid.com/

    我让他们删除我的应用程序apk,但我相信还有很多类似的网站。据推测,他们有一个根手机,可以从google play获得一个有效的应用副本,然后上传到他们的网站上,免费分发给所有人和其他人。

    你可以花费无止境的时间来确保你的应用在网络上没有盗版,或者实施复杂的盗版保护措施,这很可能会让你真正的付费用户不太方便。但我想,最终,你必须做好权衡的准备,接受一定程度的损失是不可避免的,并希望大多数人诚实,通过适当的渠道获得你的应用程序,而不是冒着恶意软件感染的风险去这样的狡猾的网站。