保护Lucky Patcher /玩牌的方法

Mar*_*rco 6 android

我即将发布一个应用程序并且不希望它被盗版...有幸应用程序就像运气打印机一样,即使您拥有许可证也会破解应用程序...

谁知道如何保护这个?

zer*_*obe 13

要阻止您的应用程序以破解形式分发和重新打包,请参阅下面的签名检查.然后,至少可以让你的应用程序工作的唯一人是那些安装了LuckyPatcher的人.LuckyPatcher创建修改后的APK后,签名即会更改.

运行发布版本时,您需要了解签名是什么.在下面的例子中,它是-343553346.

String sigChk = MySigCheck.MySigCheck(context);
if (sigChk.equalsIgnoreCase("Y")){
    handle signature pass
}
Run Code Online (Sandbox Code Playgroud)

创建一个类

public class MySigCheck {
public static String MySigCheck(Context context) {
    String sigChk = "B";

    Signature[] signature = new Signature[0];

    try {
        signature = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES).signatures;

        Log.d("yourapp", Integer.toString(signature[0].hashCode())); << Prints your signature. Remove once you know this and have changed it below.

    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    }

    if (signature[0].hashCode() == -343553346){
        sigChk = "Y";
    }

        return sigChk;
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 他们也用这种保护手段破解了我的apk ... (2认同)

Idi*_*tic 11

简短的回答并不是真的.

您可以观看有关使用许可API等Google IO Anti Pirate的一些最佳做法的Google IO聊天

我知道还有另外一些关于阻止懒惰海盗的一般模式的讨论,但似乎无法找到URL.

一般来说,如果您的保护依赖于if/then逻辑,则所有人必须做的是修补代码并反转该逻辑或将其全部绕过,这在Java中非常容易.

你可以通过混淆你在哪里做这件事,在很多地方做这件事,随机做,以及添加亲保护混淆等来劝阻偶然的黑客来加剧.

甚至服务器端逻辑也很容易绕过,除非以某种方式使用返回包(例如与用户同步的加密令牌或解锁内容的电话信息,或访问在线社区内容等所需的用户ID验证方案) .)

最后,如果某人有决心并拥有技能,他们可以解决所有问题,除非你失去了严重的收入,否则在我看来几乎不值得失眠,这是我们都需要的问题!

在这样做了20年(商业开发)之后,我的方法是通过使用上述模式使其变得困难,并偶尔改变它.这会扼杀懒惰的海盗.

然后忘记它并集中精力制作一个值得亲海盗的应用程序.

我的方法

我的应用主要是内容驱动的.

一般情况下,如果某人购买了内容,则会使用令牌服务器端对其进行加密,并使用相同的服务器对其进行加密(这些内容未使用设备和用户令牌进行存储,而是使用设备和用户令牌生成每个会话,这只会使得欺诈行为变得更加困难)

然后,我可以通过用户/设备配对跟踪访问.黑客的缺点是他们必须支付一次,如果他们的代币突然被超出合理限制使用,它会提醒我这个事实,如果我愿意(我有),我可以关闭该帐户

我发现社交人员不太可能让某人使用信息作弊,如果它与他们相关(虽然它已经发生)并且它会回到他们身上.

我仍然遵循IO/Dev博客等的所有建议,如果我发现篡改,那么我会通知用户,然后让它去N段时间,以便他们可以联系我或自我纠正.

我也从不杀死一个应用程序,但我确实告诉用户他们正在使用恶意软件,并问他们是否真的相信那些用他们的数据窃取它的人等等.那种弹出式消息有点消息如此简单的字符串搜索赢了工作等等,给人们带来恐慌

我还有一种方法可以向设备发送一个毒性令牌集,它实质上会锁定他们在设备上累积的所有数据,除非我解锁它但是你最好确定它们是小偷之前你才能对它们进行核攻击.

此外,不要将分析折扣作为一种检测方法,并确定在检测到盗版副本时要采取的正确操作.

遵循博客文章和IO提到的指导原则,然后在应用它们时发挥创意,并混合一些独特的解决方案,然后经常更改它以使海盗适合.

  • 你的意思是:http://android-developers.blogspot.com/2010/09/securing-android-lvl-applications.html?你是对的!“专注于制作值得盗版者窃取的应用程序。” 但它仍然不是很酷:(您的应用程序是否受到了这个幸运补丁程序的保护? (2认同)

Oas*_*eng 6

基于 LuckyPatcher 使用 odex 替换来进行黑客攻击这一事实。我认为击败其当前实现的适度方法是在单独的 dex 中编译您的重要代码段,并通过 DexClassLoader 加载它。

参考:http : //android-developers.blogspot.pt/2011/07/custom-class-loading-in-dalvik.html