背景动机
某社交应用的AI助手近期更新后,我一直对其对话逻辑的提示词机制充满好奇。趁着版本更新的机会,决定通过逆向工程探究其底层实现逻辑,特别是系统提示词(prompt)的生成机制。
技术尝试路径
一、网络抓包分析
1. Windows + Fiddler + Android 组合
环境搭建
通过Fiddler设置8888端口进行局域网监听,将安卓设备代理指向本机IP,成功完成HTTPS证书安装(需在系统设置-加密与凭证中手动安装CA证书)发现异常
浏览器可正常抓包,但目标App始终提示网络连接异常,初步推测存在SSL Pinning等证书锁定机制
2. macOS + Wireshark + iOS 组合
方案转换
为简化操作改用Mac设备运行iOS版App,尝试通过Wireshark进行流量监控技术瓶颈
HTTPS流量解密未果,常规SSLKEYLOGFILE配置方案未能生效,抓包结果均为加密数据
二、逆向工程突破
1. APK反编译
工具选择
使用jadx反编译工具进行逆向分析关键发现
- 对话开场白基于用户标签动态生成
- 上下文应答机制深度依赖聊天记录
- 核心提示词未固化在客户端代码中
2. 框架解析
- 混合架构
发现ReactNative组件痕迹,通过修改.bundle文件后缀为.js可查看前端逻辑代码
三、对话注入尝试
直接注入
在对话框输入特殊指令尝试破解提示词模板防御机制
后端存在严格的输入校验系统,在生成最终回复前会对异常内容进行过滤
经验总结
本次逆向工程虽未能完全破解提示词模板,但梳理出若干关键技术特征:
- 系统采用服务端动态生成模式,避免提示词本地暴露
- 客户端部署双重防御机制(SSL Pinning+输入过滤)
- 技术架构呈现混合开发特征(Native+ReactNative)
未来可考虑通过Hook框架绕过SSL证书锁定,或针对ReactNative bundle文件进行深度逆向分析,或许能发现新的突破口。