抓包验证状态 / 实现清单
依据:module-apis-421.md(JADX 静态)+ 源仓库 frida/threads/.../apis/(Burp 实测,更权威,逐端点字段)
用途:逐端点标注是否抓包验证过,作为 SDK 实现的进度清单与 TODO 依据。
维护:某端点抓包核对通过后,把状态从 ⚠️/❓ 升级为 ✅,并删除代码里对应的 TODO(抓包核对)。
真实 gRPC 基线(2026-07-24):Python grpc.aio → Go gRPC server → Threads 真实 API 已覆盖当时定义的
14 个 RPC,共记录 40 次 gRPC 调用和 16 次上游 HTTP 往返。2026-07-25 新增图片上传/单图发布 2 个 RPC
及真实黑盒测试,仍待配置图片夹具执行,不计入上述已通过基线。
实现进度(Go SDK 与 gRPC)
下表同时记录 Go SDK 能力和 gRPC RPC。当前共 9 个 gRPC 服务、17 个 RPC;insights / mentions
只有 Proto 契约和返回 UNIMPLEMENTED 的 handler,尚无可调用的 SDK 上游实现。
| 模块 |
已实现 SDK 方法 / gRPC RPC |
端点 |
依赖签名 |
| profile |
GetUserInfo / ListProfileThreads / EditProfile |
users/{uid}/info/、text_feed/{uid}/profile/、accounts/edit_profile/ |
否(edit_profile 为纯 form;主页帖子流已强类型化) |
| friendships |
GetFriendshipStatus |
friendships/show/{uid}/ |
否 |
| auth/login |
Login / GetCurrentUser(含 edit=true) |
CAA/Bloks 登录链 / accounts/current_user/ |
登录需要 signed_body + 密码 RSA 加密 + 默认硬件 attestation 门禁 |
| feed |
ListRecommendedUsers |
text_feed/recommended_users/ |
否 |
| replies |
ListProfileReplies |
text_feed/{uid}/profile/replies/ |
否 |
| search |
KeywordSearch / ValidateTag |
fbsearch/text_app/keyword/search/、text_feed/tags_validate/ |
否 |
| posts |
CheckOffensiveText / CreateTextPost / UploadImage / CreateImagePost / DeletePost |
warning/...、media/configure_text_only_post/、rupload_igphoto/、media/configure_text_post_app_feed/、media/{id}/delete/ |
configure 是;rupload 为原始二进制 |
| insights |
GetAccountInsights(仅 gRPC 契约,UNIMPLEMENTED) |
GraphQL |
— |
| mentions |
GetMentionSuggestions(仅 gRPC 契约,UNIMPLEMENTED) |
GraphQL |
— |
响应结构未文档化的列表端点(feed/replies/search)暂以 RawList(raw_json + next_cursor)透传。
profile-threads 已按动态抓包的 threads[].thread_items[].post 升级为强类型,并保留 raw_json 兼容旧客户端。
图例
| 状态 |
含义 |
实现要求 |
| ✅ 已抓包 |
报告标「已确认」,抓包命中 |
可直接实现,无需 TODO |
| ⚠️ 高概率 |
JADX 字面量,未抓包核对 |
实现 + TODO(抓包核对): 置信度=高概率 |
| ❓ 推测 |
仅 path/调用链/加密常量推断 |
实现 + TODO(抓包核对): 置信度=推测,优先补抓包 |
| ⛔ 缺源 |
报告未覆盖,业务需要 |
禁止臆造 path,TODO(缺源): 需 Frida hook/抓包补 |
0. 基建(transport 层)
| 项 |
状态 |
备注 |
Host:i.instagram.com/api/v1/、/graphql/query、/graphql_www |
✅ 已抓包 |
|
头:Authorization: Bearer IGT:2:... |
✅ 已抓包 |
gRPC 业务调用由外部注入;Go SDK 登录成功后也会生成并持久化同类 session |
请求级出口:x-threads-proxy-url gRPC metadata |
✅ 已实现,待真实代理验收 |
每请求独立 HTTP client/连接池;支持 HTTP(S)/SOCKS5;代理认证信息必须脱敏 |
头:X-Ig-App-Id: 3419628305025917 |
✅ 已抓包 |
|
头:User-Agent: Barcelona 421.0.0.50.67 ... |
✅ 已抓包 |
|
头:X-Fb-Friendly-Name |
✅ 已抓包 |
|
signed_body 签名算法 |
✅ 已确认 |
本版本无 HMAC:signed_body=SIGNATURE.<json> 即线上格式,服务端不校验签名段。见 signed-body-421.md。嵌套对象须内联 JSON(transport.Body.SetRaw),非转义字符串 |
1. auth 模块
| 端点 |
协议 |
状态 |
备注 |
token 外部注入(持有 IGT:2) |
— |
✅ 策略已定 |
当前 gRPC 业务 RPC 的认证入口;与 Go SDK 登录流程并存 |
accounts/current_user/(?edit=true) |
REST |
✅ 已抓包 |
编辑资料页读取,字段更全(bio_links/封面图/is_private);见 apis/accounts/编辑主页.md |
| CAA/Bloks 登录状态机(Go SDK + gRPC) |
REST/Bloks |
⚠️ gRPC 已实现,真实验收待执行 |
AuthService.Login 默认要求硬件 signer;无证明软件路径必须显式授权,返回结果永不把即时 whoami 等价为长期稳定 |
2. profile 模块
| 端点 |
协议 |
状态 |
备注 |
users/{user_id}/info/ |
REST |
✅ 已抓包 |
Friendly-Name user_info_by_id |
text_feed/{user_id}/profile/ |
REST |
✅ 已抓包 |
主页帖列表 |
text_feed/{user_id}/profile/media/ |
REST |
✅ 已抓包 |
|
accounts/edit_profile/ |
REST |
✅ 已抓包 |
纯 form,不走 signed_body;整表回传;已支持 username/显示名/简介/隐私/链接及标题;头像、封面为独立缺源端点,location 不是该端点字段 |
accounts/set_biography/ |
REST |
⚠️ 高概率 |
|
accounts/change_profile_picture/(头像/封面) |
REST |
⛔ 缺源 |
待抓包 |
GQL xdt_text_app_edit_display_name / create_or_update_user_bio_link |
GQL |
⚠️ 高概率 |
|
GQL ProfileCompletionPercentage |
GQL |
✅ 抓包出现 |
|
users/search/、check_username/、blocked_list/ |
REST |
⚠️ 高概率 |
|
3. posts 模块(发帖 / 媒体)
| 端点 |
协议 |
状态 |
备注 |
media/configure_text_only_post/ |
REST |
✅ 已抓包 |
纯文字贴主路径 |
/rupload_igphoto/{name} |
REST |
✅ 已抓包 |
原始图片二进制上传,返回 upload_id |
media/configure_text_post_app_feed/ |
REST |
✅ 已抓包 |
单图帖,关联 rupload 的 upload_id |
/rupload_igvideo/{name} |
REST |
⛔ 缺源 |
视频上传待抓包,禁止臆造参数 |
media/configure_text_post_app_sidecar/ |
REST |
⚠️ 高概率 |
轮播 |
media/upload_finish/ |
REST |
⚠️ 高概率 |
上传收尾 |
warning/check_offensive_multi_text/ |
REST |
✅ 请求已抓包,响应不可用 |
请求字段与真实 App 一致;真实 App 抓包及 2026-07-24 线上回归均返回 HTTP 404,gRPC 按真实错误路径验收 |
warning/check_offensive_text/ |
REST |
⚠️ 高概率 |
单条 |
发帖 body 完整字段(caption/text_post_app_info/publish_mode/audience…) |
— |
❓ 推测 |
在 pending 序列化层,静态缺口;字段级样例见 post-text-api-421.md |
4. replies 模块
| 端点 |
协议 |
状态 |
备注 |
text_feed/{user_id}/profile/replies/ |
REST |
✅ 已抓包 |
回复 tab |
GQL xdt_text_app_approve_reply / ignore_reply / bulk_*_pending_replies |
GQL |
⚠️ 高概率 |
|
text_feed/is_private_replies_user_minor/ |
REST |
⚠️ 高概率 |
|
5. insights 模块
| 端点 |
协议 |
状态 |
备注 |
GQL TextAppAccountInsightsQuery |
GQL |
✅ 抓包出现 |
账号洞察 |
GQL profile_completion_percentage |
GQL |
✅ 抓包出现 |
|
6. search 模块
| 端点 |
协议 |
状态 |
备注 |
fbsearch/text_app/keyword/search/ |
REST |
⚠️ 高概率 |
关键词搜索 |
fbsearch/ig_typeahead/、keyword_typeahead/、typeahead_stream/ |
REST |
⚠️ 高概率 |
参数见报告 §9.2 |
text_feed/tags_validate/ |
REST |
✅ 已抓包 |
发帖选主题前置校验,响应 is_valid/is_sensitive |
text_feed/tags_search/ |
REST |
⚠️ 高概率 |
|
GQL xdt_text_app_keyword_search_results |
GQL |
⚠️ 高概率 |
|
GQL TagTypeaheadNullState |
GQL |
✅ 抓包出现 |
|
7. mentions 模块
| 端点 |
协议 |
状态 |
备注 |
GQL xdt_text_app_mention_suggestions |
GQL |
❓ 推测 |
仅字段名 |
BcnMentionNullStateApi 对应端点 |
GQL |
❓ 推测 |
|
8. feed 模块(时间线 / 推荐流)
| 端点 |
协议 |
状态 |
备注 |
feed/text_post_app_timeline/ |
REST |
✅ 已抓包 |
Threads 主时间线;参数多为加密/序列化,完整字段以抓包为准(报告 §1.2) |
text_feed/recommended_users/ |
REST |
✅ 路径已抓包 |
参数 ⚠️ 高概率(报告 §5.1);响应 users[]/paging_token/has_more |
text_feed/accounts_recs/ |
REST |
⚠️ 高概率 |
账号推荐(报告 §5.2) |
feed/timeline/、timeline_stream/ |
REST |
⚠️ 高概率 |
IG 共用残留 |
9. friendships 模块(关系 / 关注)
| 端点 |
协议 |
状态 |
备注 |
friendships/show/{user_id}/ |
REST |
✅ 已抓包 |
关系状态,响应字段全(报告 §6.2) |
friendships/following/ |
REST |
⚠️ 高概率 |
query?/max_id? |
friendships/show_many/ |
REST |
⚠️ 高概率 |
批量关系 |
friendships/create_many/async/ |
REST |
⚠️ 高概率 |
异步批量关注 |
friendships/followers_you_follow_back/ |
REST |
⚠️ 高概率 |
|
friendships/pending_follow_requests_count/ |
REST |
⚠️ 高概率 |
|
friendships/mute_* / unmute_* |
REST |
⚠️ 高概率 |
|
text_feed/follow_many/ / follow_many_blocking/ |
REST |
⚠️ 高概率 |
参数见报告 §6.2 |
text_feed/approve_all_follow_requests/ / remove_all_prefollows/ |
REST |
⚠️ 高概率 |
|
GQL xdt_text_app_unfollow_many_blocking |
GQL |
⚠️ 高概率 |
含加密键 |
friendships/create/ / destroy/(单个关注/取关) |
REST |
⛔ 缺源 |
报告未覆盖,疑在加密表;需 Frida hook/抓包补 |
附:暂不立模块的额外域(待评估)
| 域 |
代表端点 |
状态 |
notifications |
text_feed/text_app_notifications/ |
⚠️ 高概率 |
direct(私信) |
direct_v2/* |
⚠️/❓;DirectSendApi 实现折叠 |
GraphQL 明文字段全集约 122 条见 api-paths-extract.json,未逐条列入本表;实现到相关功能时按需补。