安卓逆向-豆瓣app签名算法分析与解密(上)
文章目录
- 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签名算法分析与解密(上)相关推荐
- 安卓逆向-豆瓣app签名算法分析与解密(下)
文章目录 1.反汇编豆瓣APP 2.定位签名计算位置 3.获取豆瓣APP的签名 4.HMAC Hash加密逻辑分析 5.代码实现 6.注意事项 完整工程上传到了GitHub上,仅限于研究使用,欢迎st ...
- 安卓逆向--豆瓣app签名sign
声明 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!由于本人水平有限,如有理解或者描述不准确的地方,还望各位大佬指教!! 前言 今天我们要分 ...
- Web逆向、软件逆向、安卓逆向、APP逆向,关于网络安全这些你必须懂
逆向工程是网络安全行业里面一项很重要的技术. 先解释下逆向工程是什么. 逆向是一个相对正向而言的解释,相对正向来说,对一个程序来讲,正向就是开发的过程,从0到1. 就是在一个软件诞生的整个生命周期中的 ...
- 安卓逆向——修改APP的名称,图标和包名多开分身
修改APP的名称,图标和包名多开分身 1. 把apk拖入到 Android killer 2. 修改apk的名字 搜到结果,把得到的文件,把"土豆视频" 改成 修改成的名字 回编译 ...
- 安卓逆向——修改APP去广告案例
修改APP去广告案例 首先 没有去 广告打开的样子 ,显示的广告 这里使用 Android killer 工具 反编译 apk ,查看源码,打开 AndroidManifest.xml 文件查看 配置 ...
- 安卓逆向之APP抓包
市面上的抓包工具很多,其中最主要的两款就是Charles以及Fiddler,下面按照步骤讲一下Fiddler抓包工具的配置以及使用过程! 1.Fiddler软件的下载 到如下网址下载Fiddler:h ...
- 安卓逆向必备之Java开发基础(上)
文章目录 1.环境搭建 2.初识Java 3.注释 4.变量 6.输入和输出 5.条件语句 6.循环语句 7. 数据类型相关 7.1 整数类型 7.2 字符 7.3 字符串 7.4 数组 7.5 Li ...
- 安卓逆向 -- POST数据解密
上节课内容 安卓逆向 -- JEB3.7安装使用 安卓逆向 -- Jeb动态调试 一.通过上几节课我们知道要找的加密数据如下 {"Encrypt":"NIszaqFPo ...
- 3、xx配音狂app登陆算法分析【Android逆向分析学习】
学习安卓逆向分析的一个小菜鸟,记录分析的"快乐时光",小白图个乐,大佬乎喷 分析的APP 英语配音狂包名:com.zhuoyue.peiyinkuang版本号:5.2.5模拟器安装 ...
最新文章
- 看完 50000 张专辑封面,AI 设计师开始疯狂输出
- 微软一顿操作猛如虎,PowerShell排名直线上升
- Python2的Json反序列化工具
- python项目实例代码-python开源项目及示例代码
- jupyter命令把.ipynb文件转化为.py文件
- Python内置容器(2)——字典,迭代器,列表解析
- 首届全国信创大赛圆满收官,信创新势力载誉而归!
- LeetCode【1051. 高度检查器】
- MyBatis映射表问题
- testufo测试刷新率测试_【中立观点】黑鲨3测试体验报告
- Android权限管理及动态申请权限
- web前端期末大作业 html+css+javascript防天天生鲜官网网页设计实例 企业网站制作
- 任天堂游戏 html5,明年的预备阵容!任天堂承诺却还没出的作品
- JavaScrpit+Html实现“网页播放视频“效果(应用场景:腾讯PC端视频播放器、以及各视频网站页面开发设计)
- ios手机编辑html转pdf文件,苹果手机居然能一键转换PDF文件?iPhone老司机才知道...
- matlab 双馈,基于Matlab的双馈调速系统研究
- Python 命令行参数:Argparse 与 Click
- iPhone 13 不带 Touch ID、搭载 M1X 的 Mac mini 将发布?2021 苹果秋季发布会预测
- Linux系统 黏着位(SBIT) 详解
- 前端算法学习入门笔记 - JavaScript