Android 安全:使用 ProGuard 和 DexGuard 时如何检查 C++ 字符串常量是否被混淆?

问题描述 投票:0回答:1

上下文:我们放置了一些密钥,除非受到损害,否则预计不会有任何未来的更改或更新,最初这些密钥位于服务器端,但对于这个特定项目,我们不会依赖 REST API。我们决定将这些密钥放入 C++ 中并使用 JNI 来使用它。

目前我们正在尝试反编译APK

  • 使用 ProGuard 调试/发布
  • 使用 DexGuard + ProGuard 调试/发布
  • 无需混淆工具即可调试/发布

我们的问题是在哪里找到并验证C++代码中的字符串常量是否被正确混淆,有人说可以在

.so
文件中找到它,但在使用JADX反编译的APK中找不到它。

android c++ proguard dexguard
1个回答
0
投票

一旦您有了

apk
文件,您就可以:

  1. 将文件后缀从
    apk
    更改为
    zip
  2. 解压文件

现在,

.so
文件通常位于
lib
文件夹内,特别是匹配不同架构的子文件夹内(例如armeabi-v7a、x86、x86_64等)。

.so
文件无法使用 JADX 反编译,因为该工具能够将 dex 文件转换为 java 源文件。

我的建议是对文件内的密钥进行简单搜索,如果找不到它们,您可以尝试使用一些 c++ 反编译器来反编译 .so 文件(但这可能有点具有挑战性)。

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