我正在为Android和ios创建一个应用程序,我已经知道理论上可以反编译一个Android应用程序。该应用程序包含敏感信息,我不希望用户有权访问应用程序与Web服务器的接口。如果用户获得了对源代码中可用信息的访问权限,他们可能会通过请求向我的Web服务器发送垃圾邮件。
有没有办法验证应用和服务器之间的连接,假设源代码是可访问的,或者是否有任何方法来混淆我的代码以防止恶意用户向我的网络服务器发送垃圾邮件。
Thankss
答案 0 :(得分:17)
Proguard是一款可以帮助您隐藏代码的工具。这是Android工具的一部分,你只需要激活它。 This链接和this将有助于进一步发展。
Proguard的默认配置(在proguard.cfg中)足以充分混淆您的代码。但是,当您拥有动态访问的方法/类时,可能需要调整proguard配置。
例如,使用Reflection访问类/方法需要让代码保持完整。如果proguard对它进行模糊处理,您有时可能会遇到ClassNotFoundException。
如果你有在AndroidManifest / Layout Files中访问的类,你应该阻止proguard对它们进行模糊处理。
这可以通过添加
来完成-keep public class <MyPackage.MyClass>
到你的proguard.cfg。
答案 1 :(得分:10)
你无法阻止反编译android apk,你可以只增加反编译的难度,proguard是最好的选择。
答案 2 :(得分:5)
DexGuard提供了比ProGuard更好的安全性,但它不是免费的:https://www.saikoa.com/dexguard
DexGuard甚至可以混淆String常量。