4

我知道无法阻止我的应用程序被破解,无论是从 antiLvl 还是 luckypatch。比如我下载了antiLvl,几秒内就破解了自己的app。而是想知道能不能实现代码知道LVL被去掉了,然后把信息发给一个HTTP服务器,这样就可以知道那边有多少破解版了。这可能对我进行评估很有用。谢谢。

4

2 回答 2

2
  1. 最明显的机制是使用轻量级散列函数,例如 CRC32,并构建应用程序代码的散列。
PackageManager packagemanager = getPackageManager();
PackageInfo packageinfo = packagemanager.getPackageInfo(String packageName, int flags)
int hash = packageinfo.signatures[0].hashCode()

并将其与原始哈希进行比较以检查它是否已被修改。

2. 我听说的另一种方法是使用 Google NDK 创建本地库文件 {.so} 并从那里检查 apk 是否已被篡改。

于 2014-02-10T17:54:16.287 回答
1

如果在构建应用程序时遇到问题,我会使用此代码进行测试:

if(BuildConfig.DEBUG) {
    try {
        new com.actionbarsherlock.app.SherlockFragment();
    } catch(NoClassDefFoundError e) {
        Log.e(LOGTAG, "We got ActionBarSherlock problems");
    }
    try {
        new com.google.gson.Gson();
    } catch(NoClassDefFoundError e) {
        Log.e(LOGTAG, "We got Gson problems");
    }
}

这应该给你一个想法,如果你想使用这个生产力,你应该删除那个外部 if。我可以,您也应该尝试通过反射来做到这一点,我确信 proguard 会删除这些无用的对象创建。

于 2013-10-29T14:24:24.377 回答