我应该如何编码来抵抗"one-click piracy"?



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

为了保护我的应用程序不受"一键盗版"的影响,我正在实施谷歌IO解释的篡改检测技术。

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

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

附言:我不是在谈论一般的防止盗版。我只是想让盗版者手动挖掘代码,而不是使用自动破解器。

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

为了让它发挥作用,你必须自己做这项工作,只使用具有多种用途且不易被颠覆的API。

一种方法是计算你的.apk文件或其中的classes.dex文件的校验和,并根据一些外部资源(具有已知正确版本列表的在线服务器、第一次执行时下载到SD卡的文件等,.apk中未包含在classs.dex中的资源)对其进行验证,我相信这就是反LVL的工作原理。我自己还没有试过,但怀疑它应该有效。

的演示说明

一些基本关键点

  • 修改LVL
  • 机具LVL防篡改
  • 使用模糊处理
  • 添加反射

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

相关内容

  • 没有找到相关文章

最新更新