#chatgpt #server #http #tls #ios #preauth #device-token

app devicecheck

chatgpt preauth devicecheck server

2 stable releases

1.0.2 Dec 3, 2024

#1580 in Network programming

Download history 276/week @ 2024-12-02

276 downloads per month

MIT license

44KB
918 lines

devicecheck

这是一个适用于iOS/iPad设备的HTTP中间人代理,用于抓取device_token

前言

最新版的ChatGPT APP已上SSL pinning验证,使用前提:

以上只是推荐的方法,当然也有其它方法,目的是绕过SSL pinning

命令

$ devicecheck -h
chatgpt preauth devicecheck server

Usage: devicecheck
       devicecheck <COMMAND>

Commands:
  run      Run server
  start    Start server daemon
  restart  Restart server daemon
  stop     Stop server daemon
  log      Show the server daemon log
  ps       Show the server daemon process
  help     Print this message or the help of the given subcommand(s)

Options:
  -h, --help     Print help
  -V, --version  Print version

$ devicecheck run -h
Run server

Usage: devicecheck run [OPTIONS]

Options:
  -d, --debug          Debug mode
  -b, --bind <BIND>    Bind address [default: 0.0.0.0:1080]
  -p, --proxy <PROXY>  Upstream proxy
      --cert <CERT>    MITM server CA certificate file path [default: ca/cert.crt]
      --key <KEY>      MITM server CA private key file path [default: ca/key.pem]
  -h, --help           Print help

安装

  • 编译安装
# 需要先安装rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

cargo install --git https://github.com/penumbra-x/devicecheck

使用

该代理不会像正常代理一样提供网络代理,目的是抓包device_token。如果害怕使用多了会被封设备,我建议是使用一些一键换机之类的仿冒设备的软件。

  1. 启动服务
  • 运行服务
devicecheck run
# 带代理
devicecheck run --proxy http://192.168.1.1:1080
  • 守护进程
devicecheck start
# 带代理
devicecheck start --proxy http://192.168.1.1:1080
  1. 设置代理

Wi-Fi/Shadowrocket设置HTTP代理

  1. 信任证书

浏览器打开http://192.168.1.100:1080/mitm/cert,替换你的代理IP以及端口,打开下载安装以及信任证书。到这里就彻底完成了,由于HookChatGPT的网络请求,有以下两种抓取更新device_token的动作:

  • 每次打开和关闭APP都会抓取一次,
  • 打开APP任意点击登录会抓取一次,同理点击取消往复操作也生效。
  1. 获取preauth_cookie

请求接口http://192.168.1.100:1080/auth/preauth,替换你的代理IP以及端口,示例:

  • Request
curl http://127.0.0.1:1080/auth/preauth
  • Response
{
  "preauth_cookie": "900175BB-61C4-4AA2-B400-4DE3B2E1FD7E:1726892032-9nYJ1mU4JSUAEyhACbVOxYoCATD4uXX8H1HZRJzYQ4E%3D"
}

到这里项目的使命已经完成,你可以将preauth_cookie用在ios.chat.openai.com的接口或者登录。

注意

  • 自动化操作APP使用不需要太频繁,cookie大概会在一段时间内过期(具体不记得什么时间了,24小时?)
  • 建议不要把服务放到公网,内网使用Cloudflare Tunnel开放/auth/preauth接口

Dependencies

~28–43MB
~779K SLoC