2010-04-27 118 views
18

我想知道什么是最有效的方法来防止人们窃取我的应用程序(在线下载而不是购买.apk的副本)。如何防止应用程序窃取(特定于Android应用程序)?

我花了很多时间很多在一个特别(Droidbox),不会被释放,直到同步我可以保证,谁是提供专业版盗版的人都不能。

任何人都执行此操作?我试过检查我的软件包签名经文和未签名副本的签名,但它看起来是一样的 - 也许我在这里做了一些不正确的事情。我不确定是否人们实际上分发签名的.apk,在这种情况下,我认为签名验证不会起作用...

请注意,此问题仅限于Android Marketplace应用 - 差异应用程序交付不在我手中,我无法在合法购买和非法下载之间进行链接。

回答

13

现在有新的Google App Licensing可用。有关更深入的信息,请参阅android developer blog

简短摘要:Google提供了一个库,可以通过电话向市场客户提供进程间调用。然后市场客户会询问谷歌服务器,如果登录用户已经购买了应用程序并将此答案转发给您。在您的开发人员配置文件中应该有一个公钥,您需要加密与Google服务器的连接以防止欺骗回答。您还会在查询中提供一个应用程序和设备唯一ID,以便无法将已批准的查询转发给其他设备,并构建类似于许可代理的服务,只需购买一份副本即可将IS许可的答案转发给其他设备。

目前此服务看起来足够安全,甚至可以保护市场上更有价值的应用程序。我会试一试,也许回来后留下一些信息,稍后再使用。

如果你的应用真的像EA游戏一样受欢迎,或者不想阻止用户侵入它。要破解应用程序,有人必须购买它,然后解压apk,然后编辑应用程序的字节码,以认为市场发送了正确的答案。新的字节码可以打包到另一个apk中,并且可以安装在允许侧面加载的每部手机上。 为了让这个更难,你总是可以尝试混淆你的apk并使你的字节码难以理解。

+1

我肯定会改变这是正确的答案,因为它是一个新的Google支持的解决方案。 – 2010-07-28 16:46:19

+1

但是这需要一个正常工作的互联网连接吗?如果您希望可以在没有互联网的情况下使用您的应用程序,是否有办法以同样的方式保护应用程序? (例如在飞机上玩游戏) – ibiza 2012-08-09 19:49:55

+1

如果您实现这个标准方式,应用程序每周只需要一次互联网访问。 Play商店的答案将被缓存。如果用户一段时间没有打开您的应用程序并尝试在没有网络的情况下使用它,则可能会失败。如果你喜欢你的用户,你可以节省市场得到否定答案的时间,并在x失败后才能禁用该应用。这对用户来说更好,但更容易侵入盗版应用。 – Janusz 2012-08-10 10:08:43

1

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

+0

我并不认为这种授权形式是可行的,因为应用程序的分发(以及购买)是通过android marketplace而不是由我来处理的。 – 2010-04-27 04:13:12

0

不要让您的计算机,以便有人可以从那里窃取您的应用程序。

或者等等..你是不是想让别人拷贝你的软件?然后,不首先发布它可能是你最好的选择。

有点相关链接:http://news.cnet.com/8301-27076_3-20003120-248.html

您也没有估计非法复制软件的数量的机制。即使比你大的实体试图失败,也要尽量避免下雨。

4

那些松懈的人使用你的应用程序的盗版副本来访问他们的DropBox可能无论如何都会使用他们的DropBox进行盗版。忘记那些人。让他们去吧。是的,我打赌的人数很多,但让我们面对现实吧,这些人无论如何都永远不会支付任何费用。专注于你可以控制的部分,并忘记其余部分。

专注于使用DropBox进行工作,他们的业务,他们自己的代码,他们的财务,他们的论文,和/或他们的私人家庭照片的Android用户。这些人中有95%的人在DropBox中有价值,并且希望保持私密性,他们会想要购买你的应用程序(假设它对他们来说足够好)。

让我用这样的比喻:

当涉及到雇用锁匠把锁在你的家,你聘请的是看起来的一部分,并采取$ 150-小时,还是你聘请了黑幕的家伙那个愿意把你偷来的锁卖给你的大门的人?

+2

你不能完全忽略盗版 - 也有抄袭。那些拿你的应用程序并把它作为自己的应用程序(假扮锁匠)的人呢? – 2011-03-18 16:31:31

+0

此外,包括我自己在内的很多应用程序的费用都随应用程序使用量增加而增加(我的应用程序涉及将文件上传到Amazon s3并使用其他付费API)。当人们盗用我的应用程序时,即使他们从未买过它,也会花费我的钱。 “他们不会买它”的想法并不适用于每个人的情况。 – user1023127 2012-05-08 21:20:20

2

中最知名的论坛上发布自己的非法复制,并有一个星期后,并显示像

感谢偷消息禁用它本身。我让我的生活与编程这个程序。 X美元不会伤害你,我可以通过我的下一顿饭,并继续为你做出伟大的更新。

我认为这是你能做的唯一的事情。人们总会找到一种方法来复制您的应用程序,所有对策只会打扰为应用程序付费的用户。

复制你的应用程序的人不是你的客户,他们永远不会。只要看到他们使用该程序作为一种病毒式营销。至少他们在谈论你的应用程序,也许他们的一些朋友会购买应用程序。

+0

或者你可以用这样的信息吓唬他们不要盗版 - “你的信息已经发送给警察,他们现在将密切关注你的网络活动,并在违法时作出相应反应” – jcw 2013-02-18 17:58:25

5

应用程序买方和开发者之间通过市场有一个单一的有用连接,转发电子邮件地址由谷歌提供与买方联系。

利用集成回调设置向您自己的服务器发送购买信息,您可以使用PHP通过电子邮件向购买发送唯一标识符(注册码)(实时,因为回购是在购买时从谷歌发货的。然后,用户使用该电子邮件中使用(或谷歌帐户的用户名)的唯一标识符,然后链接到他们的机器人ID登记他们的软件和该软件“激活”和保证是合法

明显的问题

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

  • 如何在我的应用程序中使用带唯一标识符的电子邮件?在应用程序中创建一个内容处理程序,处理类似于“myactivator:// uniqueid-or-something”的内容处理程序,这会导致应用程序与内部服务器进行通信,该服务器会保持激活状态。将此作为链接嵌入用户可以点击的电子邮件中。

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

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

    • 发送电子邮件给所有先前买家
    • 允许用户通过在其顺序号输入激活(可以通过登录到checkout.google.com获得。

何苦?

因为我们中的一些人把lot的时间放入申请中,并说“你sh应该接受盗版“是一个耳光。

0

有在野外一个新的工具,它似乎好得令人难以置信:

Automatic Application Licensing从凯斯实验室。

我还没有尝试过,但如果这个工作,它听起来像你想在高价位的android应用程序中使用的东西。

如果有人测试过,留下评论或编辑我的答案并提供个人反馈。