防止反编译android apk

问题描述 投票:19回答:3

我正在为Android和ios创建一个应用程序,我已经知道理论上可以反编译一个Android应用程序。该应用程序包含敏感信息,我不希望用户有权访问应用程序与Web服务器的接口。如果用户获得了对源代码中可用信息的访问权限,则他们可能会通过请求向我的Web服务器发送垃圾邮件。

有没有办法验证应用程序和服务器之间的连接,假设源代码是​​可访问的,或者是否有任何方法来混淆我的代码以防止恶意用户向我的网络服务器发送垃圾邮件。

thankss

android security
3个回答
16
投票

Proguard是一个可以帮助您隐藏代码的工具。这是Android工具的一部分,你只需要激活它。 This链接和this将进一步帮助。

Proguard的默认配置(在proguard.cfg中)足以使您的代码充分混淆。但是,当您拥有动态访问的方法/类时,您可能希望调整proguard配置。

  1. 例如,使用Reflection访问类/方法将需要您保持代码完整。如果proguard对它进行模糊处理,您有时可能会遇到ClassNotFoundException。
  2. 如果你有在AndroidManifest / Layout Files中访问的类,你应该防止proguard混淆它们。

这可以通过添加来完成

-keep public class <MyPackage.MyClass> 

到你的proguard.cfg。


9
投票

你无法阻止反编译android apk,你可以只增加反编译的难度,proguard是最好的选择。


4
投票

DexGuard提供了比ProGuard更好的安全性,但它不是免费的:https://www.saikoa.com/dexguard

DexGuard甚至可以混淆String常量。

© www.soinside.com 2019 - 2024. All rights reserved.