# 简介

​ 要对 Android app 进行逆向需要用到的工具,主要分为抓包工具、反编译工具两种。

# 抓包工具

主要有:

# Charles

  • 官方下载地址:https://www.charlesproxy.com/download/

    正版每次启动只能用 30 分钟,然后就会自动关闭。破解方法如下:

    • 打开网站:https://www.zzzmode.com/mytools/charles/

      image-20240521112057358

    • 然后启动 Charles,点击 Help -> Registered

    • 然后把在上述网站中生成的 Name 和 Key 填入两个输入框,最后重启 Charles,若启动界面只有 Loading Preferences 则说明破解成功

      image-20240521112326102


# reqable

  • 下载地址:https://reqable.com/en-US/download

    用来抓手机 app 包的工具,抓 PC 端包也行。颜值在线,且抓包界面更类似于 chrome 浏览器的抓包界面。


# app 抓包配置

抓包工具安装后,默认状态下只能抓 window 的数据包。想要抓 app 的数据包,需要在手机上配置代理,以及将抓包工具的安全证书安装到手机上存放安全证书的系统目录下。

# Charles 安全证书配置

需要用到的工具:

  • openssl ,用来查看安全证书的哈希值
  • adb ,adb 工具这里就不讲下载了,百度有很多,主要用来连接手机并执行相关命令
  • 夜神模拟器/手机 ,模拟器没有要求(安装地址:https://www.yeshen.com/),手机需要 root
# openssl 安装

下载地址:https://slproweb.com/products/Win32OpenSSL.html

  • 一般下载第二个的 EXE

    image-20240521110320062

  • 安装一直暴击 next 就行

  • 安装完成后,需要配置系统环境变量

    image-20240521110700286

    image-20240521110747629

  • 检测是否安装成功

    运行 openssl version ,显示版本号则说明安装成功

    image-20240521111019539

# 下载安全证书
  • 打开 Charles,选择 Help -> SSL Proxying -> Save Charles Root Certificate...,将安全证书保存到桌面并重命名为 certificate.pem

    image-20240521112826621

  • 打开 cmd,并 cd 到 C:\Users\xxx\Desktop ,然后执行以下命令

    openssl x509 -subject_hash_old -in certificate.pem

    image-20240521113538011

    然后将上面下载的 certificate.pem 文件名改为,上图红框中的内容 +.0,即 7348ddf5.0

# 推送安全证书

将安全证书放入模拟器系统路径,这一步需要开启 模拟器的 root 权限,在设置中开启即可;

这一步,我们的最终目的就是将 本地的证书文件 7348ddf5.0 推到模拟器的 /system/etc/security/cacerts 路径下 ,但是直接推送会报 Read-only file system ,这表示该文件为只读文件,你没有向里面写入的权限;

所以需要先提权,操作如下:

> adb shell
# mount -o remount,rw /system 
# chmod 777 /system/etc/security/cacerts

然后就能在 cmd 命令窗口通过以下命令推送了:

> adb push 7348ddf5.0 /system/etc/security/cacerts/7348ddf5.0
# 手机代理配置
  • 在 PC 端打开 Charles 查看 IP 和 Port 端口,打开 Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remmote Brower

    image-20240529173022826

    image-20240529173245794

  • 打开模拟器的 wifi 高级设置,手动添加代理,并填好主机名和端口。如果是实体手机,将手机与 PC 连接同一 wifi,让两者处于同于局域网,然后进行相同的代理配置即可。

    image-20240529173639481

    然后就能通过 Charles 进行抓包了

reqable 的安全证书配置,在该软件的菜单栏 证书 -> 安装根证书到 Android 设备 里面有相关教程


# 反编译工具

jadx、ida