爬虫&APP逆向开发课程
讲师:武沛齐
欢迎各位小伙伴,接下来正式进入我们第二阶段,逆向开发课程。
- 第一阶段:爬虫开发 (小鹅通 + 录播)
- 第二阶段:安卓APP逆向(腾讯会议 + 录制 + 转码MP4 + 运营 + 路飞学城)
课堂随笔
Hook框架
1.逆向APP
- app安装到你手机
- 运行(登录,账号+密码) -> Java写的函数
- 登录
2.Hook框架
- 去内存中把你运行那个app的函数替换成自己的函数
类.xx = function(){
console.log("执行了")
}
3.意义何在?验证和定位代码。
- 逆向某个APP:apk文件
- 运行
- 安装手机 & 运行
- apk文件 -> classes.dex
- 安卓工程师:Java代码 -> 编译 -> classes.dex
- 逆向工程师:classes.dex ->反编译 ->Java代码
- 寻找?登录时运行的是那个函数?Hook框架
var ADFilterTool = Java.user("com.yltx.oil.partner.utils.ADFilterTool")
ADFilterTool.hasNotAd = function(){
console.log("执行了")
}
关于逆向和设备
1.关于安卓app逆向
正向:安卓开发工程师 ->Java语法+安卓框架 -> 功能代码(Java+C) -> APK(资源文件/.dex/.so)
逆向:安卓逆向工程师 -> APK -> 反编译 -> Java+C代码 + Hook -> Python代码还原
2.设备
2.1 模拟器,电脑软件模拟手机
- win:网易mumu、夜神...(注意事项电脑开启vt-x)
https://mumu.163.com/include/16v1/2016/06/27/21967_625825.html
- mac:网易mumu(m1和m2不支持)
2.2 真机(推荐)
- 谷歌Pixel
- Pixel 2XL,400【推荐】
- Pixel 4, 900
注意:解OEM锁的版本(欧版);
- 小米手机(官方解BL锁)
- arm32,红米8A、红米9A
- arm64,小米6789、红米Note789
只要逆向,一定要把手机ROOT。
- 手机必须解BL锁 或 解OEM锁
- 其他方式进行ROOT
3.设备ROOT
3.1 模拟器
3.2 Pixel手机ROOT
参考:6期视频(蔡徐坤 + 我)
3.3 小米手机
- 解BL锁,官方申请(7天)
- 注册小米账号; 手机登录账号+SIM绑定;
注意:网上找秒解BL锁(不推荐)
- ROOT
https://www.bilibili.com/video/BV1er4y1C7wU/
https://magiskcn.com/
- ROOT(淘宝)
- 30/50
注意:华为、三星手机
问题:ROOT在干啥?手机有影响?
- ROOT,获取手机的最高权限。【逆向必备】
- 刷其他框架
问题:电脑配置(内存)
- 16G内存 ~ 32G内存
Python的虚拟环境
1.系统解释器
C:\python38\
- python.exe
- Scripts
- pip.exe
- pip3.exe
- pip3.8.exe
- Lib
- random.py
- re.py
- json.py
- site-packages
- 第三方模块
- requests
C:\python39\
- python.exe
- Scripts
- pip.exe
- pip3.exe
- pip3.9.exe
- Lib
- random.py
- re.py
- json.py
- site-packages
- 第三方模块
- requests
C:\python310\
- python.exe
- Scripts
- pip.exe
- pip3.exe
- pip3.10.exe
- Lib
- random.py
- re.py
- json.py
- site-packages
- 第三方模块
- requests
2.环境变量的配置
C:\python39\
C:\python39\Scripts\
>>>python
>>>pip install ...
3.开发项目(浩贤)
C:\python39\
- python.exe
- Scripts
- pip.exe
- pip3.exe
- pip3.9.exe
- Lib
- random.py
- re.py
- json.py
- site-packages
- requests==2.1
- bs4==2.9
- flask==0.9
>>>pip install requests==2.1
>>>pip install bs4==2.9
>>>pip install flask==0.9
>>>python code.py
3.1 接项目:京东抢茅塔(20w+5w)
- 写代码
- pip install requests==2.1
- 系统解释器运行
3.2 接项目:天猫抢茅台(10w)
- 拿过来,发现requests模块发送请求 requests 的1.3版本
- pip install requests==1.3
- python 天猫.py
...
...
4.虚拟环境(根据系统解释器,虚拟出来一个python解释器)
4.1 开发项目
D:\projecs\jd
- app.py
- utils.py
- venv
- python.exe
- Scripts
- pip.exe
- Lib
- 无内置模块
- site-pckages
- requests==2.1
>>>D:\projecs\jd\venv\Scripts\pip.exe install requests==2.1
>>>D:\projects\jd\venv\python D:\projecs\jd\app.py
4.2 其他项目
D:\projecs\tm
- app.py
- utils.py
- venv
- python.exe
- Scripts
- pip.exe
- Lib
- 无内置模块
- site-pckages
- requests==1.3
>>>D:\projecs\tm\venv\Scripts\pip.exe install requests==1.3
>>>D:\projects\tm\venv\python D:\projecs\tm\app.py
4.3 实战(Pycharm)
- 项目 + 环境绑定关系
- 终端自动激活
>>>pip3
>>>python
- 常见错误:
- 路径一定不能有中文
- power shell + cmd
>>>/Users/wupeiqi/WebstormProjects/v001/venv/bin/pip3.9 install requests
>>>Pycharm自动激活虚拟环境
>>>pip3.9 install requests
4.4 第三方包收集和安装
- 龙王,开发
- 代码
- 所有第三方包名字+版本
- 激活虚拟环境
- pip freeze > requirements.txt
>>>代码+requirements.txt
- 浩贤,运营
- 代码
- requirements.txt
- venv
..
...
- pip install -r requirements.txt
答疑:文档中体现 + 口头体现(python3.7、python3.6)
5.约定
- s701
- venv
- day01
- day02
- day03
- day04
...
- s702
- venv
- day05
- day06
- day07
...
- 项目1 + 虚拟环境
- 项目2 + 虚拟环境
- 项目3 + 虚拟环境
问题:..
# 总结
1.开班相关(群公告,连接)
2.设备+ROOT
- 推荐:Pixel(OEM锁 + 强调自主刷系统 + 气密 + 屏幕)
- 其他:小米手机
3.虚拟环境
- 为什么要有虚拟环境?【浩贤】
- 传递代码【龙王+浩贤】
- Pycharm实操
注意:要不要有中文路径; cmd
4.APP逆向阶段
- 答疑:蔡徐坤 + 我(不要玻璃心)
- APP逆向资源
- 其他资源
- django: https://www.bilibili.com/video/BV1rT4y1v7uQ
- 小程序开发:https://www.bilibili.com/video/BV1jC4y1s7QD/
- 其他资源:
https://space.bilibili.com/336469068?spm_id_from=333.1007.0.0
https://space.bilibili.com/283478842/video?tid=0&page=2&keyword=&order=pubdate
- 其他资源
1.开班
1.1 课程内容概要
欢迎大家来到app逆向课程,课程会包含如下几部分:
https://www.processon.com/view/link/6399a2f851757002840c1d4a#map
1.2 关于直播
-
直播工具:腾讯会议
-
上课时间:每周 3 / 5 晚8:00 (或周1/3/5)
-
直播链接:见群公告
1.3 课件和视频
-
关于课件
授课相关的课件、工具、资料等都会放在此 百度网盘 链接(请订阅) 群公告
-
关于录播视频
录播视频会同步更新到 路飞学城 平台,请联系各自 课程顾问 开通相关权限(已开通请忽略)。
1.4 关于设备和ROOT
-
电脑安卓模拟器(网易mumu)
win: 网易mumu、逍遥、夜神、雷电(推荐3版本,不要用4版,以后抓包会有问题) mac: 网易mumu(暂不支持m1) win同学安装模拟器时,开启vt-x: https://mumu.163.com/include/16v1/2016/06/27/21967_625825.html
-
安卓真机
推荐:Pixel谷歌手机【逆向+刷自定义安卓系统+脱壳机】 注意:购买时,必须要买解OEM锁的版本(欧版) 其他:小米手机(官方支持解BL锁)
在逆向时,你的安卓设备必须获取ROOT权限,一般想要获取ROOT的权限,必须:
- 手机解BL锁或OEM锁
- 刷官方系统 + 基于Magisk面具对手机进行ROOT
1.4.1 谷歌pixel手机
参考视频:刷机 + ROOT
1.4.2 小米手机
正常拿到一部手机后需要做:
-
第1步:申请解BL锁
注册小米账号、手机和账号绑定、申请解锁,申请后一般需等7天才能成功解锁。 注:淘宝上有人可以秒解,曾有同学新手机被搞的无法开机,又去返厂(请谨慎)。
-
第2步:root,手机root就是获得最高权限,app逆向必备,一般现在的手机root有2种方式:
-
FastBoot刷Magisk,一般分区无法挂载(system目录)【推荐】
https://www.bilibili.com/video/BV1er4y1C7wU/ https://magiskcn.com/
-
淘宝找人代刷(30-50左右)
-
注意:其他机型,请自行解决root问题。
2.虚拟环境
2.1 Pycharm+虚拟环境
- 虚拟环境的目录:
/Users/wupeiqi/envs/day01_spider
- 项目目录:
/Users/wupeiqi/PycharmProjects/day01_spider
2.2 切记
- 虚拟环境的路径,不能包含中文
- win系统+Pycharm终端会自动激活虚拟环境,请替换切换
powershell
至cmd