From 4748c746634e2fc7d0a0dea904b933d0df0debc3 Mon Sep 17 00:00:00 2001 From: MemRelay Date: Mon, 28 Sep 2026 02:37:37 +0800 Subject: [PATCH] =?UTF-8?q?update:=20=E5=A6=82=E4=BD=95=E6=8A=93=E5=88=B0?= =?UTF-8?q?=20App=20=E7=9A=84=20HTTPS=20=E8=AF=B7=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit MemRelay-Operation: memory-save:rapt-capture-method-fix-apasstk-20260928 MemRelay-Resource: 88370fe7-bd1b-4184-8b84-afe72a7541e5 --- .../如何抓到 App 的 HTTPS 请求.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/projects/280dd2a0-d23d-4a71-91e1-dce4353163be/如何抓到 App 的 HTTPS 请求.md b/projects/280dd2a0-d23d-4a71-91e1-dce4353163be/如何抓到 App 的 HTTPS 请求.md index 37b482c..f6bb922 100644 --- a/projects/280dd2a0-d23d-4a71-91e1-dce4353163be/如何抓到 App 的 HTTPS 请求.md +++ b/projects/280dd2a0-d23d-4a71-91e1-dce4353163be/如何抓到 App 的 HTTPS 请求.md @@ -8,10 +8,10 @@ memory_type: experience project_id: 280dd2a0-d23d-4a71-91e1-dce4353163be usage_profile_id: 0c9feb46-d06e-43cd-9ef0-c5813c84a998 status: active -revision: 1 -request_id: rapt-capture-method-20260928 +revision: 2 +request_id: rapt-capture-method-fix-apasstk-20260928 created_at: '2026-09-27T18:37:19.908316+00:00' -updated_at: '2026-09-27T18:37:19.908316+00:00' +updated_at: '2026-09-27T18:37:33.657969+00:00' tags: - capture - api @@ -22,7 +22,7 @@ tags: 环境:模拟器 emulator-5556,机型 23113RKC6C,Android 12(SDK 32)。adb shell 已是 root,/system 可写。包名 com.leivideo.raptdrama。接口域名 apis.raptdrama.com,CNAME 到 Bunny CDN,出口 IP 会变(109.61.83.0/24、169.150.249.0/24、212.102.50.0/24 都出现过)。主机在模拟器里是 10.0.2.2。 -为什么不用 Frida 直接读明文:已装过 Frida 16.5.9 的 android-x86_64 frida-server。libflutter.so 的 SSL 符号被剖掉,SSL_write 导不出来。扫堆只能扫到 SharedPreferences,扫不到 POST /app/ 这种完整请求行。Flutter 发行版不信任用户证书,也不走系统 HTTP 代理,所以不能只设 http_proxy。 +为什么不用 Frida 直接读明文:已装过 Frida 16.5.9 的 android-x86_64 frida-server。libflutter.so 的 SSL 符号被剖掉,SSL_write 导不出来。扫堆只能扫到 SharedPreferences,扫不到完整的 HTTP 请求行。Flutter 发行版不信任用户证书,也不走系统 HTTP 代理,所以不能只设 http_proxy。 成功做法: 1. 用本机已有的 mitmproxy CA(%USERPROFILE%\\.mitmproxy\\mitmproxy-ca-cert.pem)。openssl x509 -subject_hash_old 得到 c8750f0d,把 pem 推到模拟器 /system/etc/security/cacerts/c8750f0d.0,chmod 644。 @@ -33,11 +33,11 @@ tags: 6. 收尾必做:iptables -t nat -F OUTPUT,删掉 c8750f0d.0,停掉 mitmdump,再 stop/start 一次框架,否则证书仍在内存里受信任。frida-server 如果推过,一并杀掉并删除 /data/local/tmp/frida-server。 已核对的请求(头都一样,v2 和不带 v2 可共用): -- 设备头:User-Agent 为 RaptDrama/版本 (Android 系统; 型号; 品牌),x-device-* 、x-os-name=Android、x-os-version、x-app-version、x-app-build、accept-language 与 accept-language-custom 用原样语言,http_accept_language_custom 用小写。Accept-Encoding 为 gzip。登录后带 apasst。空 POST(游客登录、getUserInfo)正文为空,Content-Length 为 0,不是 {}。 +- 设备头:User-Agent 为 RaptDrama/版本 (Android 系统; 型号; 品牌),x-device-* 、x-os-name=Android、x-os-version、x-app-version、x-app-build、accept-language 与 accept-language-custom 用原样语言,http_accept_language_custom 用小写。Accept-Encoding 为 gzip。登录后带 apasstk。空 POST(游客登录、getUserInfo)正文为空,Content-Length 为 0,不是 {}。 - GET /app/open/classifyv2,无正文。重装后才抓到。 - GET /app/open/classify_video?type=分类id&page=页码,没有 limit。 - GET /app/open/orgin?class=new_releases 和 class=trending_now。以前说拿不到热门,是因为试的是不带参数或 type=trending,不是 class=trending_now。 - App 底部推薦页是 GET /app/open/foryou?page=1。桌面端清单的 Recommend 仍是 POST /app/open/recommend,正文 {page, limit},不要用热门替掉它,也不要接 foryou。 - POST /app/video/playlist 一次返回全部集;POST /app/video/playlistv2 每页 10 集,正文 {vid, page, before},第一页 before=1,后面为 0。桌面端先调不带 v2 的。 - 简介在 POST /app/video/videoinfo,正文 {vid},字段 video.desc。下载时写成剧目录下的简介.txt。 -- fMP4 的 init.mp4 在 #EXT-X-MAP:URI 里,下载必须和分片一起存,否则 ffmpeg 报找不到 init.mp4。 +- fMP4 的 init.mp4 在 #EXT-X-MAP:URI 里,下载必须和分片一起存,否则转 MP4 报找不到 init.mp4。