0Pricing
Ethical Hacking Academy · 课时

APK 静态分析

反编译

APK 静态分析 是 CoddyKit 上的免费 Ethical Hacking Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Ethical Hacking Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Ethical Hacking Academy 课程共包含 4 节课。

APK 静态分析

对 APK 进行静态分析,是指在不运行应用的情况下检查其代码和资源。目标是从已编译的 DEX 中恢复出类似源代码的可读代码。

这可以揭示硬编码的机密信息、逻辑缺陷以及应用的真实行为。

使用 apktool 解码

apktool 可以将 APK 解码为可读资源和 smali(一种人类可读的 DEX 字节码形式)。它还可以解码二进制的 AndroidManifest.xml。

您可以使用它阅读清单文件,也可以重新打包修改后的应用。

apktool d app.apk -o app_src

Smali 代码

Smali 是 Dalvik 字节码所使用的类汇编语言。它虽然冗长,但可以进行精确修改,例如更改比较操作来绕过检查。

您可以修改 smali 并重新构建 APK,以改变应用行为。

const/4 v0, 0x1   # force a boolean to true

使用 jadx 获取 Java 代码

jadx 可以直接将 DEX 反编译为可读的 Java 代码。图形界面版本 jadx-gui 允许您浏览类、搜索字符串并跟踪方法调用。

这是理解应用逻辑最快的方法。

jadx-gui app.apk

dex2jar 流程

另一种流程是使用 dex2jar 将 DEX 转换为 JAR,然后在 JD-GUI 等 Java 反编译器中打开。

jadx 通常能生成更整洁的输出,但当 jadx 遇到困难时,dex2jar 仍然很有用。

d2j-dex2jar app.apk -o app.jar

寻找机密信息

反编译后的代码通常包含硬编码的机密信息:API 密钥、令牌、加密密钥和后端 URL。

请在源代码中搜索 password、secret、apikey 和 http 等关键词。开发人员错误地认为编译后的代码会隐藏这些内容。

grep -ri "api_key\|secret\|password" app_src/

检查清单文件

解码清单文件后,请检查以下内容:

  • 导出的组件。
  • android:debuggable="true"。
  • android:allowBackup="true"(可以通过备份提取数据)。
  • 危险权限或自定义权限。

网络安全配置

网络安全配置控制 TLS 行为。允许明文流量或信任用户添加的 CA 的配置,会削弱传输安全性。

此类设置会让拦截(后续主题)变得容易得多。

<application android:usesCleartextTraffic="true">

使用 MobSF 自动扫描

MobSF(移动安全框架)可以自动执行静态分析。上传 APK 后,它会报告权限、硬编码的机密信息、不安全的设置以及风险评分。

它非常适合进行初步分类,但人工检查仍然能够发现更深层的问题。

重新打包与重新签名

修补 smali 后,请使用 apktool 重新构建,并对 APK 重新签名(Android 会拒绝未签名的应用)。apksigner 或 uber-apk-signer 等工具可以处理签名。

这一流程是篡改测试和运行时修改的基础。

apktool b app_src -o patched.apk
uber-apk-signer -a patched.apk

深层链接与 WebView

请查找 深层链接意图过滤器以及 WebView 的使用情况。配置错误的深层链接可能会使用攻击者控制的数据启动内部界面。

包含 JavaScriptInterface 或加载不可信内容的 WebView 可能使应用遭受注入攻击和数据窃取。这两类问题都是静态审查中常见的发现。

快速检查

回想一下,哪个工具可以直接从 APK 中生成可读的 Java 代码。

回顾

现在您已经了解了 APK 静态分析:

  • 使用 apktool 处理 smali 和解码后的清单文件;使用 jadx 获取可读的 Java 代码。
  • 查找硬编码的机密信息,并检查清单中的导出、可调试和备份标志。
  • 检查网络安全配置;使用 MobSF 进行自动化初步分析。
  • 修补 smali,然后重新构建并重新签名,以测试篡改。

接下来,您将使用 Frida 操作正在运行的应用。

常见问题解答

「APK 静态分析」课时是免费的吗?

是的 — 「APK 静态分析」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Ethical Hacking Academy 课程的其余内容,请升级到 CoddyKit PRO。 Ethical Hacking Academy 课程共包含 4 节课。

「APK 静态分析」这节课中我会学到什么?

反编译 你通过在浏览器中直接运行的动手代码来练习 Ethical Hacking Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Ethical Hacking Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Ethical Hacking Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「APK 静态分析」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Ethical Hacking Academy 课中编写并运行代码吗?

能。每节 Ethical Hacking Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. Android 应用结构
  2. APK 静态分析
  3. 使用 Frida 进行动态分析
  4. 不安全的存储与通信
← 返回 Ethical Hacking Academy