苹果设备获取device token教程 帮助非三级号(不包括俺 已经三级了😁)实现refresh token自由

什么是Device Token?
在苹果的开发者文档中,Device Token 是通过 DCDevice 类的 generateToken 方法生成的。这个方法为设备创建一个临时的、匿名的标识符,常用于验证设备的完整性和身份。该 Token 主要用于与服务器交互时,帮助服务器验证发起请求的设备是否为合法设备,从而增加应用的安全性。生成 Token 的过程不会泄露用户的个人信息,确保了用户隐私的保护。
经过不严谨的研究,Device Token的生成是与开发者账号绑定的,也就是说,非openai开发者生成的账号是无法用在openai的认证服务中的。所以自己开发程序是无法获得openai需要的Device token的,必须通过抓包程序获取。

为什么需要Device Token?
因为Device Token可以获取 preauth_cookie,有了这个就可以获取到对应账号的refresh token,实现refresh token自由!

本教程将利用mitmproxy中间人攻击工具帮助你获取Device token

你需要:
1.一台苹果设备(以及可以在Apple Store下载ChatGPT的Apple ID)
2.一台计算机可以用来充当中间人代理苹果设备的流量
3.一台可以在苹果设备上登录的OpenAI账号

操作步骤:

1.在你的计算机上安装mitmproxy

Windows安装

pip install mitmproxy

Mac安装

brew install mitmproxy 或者 pip install mitmproxy

PS:其他系统可以自己尝试找一下安装方法

2. 命令行启动服务

mitmweb

默认监听端口为8080端口, 可以加 -p 参数指定监听端口
注意,使用mitmproxy时,苹果设备的梯子会失效,需要走本地(计算机端)代理
像这样(假设你的代理是 http://127.0.0.1:7890):

mitmweb --mode upstream:http://127.0.0.1:7890

3. 苹果设备设置代理
打开设置-无线局域网-点击你的WIFI(需要链接在计算机的同一个网络下)-配置代理-代理选择手动
设置服务器主机名(就是自己电脑本机IP地址)和端口(默认8080)

主机名获取方法:
windows电脑通过 ipconfig 查看,mac 电脑通过 ifconfig 查看(IPv4那一个)

4. 苹果设备安装证书
手机浏览器输入http://mitm.it,点击这个获取描述文件并安装


然后,在通用-关于本机-证书信任设置:信任该证书

5. 苹果设备下载或者重装ChatGPT应用

在App Store下载或者重装ChatGPT应用,并随便登录一个OpenAI账号

6.在mitmweb获取你的Device token
在Search栏搜索https://ios.chat.openai.com/backend-api/preauth_devicecheck
里面有一条很长的device_token记录,复制它就可以正常使用了:smile:

恭喜:tada:,你已经成功获取了OpenAI颁发给你苹果设备的专属device token了,你可以拿它去获取refresh token了:tada::tada::tada::tada::tada:

那么接下来,可以参考论坛中这一篇文章,继续获取refresh token:https://linux.do/t/topic/42253

不是三级号也可以实现refresh token自由啦(bushi​:tada::tada::tada:
如果您觉得有用,请给我这个快要升二级升三级的新手号一个赞吧:+1:
阿里嘎多3Q斯密达~

291 Likes

常规话题软件分享

所以这个device token是离线生成的还是联网拿到的?
离线的应该可以逆
联网的应该可以爬

5 Likes

马克

1 Like

会有封设备可能:persevere:

3 Likes

是离线生成的,但是呢,苹果的这个设计就是,不同的证书(不同开发者打包的程序)是不能共享认证的。也就是说,只有ChatGPT这个程序生成的device token才能被OpenAI认证,而如果我自己开发的程序生成的device token只能我自己认证,OpenAI认证的结果就是失败的。必须要有对应的开发者证书才能被苹果服务器认证,这也就从根本上取消了自己开发app生成token给oai认证的可能性,只能抓包。ChatGPT这个程序应该只会在首次打开时生成一个token,后面就不会再生成了(除非失效)。

2 Likes

申请量小的话不容易封号的啦,你别大量申请就行,大不了可以试一下老的不用的设备,也可以的:joy:

2 Likes

mark了

1 Like

原来这样,学习了:+1:

如果自己自用,也不获取device token,就在手机用用ChatGPT的app,会被openai封这个设备吗

1 Like

不会啊,因为你devicetoken获取preauth在获取rt的过程本来就是有的,只是只限一个账号,这样获取了你就可以给其他账号用了,自己获得at也方便

3 Likes

不明觉厉

1 Like

明白了:+1:谢谢佬!

1 Like

太强了

2 Likes

正好想知道这个怎么来了

1 Like

希望能对您有帮助:rose:

2 Likes

佬,这里必须得登录成功吗?我用谷歌授权没登录成功,发现请求的数据,device_token每次都不一样,我点了好多次
已解决,是代理问题,涉及的知识盲区有点多,感谢,去搞下一步了

4 Likes

我没试过哎,理论上来说是可以的,你请求获取一下rt试试?

1 Like

解决了,成功获取device token,感谢:pray:

1 Like

成功获取,非常感谢

3 Likes

借帖子问一下现在还有什么好项目可以用rt吗,rt已经自由了

1 Like