APP 接口拦截与参数破解

摘要

前文《 Android APK 反编译浅入浅出:apktool 、dex2jar 、jd-gui 》介绍了如何通过反编译 APK 去破解参数加密;但 APK 的源码通常会被混淆,想从源码中研究出参数加密的方式,大部分情况下是一件非常不易的事情。

本文换了一个新的角度,不再从源码的角度出发,而是关心数据流及其在传输过程中的各种转换。

准备

Charles:抓包工具

Xposed:Xposed 框架(Xposed Framework)是一套开源的、在 Android 高权限模式下运行的框架服务,可以在不修改 APK 文件的情况下影响程序运行(修改系统)的框架服务

Inspeckage:用来动态分析安卓 app 的 xposed 模块。功能一,获取 APP 基本信息;功能二,实时查看应用程序的行为

接口拦截

1)配置网络环境

APP 接口拦截与参数破解_第1张图片

打开 Charles,配置监听端口。

APP 接口拦截与参数破解_第2张图片

将手机与监听电脑连接在同一网络环境内,并按照 Charles 弹窗指示设置代理、安装 Charles 证书。

2)拦截数据接口

APP 接口拦截与参数破解_第3张图片

操作 APP,查看拦截的请求,找到用于数据传输的接口。

APP 接口拦截与参数破解_第4张图片

确认数据接口中的参数是否都可以模拟。如果都可以,那就继续后面的采集工作;否则,进入参数破解的环节。(如上图中,“securitykey” 为加密参数,需破解)

参数破解

1)安装配置 Inspeckage

APP 接口拦截与参数破解_第5张图片

安装 Inspeckage,并选择要破解参数的 APP

2)安装配置 Xposed

APP 接口拦截与参数破解_第6张图片

安装 Xposed,并激活框架。

APP 接口拦截与参数破解_第7张图片

将 Inspeckage 模块加入 Xposed。

3)设置手机开发者选项

APP 接口拦截与参数破解_第8张图片

设置手机开发者选项,“连接 USB 后启用调试模式”。

4)手机以 USB 连接监听电脑

APP 接口拦截与参数破解_第9张图片

手机以 USB 连接监听电脑后,运行 “adb devices”,查看设备是否连接成功;运行 “adb forward tcp:8008 tcp:8008”,把 PC 电脑端 TCP 端口 8008 的数据转发到与电脑通过 adb 连接的 Android 设备的 TCP 端口 8008 上。换言之,假设现在 PC 端在端口 8008 绑定,并在该端口读写数据,将会被转发到 Android 设备端的 8008。

5)监听请求

APP 接口拦截与参数破解_第10张图片

打开浏览器,输入 “http://localhost:8008/”,进入监控页

APP 接口拦截与参数破解_第11张图片

结合 Charles 拦截的数据接口,在 Inspeckage 中查找相应的数据接口。

APP 接口拦截与参数破解_第12张图片
APP 接口拦截与参数破解_第13张图片
如上图,“securitykey” 使用了 MD5 加密,加密前的文本正是其他参数的值按顺序排列,之间用 “|” 分隔,最后再加上 “rmrbsecurity$#%sut49fbb427a508bcc” 作为盐值。

结语

爬虫人,爬虫魂;爬虫成为人上人。今日爬虫不够狠,明天地位就不稳!愿所有的技术人都能在大数据环境下找到适合自己的岗位,并被它温柔以待。

你可能感兴趣的:(java,android,网络)