12

我正在开发的应用程序被 antiLVL 自动破解(尽管我没有在我的应用程序中使用 LVL)。

为了保护我的应用免受“一键盗版”的侵害,我正在实施Google IO 中解释的篡改检测技术

我尝试使用getPackageInfo()反射和反射 ( invoke()) 检查签名,但 AntiLVL 在这两种情况下都能够自动破解应用程序。

如何编写不会被当前版本的antiLVL(1.4.0)自动破解的代码?我的意思是,除了使用 JNI。

PS:我不是在谈论防止盗版。我只希望盗版者手动挖掘代码,而不是使用自动破解器。

4

2 回答 2

1

问题是,任何仅用于检查应用程序有效性的 API 都可能被颠覆并替换为始终返回您期望结果的版本。我没有详细查看 Anti-LVL,但我想它正在这样做,这就是为什么您尝试使用 Dalvik 的内置 API 验证代码失败的原因。

为了使其工作,您必须自己完成工作,仅使用具有多种用途且不易被颠覆的 API。

一种方法是计算 .apk 文件或其中的 classes.dex 文件的校验和,并针对某些外部资源(具有已知正确版本列表的在线服务器,首先下载到 SD 卡的文件)进行验证执行等,.apk 文件中未包含在 classes.dex 中的资源)。这可以防止代码修改,我相信这是反 LVL 的工作原理。我自己没有尝试过,但怀疑它应该可以工作。

于 2012-03-03T19:20:38.997 回答
0

逃避海盗和阻止吸血鬼的演示文稿

一些基本的关键点

请注意,#:r.page.X无论出于何种原因,我提供的链接末尾的链接并不总是将您带到该特定幻灯片的页码。如果没有,请记下并手动浏览。

于 2012-05-16T00:40:24.203 回答