文章总结: 本文是一份APK逆向分析实用指南,核心观点是逆向并非通读全部代码,而是快速定位关键文件。文章详细解析了AndroidManifest.xml、smali代码、lib目录、assets资源等关键位置的查看重点,并指出加壳App的典型特征及应对思路。文章提供了可操作的具体检查项,对安全测试人员具有实用参考价值,同时强调需在授权范围内进行测试。
综合评分: 78
文章分类: 逆向分析,移动安全,恶意软件
APK 逆向后到底能看到什么?这份”看文件”指南请收好
原创
是老A
是老A
老A搞安全
2026年9月24日 07:44
贵州
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
一位深耕网络安全的老兵,目前是一家安全公司的技术分管,擅长渗透测试及安全培训方向,老A的愿望是大家没烦恼,一切顺心!
上面这张图,是用apktool解包后的典型结构,如果用 jadx,它不产出文件树,而是直接在界面里分四个视图:Java 源码、Smali、资源、Manifest
工具虽然不同,但看的”内容”是一样的
很多人第一次逆向 APK,解包后面对几百个文件夹和上万行 smali,第一反应是懵的
逆向的核心不是”读所有代码”,而是快速定位关键文件,翻找有用的信息进一步利用
这里,我们重点看些啥呢?
- AndroidManifest.xml
这是整个 App 的”核心”,必看这几项:
package—— 包名,判断是不是重打包的马甲<application android:name>—— 自定义 Application 类,加壳入口通常在这<activity>—— 所有界面,注意android:exported="true"的组件<service>/<receiver>/<provider>—— 后台组件和跨进程通信入口<uses-permission>—— 权限,异常组合(如短信+网络)是恶意软件信号android:debuggable—— 是否可调试,逆向时常手动改成 true
2. smali/ 或 Java 源码
重点盯这些类和方法:
- Application 子类 ——
attachBaseContext()和onCreate(),加壳、反调试、环境检测常在这 - 网络请求 —— OkHttp、Retrofit、HttpURLConnection 的调用点,找 API 地址和加密参数
- 加密/签名 ——
Cipher、MessageDigest、Mac、Signature,找密钥和算法 - Native 方法声明 —— 带
native关键字的,说明逻辑在 .so 里 - 反射调用 ——
Class.forName、getDeclaredMethod,混淆和壳常用 - 动态加载 ——
DexClassLoader、PathClassLoader,加壳/热更新标志
3. lib/ —— native 库
.so 文件里通常藏着:
- 核心算法(加密、协议、授权校验)
- 反调试、反 Hook 逻辑
- 壳的解密逻辑
用 IDA/Ghidra 打开,重点看 JNI_OnLoad 和 Java_* 导出函数
4. assets/ —— 原始资源
不被 aapt 编译,常被用来藏东西:
- 加密的 dex/jar(壳的 payload)
- 配置文件、证书、模型文件
- 数据库、字典
这是加壳 App 藏原始 dex 的常见位置
5. res/values/strings.xml —— 字符串
- API 地址、密钥、提示语
- 有时敏感信息直接硬编码在这
6. META-INF/ —— 签名信息
CERT.RSA—— 签名证书,对比官方版本判断是否重打包
然后,实战中需要注意的是
加壳 App 的特征:Manifest 里 Application 指向陌生类,assets/ 里有 .jar/.dex/.dat 等可疑文件,lib/ 里有名字奇怪的 .so(如 libjiagu.so、libshell.so)。这时 smali/ 里看到的全是壳代码,需要先脱壳
多 dex:大型 App 会有 classes2.dex、classes3.dex,jadx 自动合并展示,apktool 拆成 smali_classes2/ 等目录
资源混淆:有些 App 用 AndResGuard 把 res/ 路径改成 r/a/b,看资源会很难受,但功能不受影响
Kotlin 代码:jadx 对 Kotlin 的反编译质量不如 Java,会出现大量 Intrinsics 调用,读的时候要有心理准备
至此……顺利!!
⚠️ 法律声明:以上内容仅供安全学习和授权测试使用。未经授权的漏洞利用属于违法行为,请勿对未经授权的目标进行测试
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:老A搞安全 是老A
是老A《APK 逆向后到底能看到什么?这份”看文件”指南请收好》