学习爬虫需要的知识

爬虫进阶三阶段

javascript 生成一个随机算法 js加密
逆向js

app逆向
eg:抖音,闲鱼
爬取某个app逆向,找到算法,实现某个功能。

搞app逆向技术栈: java,c,安卓开发,ndk开发。
只有会编写app,才会看得懂代码,实现app内部的逆向实现。
汇编,脱壳,JNI静态分析。

案例

某乎app搜索接口
涉及: java层逆向,so文件逆向(C语言分析) webView(JS逆向)
几乎涉及逆向的所有点

算法可能会改变,但是大致的逻辑相同。

前戏

抓包

模拟人的请求。
抓包软件: charles(电脑window和mac都可以)
安卓手机: root,安装charles证书(https),设置charles代理。
安卓7版本之后,想要抓包,得安装证书,在root目录下。
手机设置charles代理。

几乎所有主流文件都要逆向so文件(C语言代码),模拟器不行的。
一定要准备一台:已root的安卓手机。

低成本root手机:红米8A 300块钱,可以进行root的。

逆向四阶段

level1
直接在抓包软件中找到请求(无算法,无加密)。
大都是无关紧要的接口。

简单接口直接通过python实现。

level2
在这里插入图片描述通过APK反编译(逆向)可以得到java的代码。
反编译apk工具: jeb,jadx,gda + , 看懂java代码(加壳)。
加密:apk文件代码 加密了,不可以反编译直接得到java代码,需要脱壳+逆向。

level3
学习爬虫需要的知识_第1张图片
hook: app内部执行某个功能,需要调用某个函数。通过hook技术,将这个函数,换成我们自己的函数。
可以写跟函数相同的参数,将穿入的值拿到。
工具: frida

level4
厉害的app,内部算法都是全部用C语言来实现。(基于JNI用C语言实现)。
学习爬虫需要的知识_第2张图片
ida工具,反编译so文件,获取c语言代码。
C语言计算长度,JNI和C语言转换。

玩逆向得安装的相关工具

学习爬虫需要的知识_第3张图片

两个维度分析

分析URL
URL: 请求的网址
学习爬虫需要的知识_第4张图片
将URL写入python代码
学习爬虫需要的知识_第5张图片

分析请求头
学习爬虫需要的知识_第6张图片

x-app-version 固定的版本号(app的版本是固定的),不用逆向
x-udid 和 x-ac-udid 类似,一个算法
x-hd,一个算法
x-zse-96, 一个算法

一共三个算法
x-udid
x-hd
x-zse-96

x-udid

1.通过反编译工具,将jdk反编译成java代码
2.搜索 x-udid
检查代码发现: 某乎 的 x-udid不是通过算法生成,而是网络请求生成的。

x-hd

x-hd 向某个地址发送请求,请求返回出来的,不是通过算法生成。

x-zse-96

知乎嵌套的html界面
分析出其中的js页面
学习爬虫需要的知识_第7张图片

技术的目的是为了商业服务的。

蚂蚁市场
没有巨头,全是散家。
IT技术小私活,单价在2w以下的私活。

需要两个方向:
流量 和 技术

技术方向:
按 下面 在B站挨个搜自学
学习爬虫需要的知识_第8张图片
学习爬虫需要的知识_第9张图片

你可能感兴趣的:(爬虫,爬虫)