当你写爬虫遇到APP的请求有加密参数时该怎么办?【初级篇-秒杀模式】
文章转载自公众号小周码字
看完了初级篇的常规模式之后,你是不是发现了一个很严重的问题:如果每个APP都需要这么反编译看代码仿写的话,那么当想要大批量爬不同的APP的时候,光是找加密参数的生成部分就已经很花时间了,有没有更快捷的办法呢?
答案是有的,而且对于初级篇水平的APP来说,这个操作可以让你在一分钟内直接秒掉它的加密参数部分,可以说是一种降维打击了!
那么这个效果是怎么做到的呢?其实很简单,就是直接将Java标准库中常见的被用于生成加密参数的方法给Hook了,监听它们的输入参数和返回值,这样就能直接得到加密、Hash前的原文、密钥、IV等内容了,怎么样?是不是很简单?
小提示:之所以不提Kotlin,是因为在Kotlin下写加密、Hash操作的代码时如果不使用第三方库的话,就只能调用Java的标准库了,而第三方库的类名、方法名可能性太多了,不像标准库那样可以直接秒杀一大片,所以不属于本系列初级篇内容。(已询问多位Android开发同学验证此结论)
所以…要怎么操作呢?其实目前已经有一个非常方便的、基于Xposed框架编写的、能实现这种效果的工具了,它就是——Inspeckage。这个工具其实我在前面的《写APP爬虫会需要用到哪些工具呢?》文章中有提到过,它已经将标准库中常用的加密、Hash方法都给Hook了:
而在你需要的时候,只需要打开Inspeckage -> 选择需要Hook的APP -> 打开Inspeckage的Web端或者在日志中搜索你所需要找的加密参数就可以得到原文和使用的加密、Hash类型,直接秒杀!
接下来我将继续使用前面常规模式中的Demo APP来进行演示,如果你迫不及待地想要尝试了的话,可以发送消息【app秒杀】到我的公众号获得Demo APP的下载地址
话不多说,我们开始实战,首先我们需要准备一台已经安装好Xposed框架的Android手机,然后在Inspeckage的GitHub仓库中下载最新编译好的Inspeckage安装包或直接在Xposed管理器中安装它。
装好后记得在Xposed管理器中将它启用,启用后需要重启生效。
准备好了环境之后,我们就可以开始破解这个Demo APP了,打开Inspeckage,点击“choose target”选中想要Hook的APP(这里选择“APP加密参数DEMO-初级篇”)。
选中后点击“LAUNCH APP”按钮就可以了。
小提示:如果在这之前你打开过指定的APP的话,需要将其强制停止后再点击“LAUNCH APP”按钮,否则可能会出现Hook失败的情况。
在启动之后我们就可以在Inspeckage的Web端或日志中搜索sign的加密后参数了,这里说一下怎么操作:
Web端
Web端的话,如果你的手机和电脑是在同一个网络环境下,且手机和电脑能互通,那么你可以在电脑上直接用浏览器访问手机上显示的内网IP地址(如
http://192.168.137.64:8008
);如果你的网络环境使你不能这么操作的话,你还可以用adb命令adb forward tcp:8008 tcp:8008
将手机上的8008端口映射到电脑上,然后就可以直接访问http://127.0.0.1:8008
了(需要8008端口未被占用)。在打开了Web端之后,将页面上方那个扳手按钮右边的自动刷新选项打开,就可以看到被Hook出来的东西了。
日志
可以使用adb命令
adb logcat
来导出日志然后查看,或者是用像Android Studio中的logcat工具这种流式、带搜索功能的工具来查看。另外如果在Web端找到对应的加密参数时,原文过长导致出现被截断的情况,也可以在日志中找到对应的内容进行查看,打到日志中的会是完全体。
之后依然是常规流程,先抓个包看看。(再次提醒,如果你抓不到包的话,先看看我之前的抓包系列文章,这是基本操作!)
这里我们抓包后得到了一个sign:188c338423f3af3c2c0277946de958f8
,直接将它复制出来,然后在Inspeckage的Web端中的Hash栏内搜索(日志内搜索直接搜sign的内容即可)。
看到了吗?直接就得到了它的原文:brand=Xiaomi&device=capricorn&model=MI 5s&ts=1560859682&version=8.1.0
了,轻轻松松地就破解了这个APP的sign参数,全程只用一分钟!
发送消息【app秒杀】到我的公众号即可获得demo代码和APP的下载地址~
END
往期文章回顾
我深度学习0基础,还训练出一个识别验证码模型!
当你写爬虫遇到APP的请求有加密参数时该怎么办?【初级篇-常规模式】
有多少个人在看?
当你写爬虫遇到APP的请求有加密参数时该怎么办?【初级篇-秒杀模式】相关推荐
- jmeter 请求发送加密参数(其中包含Json嵌套)
jmeter 请求发送加密参数(其中包含Json嵌套) 某个接口的请求参数非常多,并且接口请求要求有MD5签名校验:签名的方式为在Headers或是请求中包含一个sign参数,该参数值通过对URL.M ...
- 【Python3爬虫】破解同程旅游加密参数 antitoken-爬虫深度技术
[Python3爬虫]2020年最新破解同程旅游加密参数 antitoken 一.前言简介 在现在各个网站使用的反爬措施中,使用 JavaScript 加密算是很常用的了,通常会使用 JavaScri ...
- 网络爬虫的秘密:百度翻译加密参数破解
一.小试牛刀 在上课的时候,百度翻译之前的那个简单的接口,需要你多次尝试之后才能出来,其实只要我们打开network中的XHR就可以查看到. 步骤1:浏览器打开:fanyi.baidu.com, 按键 ...
- android调用完自己写的app之后如何返回原来的android应用_App逆向篇 神器之 Frida...
说到逆向APP,很多人首先想到的都是反编译,但是单看反编译出来的代码很难得知某个函数在被调用时所传入的参数和它返回的值,极大地增加了逆向时的复杂度,有没有什么办法可以方便地知道被传入的参数和返回值呢? ...
- python爬虫文字加密_Python爬虫进阶必备 | X薯中文网加密分析
此次来分析某个小说网站. aHR0cHM6Ly9nLmhvbmdzaHUuY29tL2NvbnRlbnQvOTM0MTYvMTM4Nzc5MTIuaHRtbA==node 分析请求 先来看看页面的请求 ...
- python爬虫之逆向破解_js逆向爬虫实战(2)--新快之加密参数破解
爬虫js逆向系列 我会把做爬虫过程中,遇到的所有js逆向的问题分类展示出来,以现象,解决思路,以及代码实现.我觉得做技术分享,不仅仅是要记录问题,解决办法,更重要的是要提供解决问题的思路.怎么突破的, ...
- 当你写爬虫抓不到APP请求包的时候该怎么办?【高级篇-混淆导致通用Hook工具失效】...
提示:因为高级篇以后的APP将无法使用很通用的方式处理,每种类型甚至是每个APP的反抓包处理方式都会有差别,所以这个系列以后会以[高级篇-具体类型]的形式来写. 这篇文章的主要内容是解决在遇到APP没 ...
- 爬虫手机App——数据采集小攻略
爬虫手机App数据采集小攻略 最近帮朋友研究爬虫软件,抓取手机App的资源,想总结一下爬虫手机App资源的小套路,翻到这哥们总结的不错,就不重复造轮子了!下面请看?↓ 手机App的采集其实跟web采集 ...
- 猫哥教你写爬虫 046--协程-实践-吃什么不会胖
吃什么不会胖? 低热量食物 食物的数量有千千万,如果我们要爬取食物热量的话,这个数据量必然很大. 使用多协程来爬取大量的数据是非常合理且明智的选择 如果我们要爬取的话,那就得选定一个有存储食物热量信息 ...
最新文章
- 小程序判断用户在线状态
- 光伏行业需理性看待低价中标 市场竞争是必然选择
- 关于对话框DoModal()函数调用失败的原因分析
- Spark RDD并行度与分区设置
- 关于编程学习的一些思考 | 欢迎投稿
- 优化Meta讨好搜索引擎 更好的提升网站排名
- 超级备份还原v2.3.05_新手如何一键还原电脑系统(图文教程)
- 公司 MyEclipse设置和SVN安装设置
- Java基础(二):面向对象
- 【Unity Native Plugins】1.调用动态库so-android篇 附录完整工程
- 网际风全推数据接口_网际风数据接口飞狐交易师版简要说明.doc
- 酒店管理与计算机技术结合,基于TCP/IP的酒店客房管理系统解决方案
- 来信, 创业 和 移动互联网
- atan(y/x)与atan2(y,x)的区别
- 图像处理中的二值化和灰度化
- CentOS下Oracle11g部署
- ShareTechnote系列LTE(15):HARQ
- 宋体加粗字通过pdf转换有问题
- javascript实现 时钟实时显示及幻灯片自动播放
- 机器学习-(三)在线图片识别+摄像头捕捉图片识别