防止反编译android apk

use*_*561 21 security android

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

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

Thankss

Sid*_*h N 18

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

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

  1. 例如,使用Reflection访问类/方法将需要您保持代码完整.如果proguard对它进行模糊处理,您有时可能会遇到ClassNotFoundException.

  2. 如果你有在AndroidManifest/Layout Files中访问的类,你应该防止proguard混淆它们.

这可以通过添加来完成

buildTypes{
  ...
  release{
      proguardFiles getDefaultProguardFile(
                'proguard-android-optimize.txt'),
                'proguard-rules.pro'
  }
}
Run Code Online (Sandbox Code Playgroud)

到你的proguard.cfg.

  • AFAIK Proguard基本上重命名方法和代码的其他部分,因此它很难读取,但它不会阻止任何人反编译您的应用程序. (4认同)

han*_*ang 11

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


Ami*_*.io 5

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

DexGuard甚至可以混淆字符串常量。