Android应用逆向与抓包实用教程

设备选择:真机 vs 模拟器

  • 真机:适合绕过反模拟器检测、测试真实环境下的行为。推荐root,方便抓包和注入。
  • 模拟器:调试方便,快照回滚,适合批量测试。推荐使用 夜神雷电安卓x86等,root权限易获取。

抓包

HTTP 抓包

  • 工具:Fiddler、Charles、Burp Suite
  • 步骤:
    1. 设置代理(手机或模拟器WiFi代理指向PC)
    2. 工具监听端口(如8888)
    3. 手机浏览器访问网页,确认能抓到包

HTTPS 抓包

  • 证书安装:
    1. 抓包工具导出CA证书,拷贝到手机/模拟器,安装为受信任证书
    2. Android 7.0+需将证书放入 /system/etc/security/cacerts/ 并改名为 xx.0,chmod 644
  • 遇到SSL Pinning:

APK反编译

工具

  • jadx:反编译apk为java代码
  • ojadx:jadx的web版,界面友好
  • apktool:反编译资源和smali
  • JEB

步骤

  1. jadx-gui xxx.apk 查看java源码
  2. apktool d xxx.apk 解包资源和smali
  3. 资源分析:AndroidManifest.xml、assets、res目录

JDK与JRE

  • JRE:Java运行环境,只能运行java程序
  • JDK:开发工具包,包含JRE和编译/调试工具。逆向推荐装JDK,方便用javac/jar/jarsigner等

逆向流程

  1. 搜索关键字
    • 目标功能相关字符串、API、包名、类名
    • jadx支持全文搜索
  2. 分析代码
    • 跟踪调用链,理清逻辑
    • 结合smali和java代码互相印证
  3. 验证猜想
    • 修改smali/java,重新打包签名,运行验证
    • 也可用Frida/Xposed动态插桩
  4. Python实现自动化
    • 用requests/mitmproxy等库复现协议
    • 结合adb、uiautomator2做自动化操作

实用Tips

  • 遇到加固:先脱壳(如使用Replugin、360加固脱壳机、Xposed辅助)
  • 反调试:查找android.os.Debug.isDebuggerConnected等API
  • 动态分析:Frida、Xposed、ReFramework
  • 静态分析:jadx、apktool、grep、IDEA

参考资料

支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者,更多功能请访问博客站



Android应用逆向与抓包实用教程
https://blog.fxcxy.com/2025/05/27/AndroidAPP逆向教程/
作者
spatacus
发布于
2025年5月27日
许可协议