APP 接口拦截与参数破解

摘要

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

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

准备

Charles:抓包工具

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

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

接口拦截

1)配置网络环境

Charles抓包

打开 Charles,配置监听端口。

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

2)拦截数据接口

Charles抓包实操

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

确认数据接口请求参数

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

参数破解

1)安装配置 Inspeckage

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

2)安装配置 Xposed

安装 Xposed,并激活框架。

将 Inspeckage 模块加入 Xposed。

3)设置手机开发者选项

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

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

在这里插入图片描述

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

5)监听请求

监控页

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

查找数据流及其转换方式

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

Charles拦截实例
Inspeckage拦截实例
如上图,“securitykey” 使用了 MD5 加密,加密前的文本正是其他参数的值按顺序排列,之间用 “|” 分隔,最后再加上 “rmrbsecurity$#%sut49fbb427a508bcc” 作为盐值。

结语

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

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值