爬虫进阶三阶段
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
hook: app内部执行某个功能,需要调用某个函数。通过hook技术,将这个函数,换成我们自己的函数。
可以写跟函数相同的参数,将穿入的值拿到。
工具: fridalevel4
厉害的app,内部算法都是全部用C语言来实现。(基于JNI用C语言实现)。
ida工具,反编译so文件,获取c语言代码。
C语言计算长度,JNI和C语言转换。
玩逆向得安装的相关工具
两个维度分析
分析URL
URL: 请求的网址
将URL写入python代码
分析请求头
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页面
技术的目的是为了商业服务的。
蚂蚁市场
没有巨头,全是散家。
IT技术小私活,单价在2w以下的私活。
需要两个方向:
流量 和 技术
技术方向:
按 下面 在B站挨个搜自学