news 2026/10/8 13:11:36

揭秘mimic gen:一个AI提示词如何把原始HTTP流量变成优雅Python客户端

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
揭秘mimic gen:一个AI提示词如何把原始HTTP流量变成优雅Python客户端

揭秘mimic gen:一个AI提示词如何把原始HTTP流量变成优雅Python客户端

【免费下载链接】mimicIntercept any app, then call it from Python like a library项目地址: https://gitcode.com/gh_mirrors/mimic32/mimic

mimic是一个让任意 App 都能被当作 Python 库调用的抓包工具:它用 mitmproxy 拦截你手机 App 的真实流量,再把这段原始 HTTP 请求交给 AI,由mimic gen命令一行生成一个可直接import的客户端文件。这篇文章带你拆开mimic gen的内部:一个精心设计的 AI 提示词(prompt)如何阅读真实流量,把零散的接口变成带命名方法、带参数、还能自动串联多步调用的优雅 Python 客户端。

mimic 三步流水线:捕获 → 提取 → 生成

mimic 的核心模型非常朴素,官方 README 用一行图就讲清楚了:

capture traffic -> extract auth -> generate client (mitmproxy) (mimic.Session) (AI reads the captured endpoints)
  1. 捕获流量:mimic record启动 mitmproxy,iPhone 按向导配置代理后正常刷 App,所有请求都会落到 mitmweb 的 JSON API 里。
  2. 提取认证:App 的每个请求都携带同一组稳定的身份头(Bearer token、设备 ID、Cookie)。extract.py 从你最新的真实请求中把这些头挑出来,之后重放的请求对服务器来说和真实客户端一模一样。
  3. 生成客户端:mimic gen <host>把捕获到的端点整理成一份"摘要",喂给 AI 生成客户端。这一步就是本文的主角。

不想要代码生成的话,也可以手写:session.py 中的Session支持from_mitm、from_curl、from_har三种方式构建会话,跳过 AI 直接用。

mimic gen 命令做了什么

在 cli.py 中,gen子命令的流程是:

  1. 从 mitmweb(或--har指定的 HAR 文件)拉取该主机的全部流量;
  2. 调用 endpoints() 按(method, path)去重,每个端点只保留最新一次捕获,连同请求体、响应体一起打包成端点列表;
  3. 把主机名 + 端点列表拼成提示词,通过claude或opencodeCLI 交给 AI;
  4. 把 AI 返回的源码(顺便剥掉它偶尔包的 ```python 围栏,见 codegen.py)写入<host前缀>_client.py。

响应体在进提示词前会先做两件贴心事(mitm.py):JSON 自动 pretty-print,让 AI 看到结构而不是噪音;超长内容截断到 4000 字符,避免把无关的大字段塞进上下文。

mimic record # 启动代理,打印 iPhone 配置步骤 mimic hosts # 列出捕获到的主机,挑出 API 主机 mimic learn prod-api.example.com # 先看看 mimic 看到了哪些端点 mimic gen prod-api.example.com # 生成 example_client.py

Web 端用户不用代理也行:浏览器 DevTools 里"Save all as HAR",然后mimic gen api.example.com --har traffic.har,HAR 的解析逻辑在 har.py。

核心看点:那个提示词的 7 条规则

mimic gen的精华不在调用 AI 的代码,而在 codegen.py 里写死的这段 PROMPT。它把"什么样的输出才算好"翻译成了 7 条硬规则:

#规则为什么重要
1只输出一个 Python 文件,不要散文和 markdown输出可直接落盘,无需二次清洗
2子类化mimic.App,绝不硬编码 token/头认证由基类自动从 mitmweb 拉取并刷新
3方法名按"它做什么"命名(like、send_message),而非原始路径这就是"优雅"二字的来源
4发现端点间 ID/令牌依赖时串联调用(如先取 viewToken 再消费)移动端 API 普遍多步,规则逼 AI 去读样例请求体找依赖
5每次调用都变的值(id、文本)→ 方法参数;对该用户恒定的值 → 默认值或实例状态参数化边界清晰,调用时才需要传"会变"的东西
6跳过纯埋点/分析/配置接口过滤噪音,客户端保持精简
7每个方法一行 docstring生成的代码可读、可维护

规则 4 是最有含金量的一条:它要求 AI"仔细读样例请求体,找出哪个字段的值来自另一个端点的返回值"。这正是把机械的接口列表升级为"懂业务流程"的客户端的关键——比如有个接口要传playerId,而playerId是登录接口的返回字段,AI 就会把取 ID 的逻辑写进方法内部或缓存到实例上。

端点列表则是用 build_digest() 渲染的,每个端点一个块:方法 + 路径 -> 状态码、query、请求体、响应体。流量再多,AI 看到的也是一份结构清晰的"端点说明书"。

生成的客户端为什么能"开箱即用"

生成的代码只是薄薄一层:它继承 App,实例化时自动调用Session.from_mitm(HOST),从 mitmweb 里捞出你的真实认证头。之后每个方法就是self.get(path)/self.post(path, json=body),返回解析好的 JSON。

更妙的是容错:request() 遇到 401 会自动重新从 mitmweb 拉取最新凭证并重试一次幂等请求(POST 需显式refresh=True)——token 轮换不再需要手动处理。所以生成的客户端用起来就像 README 开头那样简单:

from example_client import Example acc = Example() # 自动复用你捕获的会话 acc.get_recommendations() acc.like(subject_id, comment="hi lol")

生成的文件就是普通 Python,可以随意编辑——AI 只是第一稿。

不想等 AI?先看提示词再决定

mimic gen --prompt-only会打印完整提示词而不调用 AI,方便你检查喂给模型的内容。也可以--generator opencode换生成器、--model换模型、-o指定输出路径(cli.py)。没有装任何 AI CLI 也不影响捕获流程,装好后运行mimic doctor检查环境即可。

边界:哪些 App 抓不到

  • 证书固定(cert pinning):银行、Instagram 类 App 会拒绝 mitmproxy 证书,代理看不到流量。这挡的是"捕获"不是"重放",unpin 提供基于 Frida 的绕过,详见 docs/pinning.md。
  • DPoP 令牌:每个请求带私钥签名的新鲜证明,捕获的请求无法重放,目前没有干净解法,详见 docs/dpop.md。

经验法则:mimic hosts里能看到 App 的 API 主机,就说明这条路走得通。

总结:提示词是产品,不是胶水

mimic gen给人的启发在于:AI 代码生成器的质量上限,由提示词里的约束决定。mimic 没有教 AI"写个客户端",而是把"不硬编码凭证、方法按意图命名、自动串联多步依赖、参数化易变值"这些领域经验写成了规则清单,再把干净的端点摘要喂进去。捕获负责"真实",提示词负责"优雅",二者结合才得到了那个一行import就能刷 App 的 Python 客户端。

项目使用 MIT 许可(LICENSE),安装只需sh install.sh(install.sh)。最后提醒一句官方伦理声明:请只用于自己的账号和数据,并遵守各 App 的服务条款。

【免费下载链接】mimicIntercept any app, then call it from Python like a library项目地址: https://gitcode.com/gh_mirrors/mimic32/mimic

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/8 13:10:50

2024-2025企业Agent发展趋势:大模型能否进入生产系统持续完成任务?

企业对Agent的讨论已从“能否调用工具完成多步任务”转向“能否进入生产系统持续、可靠、可审计地完成真实工作”。互联网与制造业的Agent路径不同&#xff1a;互联网Agent通过LLM到Agent到API/数据库到数字业务执行&#xff1b;制造业Agent则通过LLM到Industrial Agent到MES/S…

作者头像 李华
网站建设 2026/10/8 13:10:00

SSH 常见用法(一):远程登录服务器

SSH 常见用法&#xff08;一&#xff09;&#xff1a;远程登录服务器 系列导读 本系列共包含一篇总览和四篇专题文章&#xff1a;系列位置文章主题主要内容总览浅谈 SSH认识 SSH 及其四种常见用法第一篇&#xff08;本文&#xff09;SSH 常见用法&#xff08;一&#xff09;&am…

作者头像 李华
网站建设 2026/10/8 13:09:27

虚拟机备份怎么做:镜像级与文件级搭配的完整实操方案

一、先分清两个层次&#xff1a;90% 的误区出在这里 虚拟化环境下的备份常被误解为单一动作&#xff0c;实际上它包含两个截然不同的层次&#xff0c;各自解决不同的问题&#xff1a;镜像级备份&#xff08;Image-Level&#xff09;文件级备份&#xff08;File-Level&#xff0…

作者头像 李华
网站建设 2026/10/8 13:09:25

安卓手机Termux部署DVWA靶场|Web安全入门

声明&#xff1a;本文搭建的DVWA仅用于个人安全学习&#xff0c;仅限本机/内网环境测试&#xff0c;禁止用于未授权的网站渗透、攻击行为&#xff0c;一切违规操作后果自行承担。 一、前言 DVWA&#xff08;Damn Vulnerable Web Application&#xff09;是Web安全入门必刷的漏…

作者头像 李华
网站建设 2026/10/8 13:09:23

BootCamp 6.1.6851驱动详解:2017款MacBook Pro Win10硬件兼容方案

简介&#xff1a;本资源是专为2017款15英寸MacBook Pro用户定制的Windows 10系统驱动合集&#xff0c;解决在Boot Camp环境下安装或重装Win10时常见的硬件识别异常、外设失灵、显卡/声卡/触控板功能缺失等核心兼容性问题。压缩包共1241个文件&#xff0c;涵盖驱动核心组件&…

作者头像 李华
网站建设 2026/10/8 13:08:36

论文写到一半卡壳了?青年教师力荐这几个AI论文网站

写论文总在某个环节卡壳&#xff1f;选题难、思路乱、文献找不全、格式又复杂&#xff0c;很多青年教师都经历过这些困扰。其实&#xff0c;关键在于用对 AI 工具、走对写作流程——不少资深教授已经开始推荐高效工具来提升写作效率。比如千笔AI&#xff0c;作为中文全流程首选…

作者头像 李华