我知道无法阻止我的应用程序被破解,无论是从 antiLvl 还是 luckypatch。比如我下载了antiLvl,几秒内就破解了自己的app。而是想知道能不能实现代码知道LVL被去掉了,然后把信息发给一个HTTP服务器,这样就可以知道那边有多少破解版了。这可能对我进行评估很有用。谢谢。
问问题
516 次
2 回答
2
- 最明显的机制是使用轻量级散列函数,例如 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 回答