文章目录

  • 1、背景介绍
  • 2、工具准备
  • 3、Fildder抓包
    • 3.1 配置fiddler代理
    • 3.2 配置安卓模拟器的代理
    • 3.3 为安卓模拟器安装证书
  • 4、抓取豆瓣APP的网络请求

1、背景介绍

豆瓣上有很多精品的图片资源,但是豆瓣的网页端写的不咋地,在下发图片链接直接随着html一起下发了,造成了很大的资源浪费,对我们解析数据也带来了不必要的麻烦。

好的解决方式是数据通过json下发,豆瓣的移动端app就是通过下发json数据实现的通信,看到下面的图,是我抓包后得到的json数据,是不是更加清晰和好解析呢。

但是,豆瓣为了防止api被第三方使用,对api的使用做了校验。本文的目的就是逆向豆瓣app,获取豆瓣的签名算法,让我们可以自由地使用豆瓣API。

2、工具准备

本文中用到的软件和工具如下

项目 描述 链接
豆瓣app 我们逆向的app 各大应用市场
Fiddler 抓包工具 自行搜索
jadx Java反汇编程序 吾爱破解
AndroidStudio 编写app验证 android developer
夜神安卓模拟器 安卓模拟器 官网自行下载

注意,夜神安卓模拟器要用系统版本为5.1的,因为安卓6.0及以上版本的app不再信任我们自行设置的证书,也就没法抓到https请求

3、Fildder抓包

将必要的软件安装完成后,我们就可以使用Fildder抓包了,但是,为了抓到https请求,我们需要为夜深安卓模拟器安装证书。

3.1 配置fiddler代理

打开Fiddler的option 选项后,在HTTPS选项中选上解密https的选项


在connection这里把端口号改成你想要的端口号,这里我设置的8887(随便设置,不超过65535,不与其他程序占用的端口冲突即可)

设置完之后,把鼠标移动到右上角的online上面,可以看到我们在局域网的ip(最下面那个ip就是),这样我们得到fildder为我们建立的代理服务器的地址就是:

http://192.168.1.102:8887

到这里,Fiddler的设置就完成了

3.2 配置安卓模拟器的代理

打开夜神安卓模拟器,找到设置-WLAN。鼠标长按WiredSSID就会出现下图中的选项

我们点击修改网络,选择高级选项,把代理选到手动模式,再把我们刚刚获得的fildder代理服务器地址写入,然后保存。

3.3 为安卓模拟器安装证书

我们打开安卓模拟器的浏览器,在地址栏输入我们之前得到的Fiddler的ip地址

http://192.168.1.102:8887/


然后点击最下面的蓝色超链接,这样就可以下载Fiddler证书到本地,下载完成后,在系统的状态栏就会有提示信息


我们单击打开FiddlerRoot.crt(因为我之前下载了多份,所以浏览器自己给加了个编号)。点击之后,可能会让你设置pin码,你自己设置一个数字密码即可。
之后,会弹出下面窗口,证书名称可以随意填,点击确定之后,证书就安装完成了,就可以抓取app的https请求了。

4、抓取豆瓣APP的网络请求

我们在安卓模拟器上打开豆瓣app,搜一下我们想要下载的照片


在Fiddler这里,我们可以看到具体的请求

https://frodo.douban.com/api/v2/elessar/subject/27260217/photos?count=100&os_rom=android&apikey=0dad551ec0f84ed02907ff5c42e8ec70&channel=Yingyongbao_Market&udid=5165b4781e5830a4f29cb0acc89e8553b1e960cd&_sig=MpYKtfAAfO8mabwd5Qa684EvidQ%3D&_ts=1599455970

先过滤掉url中没用的信息,我们可以得到

https://frodo.douban.com/api/v2/elessar/subject/27260217/photos?count=100&apikey=0dad551ec0f84ed02907ff5c42e8ec70&_sig=MpYKtfAAfO8mabwd5Qa684EvidQ%3D&_ts=1599455970

选fildder的webform选项可以看得更清楚一些。里面的apikey是固定的,_sig是加密的验证签名,_ts是以秒为单位的请求时间,和加密有关,count则是请求的图片数量(设置一百也只能请求50个,不过,可以在链接中再加入一个参数start,带start的链接需要你滚动下鼠标,加载图片,然后在fildder里面就能看到了),dfid是追踪用户信息的一个标志,在这里并不需要。

上面所说的_sig就是我们需要攻克的签名。

安卓逆向-豆瓣app签名算法分析与解密(上)相关推荐

  1. 安卓逆向-豆瓣app签名算法分析与解密(下)

    文章目录 1.反汇编豆瓣APP 2.定位签名计算位置 3.获取豆瓣APP的签名 4.HMAC Hash加密逻辑分析 5.代码实现 6.注意事项 完整工程上传到了GitHub上,仅限于研究使用,欢迎st ...

  2. 安卓逆向--豆瓣app签名sign

    声明 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!由于本人水平有限,如有理解或者描述不准确的地方,还望各位大佬指教!! 前言 今天我们要分 ...

  3. Web逆向、软件逆向、安卓逆向、APP逆向,关于网络安全这些你必须懂

    逆向工程是网络安全行业里面一项很重要的技术. 先解释下逆向工程是什么. 逆向是一个相对正向而言的解释,相对正向来说,对一个程序来讲,正向就是开发的过程,从0到1. 就是在一个软件诞生的整个生命周期中的 ...

  4. 安卓逆向——修改APP的名称,图标和包名多开分身

    修改APP的名称,图标和包名多开分身 1. 把apk拖入到 Android killer 2. 修改apk的名字 搜到结果,把得到的文件,把"土豆视频" 改成 修改成的名字 回编译 ...

  5. 安卓逆向——修改APP去广告案例

    修改APP去广告案例 首先 没有去 广告打开的样子 ,显示的广告 这里使用 Android killer 工具 反编译 apk ,查看源码,打开 AndroidManifest.xml 文件查看 配置 ...

  6. 安卓逆向之APP抓包

    市面上的抓包工具很多,其中最主要的两款就是Charles以及Fiddler,下面按照步骤讲一下Fiddler抓包工具的配置以及使用过程! 1.Fiddler软件的下载 到如下网址下载Fiddler:h ...

  7. 安卓逆向必备之Java开发基础(上)

    文章目录 1.环境搭建 2.初识Java 3.注释 4.变量 6.输入和输出 5.条件语句 6.循环语句 7. 数据类型相关 7.1 整数类型 7.2 字符 7.3 字符串 7.4 数组 7.5 Li ...

  8. 安卓逆向 -- POST数据解密

    上节课内容 安卓逆向 -- JEB3.7安装使用 ​安卓逆向 -- Jeb动态调试 一.通过上几节课我们知道要找的加密数据如下 {"Encrypt":"NIszaqFPo ...

  9. 3、xx配音狂app登陆算法分析【Android逆向分析学习】

    学习安卓逆向分析的一个小菜鸟,记录分析的"快乐时光",小白图个乐,大佬乎喷 分析的APP 英语配音狂包名:com.zhuoyue.peiyinkuang版本号:5.2.5模拟器安装 ...

最新文章

  1. 看完 50000 张专辑封面,AI 设计师开始疯狂输出
  2. 微软一顿操作猛如虎,PowerShell排名直线上升
  3. Python2的Json反序列化工具
  4. python项目实例代码-python开源项目及示例代码
  5. jupyter命令把.ipynb文件转化为.py文件
  6. Python内置容器(2)——字典,迭代器,列表解析
  7. 首届全国信创大赛圆满收官,信创新势力载誉而归!
  8. LeetCode【1051. 高度检查器】
  9. MyBatis映射表问题
  10. testufo测试刷新率测试_【中立观点】黑鲨3测试体验报告
  11. Android权限管理及动态申请权限
  12. web前端期末大作业 html+css+javascript防天天生鲜官网网页设计实例 企业网站制作
  13. 任天堂游戏 html5,明年的预备阵容!任天堂承诺却还没出的作品
  14. JavaScrpit+Html实现“网页播放视频“效果(应用场景:腾讯PC端视频播放器、以及各视频网站页面开发设计)
  15. ios手机编辑html转pdf文件,苹果手机居然能一键转换PDF文件?iPhone老司机才知道...
  16. matlab 双馈,基于Matlab的双馈调速系统研究
  17. Python 命令行参数:Argparse 与 Click
  18. iPhone 13 不带 Touch ID、搭载 M1X 的 Mac mini 将发布?2021 苹果秋季发布会预测
  19. Linux系统 黏着位(SBIT) 详解
  20. 前端算法学习入门笔记 - JavaScript

热门文章

  1. 河大版认识计算机的硬件教案,河大版信息技术教案
  2. 把红外摄像机VGA接口和投影仪VGA接口连接起来的放大器电路板
  3. Map接口常用的几种遍历方式与小练习
  4. 图论模板,随缘不定期更新
  5. 如何关闭鼠标加速效果
  6. 如何实现《电子签名法》要求的可靠电子签名?
  7. 基于MATLB软件平台的模拟信号调制解调范例(包含源代码)LSB,AM,DSB
  8. 街景字符识别1-街景字符编码SVHN
  9. 防爆真空上料机工作原理是什么?
  10. Java笔记:常用类