gpt4 book ai didi

android - 防止反编译android apk

转载 作者:IT老高 更新时间:2023-10-28 23:10:54 26 4
gpt4 key购买 nike

我正在为 android 和 ios 创建一个应用程序,我已经知道理论上可以反编译一个 android 应用程序。该应用程序包含我不希望用户访问的敏感信息,因为该应用程序与网络服务器交互。如果用户可以访问源代码中的某些信息,他们可能会向我的 Web 服务器发送垃圾邮件请求。

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

谢谢

最佳答案

[更新]

**

当您使用 Android gradle 插件版本 > 3.4.0 构建应用程序时,插件选择 R8 来优化和混淆代码。现在可以在 proguard-rules.pro 或 proguard-app.conf 文件中配置规则。指示要从混淆中排除什么的规则与前面使用的 proguard.cfg 中的规则相似。

你可以在你的 build.gradle 中导入你的 proguard 文件

buildTypes{
...
release{
proguardFiles getDefaultProguardFile(
'proguard-android-optimize.txt'),
'proguard-rules.pro'
}
}

R8拾取所有现有的 proguard 规则文件,只要它们包含在 build.gradle 中。您也可以configure对于您可能拥有的不同产品口味,要混淆哪些部分。

**

[旧但相关的信息]

Proguard是一个可以帮助你混淆你的代码的工具。这是您的 android 工具的一部分,您只需要激活它。 This链接和 this会有所帮助。

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

  1. 例如,使用反射访问类/方法将需要您使代码保持完整。如果 proguard 对其进行了混淆,您有时可能会遇到 ClassNotFoundException。

  2. 如果您有在 AndroidManifest/布局文件中被访问的类,您应该防止 proguard 混淆它们。

这可以通过添加来完成

-keep public class <MyPackage.MyClass> 

到你的 proguard.cfg。

**

虽然 Proguard 使静态分析变得更加困难,但 DexGuard 可以防止静态和动态分析。 DexGuard专门用于 android 应用程序,并且仅在 Proguard 是开源的并且适用于任何 java 字节码混淆/优化时才可商用。

关于android - 防止反编译android apk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21199427/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com