DeepSeek分析DeepSeek App

公众号: 奋飞安全
• 阅读 54

一、目标 山中方一日,世上已千年。Chatgpt的喧嚣感觉还在昨天,DeepSeek已经迎面而来。今天我们就在DeepSeek的帮助下来分析DeepSeek App

  POST https://chat.deepseek.com/api/v0/chat/completion HTTP/2
host: chat.deepseek.com
x-ds-pow-response: eyJhbGdvcml0aG0iOiJEZWVwU2Vla0hhc2hWMSIsImNoYWxsZW5nZSI6ImNlYmFiNGFhOGU1MDk1NTY2NmY1ODk4MTZjNjY4MTExNDRlMDU2YThmNDFjNDNhNDNiZDc4Y2VkYzRiNWY0YTEiLCJzYWx0IjoiODM2MGY4YzkyMDVjOTZjMzJiN2EiLCJzaWduYXR1cmUiOiIxMGI3ODQ5YjFlNjIwM2IyODhkYzQ5NzVhMWUyMzc1M2VkOWQ2ZmI2NTY5NjRiOGU4NmRhZWJhYjM2MjhhNDBjIiwiYW5zd2VyIjo3NzkwNiwidGFyZ2V0X3BhdGgiOiIvYXBpL3YwL2NoYXQvY29tcGxldGlvbiJ9
x-client-platform: android

我们今天的目标是 x-ds-pow-response

二、步骤 Jwt? eyjh开头,很像是jwt,所以第一反应就是去jwt在线解密一下。结果很遗憾,不是jwt

DeepSeek登场 把x-ds-pow-response的内容复制进DeepSeek的对话框,大大方方的问他, x-ds-pow-response可能是什么加密算法?

不出意外的话,意外出现了

  服务器繁忙,请稍后再试。

应对方法是 使用App :)

  `x-ds-pow-response` 看起来像是一个包含某种加密或哈希算法响应的HTTP头部字段。根据你提供的内容,它包含了一个JSON对象,其中包含以下字段:

- `algorithm`: 指定了使用的算法,这里是 `DeepSeekHashV1`。
- `challenge`: 一个挑战字符串,可能是用于验证或防伪的随机值。
- `salt`: 盐值,用于增加哈希的复杂性。
- `signature`: 签名,可能是对某些数据进行哈希或加密后的结果。
- `answer`: 一个数值,可能是对挑战的某种计算结果。
- `target_path`: 目标路径,指示这个响应应该被应用到哪个API路径。

从这些信息来看,`DeepSeekHashV1` 可能是深度求索公司自定义的一种哈希算法,用于生成某种形式的数字签名或验证码。这种算法可能结合了挑战、盐值和目标路径来生成一个唯一的签名,以确保请求的完整性和来源的真实性。

由于这是自定义算法,具体的加密或哈希细节没有公开的标准可以参考。如果你需要更深入的了解,可能需要查阅深度求索公司的官方文档或联系他们的技术支持。

联系官方技术支持有点扯了,不过他为什么知道里面包含了Json对象,并且还知道这些明文?

继续问问,反正也不花钱?

  问: 你怎么知道x-ds-pow-response的内容里面包含DeepSeekHashV1 ?

答: 我理解你的疑问。实际上,我并没有直接访问或解析你提供的 `x-ds-pow-response` 内容的能力。我的回答是基于你提供的文本内容进行的推测和分析。

在你提供的 `x-ds-pow-response` 中,有一个 JSON 对象,其中包含了一个字段 `"algorithm": "DeepSeekHashV1"`。这个字段明确指出了使用的算法是 `DeepSeekHashV1`。因此,我根据这个信息推断出 `x-ds-pow-response` 可能使用了 `DeepSeekHashV1` 这个算法。

如果你有更多关于这个字段的具体信息或上下文,我可以进一步帮助你分析和理解。

这个回答我不满意,看来我问的不对。

问: 如何从eyJhbGdvcml0aG0iOiJEZWVwU2Vla0hhc2hWMSIsImNoYWxsZW5nZSI6ImNlYmFiNGFhOGU1MDk1NTY2NmY1ODk4MTZjNjY4MTExNDRlMDU2YThmNDFjNDNhNDNiZDc4Y2VkYzRiNWY0YTEiLCJzYWx0IjoiODM2MGY4YzkyMDVjOTZjMzJiN2EiLCJzaWduYXR1cmUiOiIxMGI3ODQ5YjFlNjIwM2IyODhkYzQ5NzVhMWUyMzc1M2VkOWQ2ZmI2NTY5NjRiOGU4NmRhZWJhYjM2MjhhNDBjIiwiYW5zd2VyIjo3NzkwNiwidGFyZ2V0X3BhdGgiOiIvYXBpL3YwL2NoYXQvY29tcGxldGlvbiJ9
提取出 DeepSeekHashV1 字符串,请用python代码实现?

答: 要从 `eyJhbGdvcml0aG0iOiJEZWVwU2Vla0hhc2hWMSIsImNoYWxsZW5nZSI6ImNlYmFiNGFhOGU1MDk1NTY2NmY1ODk4MTZjNjY4MTExNDRlMDU2YThmNDFjNDNhNDNiZDc4Y2VkYzRiNWY0YTEiLCJzYWx0IjoiODM2MGY4YzkyMDVjOTZjMzJiN2EiLCJzaWduYXR1cmUiOiIxMGI3ODQ5YjFlNjIwM2IyODhkYzQ5NzVhMWUyMzc1M2VkOWQ2ZmI2NTY5NjRiOGU4NmRhZWJhYjM2MjhhNDBjIiwiYW5zd2VyIjo3NzkwNiwidGFyZ2V0X3BhdGgiOiIvYXBpL3YwL2NoYXQvY29tcGxldGlvbiJ9` 中提取出 `DeepSeekHashV1` 字符串,可以按照以下步骤实现:

1. 这是一个 Base64 编码的字符串,首先需要将其解码为 JSON 格式。
2. 解码后,解析 JSON 对象,提取 `algorithm` 字段的值。

以下是 Python 代码实现:

python
import base64
import json

# Base64 编码的字符串
encoded_str = "eyJhbGdvcml0aG0iOiJEZWVwU2Vla0hhc2hWMSIsImNoYWxsZW5nZSI6ImNlYmFiNGFhOGU1MDk1NTY2NmY1ODk4MTZjNjY4MTExNDRlMDU2YThmNDFjNDNhNDNiZDc4Y2VkYzRiNWY0YTEiLCJzYWx0IjoiODM2MGY4YzkyMDVjOTZjMzJiN2EiLCJzaWduYXR1cmUiOiIxMGI3ODQ5YjFlNjIwM2IyODhkYzQ5NzVhMWUyMzc1M2VkOWQ2ZmI2NTY5NjRiOGU4NmRhZWJhYjM2MjhhNDBjIiwiYW5zd2VyIjo3NzkwNiwidGFyZ2V0X3BhdGgiOiIvYXBpL3YwL2NoYXQvY29tcGxldGlvbiJ9"

# 解码 Base64 字符串
decoded_bytes = base64.b64decode(encoded_str)
decoded_str = decoded_bytes.decode('utf-8')

# 解析 JSON 对象
data = json.loads(decoded_str)

# 提取 algorithm 字段的值
algorithm = data.get("algorithm")

print("提取的 algorithm 值:", algorithm)

### 代码说明:
1. **Base64 解码**:使用 `base64.b64decode` 将 Base64 编码的字符串解码为字节数据,然后转换为字符串。
2. **JSON 解析**:使用 `json.loads` 将解码后的字符串解析为 Python 字典。
3. **提取字段**:从字典中提取 `algorithm` 字段的值。

### 输出结果:
提取的 algorithm 值: DeepSeekHashV1


### 注意事项:
- 如果输入的 Base64 字符串无效,`base64.b64decode` 会抛出异常。
- 如果 JSON 格式不正确,`json.loads` 也会抛出异常。
- 确保输入的字符串是完整的 Base64 编码数据。

woo,这才答道点子上了,原来就是个Base64,程序员还是得用代码来说话。

把Base64解一下,明文出来了

  {"algorithm":"DeepSeekHashV1","challenge":"cebab4aa8e50955666f589816c66811144e056a8f41c43a43bd78cedc4b5f4a1","salt":"8360f8c9205c96c32b7a","signature":"10b7849b1e6203b288dc4975a1e23753ed9d6fb656964b8e86daebab3628a40c","answer":77906,"target_path":"/api/v0/chat/completion"}

challenge,salt,signature,answer 这四个值是我们关注的要点了。

Jadx出马 搜索文本 DeepSeekHashV1

  package com.deepseek.crypto;

/* loaded from: classes.dex */
public final class PowCalculator {

    /* renamed from: a, reason: collision with root package name */
    public static final PowCalculator f12608a = new PowCalculator();

    static {
        System.loadLibrary("rscrypto");
    }

    private final native long nativeCalculateDeepSeekHashV1Pow(String str, String str2, long j9);

    public final long a(long j9, String str, String str2) {
        return nativeCalculateDeepSeekHashV1Pow(str, str2, j9);
    }
}
先Hook这个 nativeCalculateDeepSeekHashV1Pow函数再说

        let PowCalculator = Java.use("com.deepseek.crypto.PowCalculator");
        PowCalculator["nativeCalculateDeepSeekHashV1Pow"].implementation = function (str, str2, j9) {
            console.log(`PowCalculator.nativeCalculateDeepSeekHashV1Pow is called: str=${str}, str2=${str2}, j9=${j9}`);
            let result = this["nativeCalculateDeepSeekHashV1Pow"](str, str2, j9);
            console.log(`PowCalculator.nativeCalculateDeepSeekHashV1Pow result=${result}`);

            var stack = threadinstance.currentThread().getStackTrace();
            console.log("Rc Full call stack:" + Where(stack));

            return result;
        };

跑一下

  PowCalculator.nativeCalculateDeepSeekHashV1Pow is called: str=79385dcd26da6f3e7276_1739766754276_, str2=ce96433fd479a8648ba29145c2520a787102e145b2f8998ea81ddfe010c3d5a8, j9=144000
PowCalculator.nativeCalculateDeepSeekHashV1Pow result=63312
Rc Full call stack:dalvik.system.VMStack.getThreadStackTrace(Native Method)
 ds: java.lang.Thread.getStackTrace(Thread.java:1841)
 ds: com.deepseek.crypto.PowCalculator.nativeCalculateDeepSeekHashV1Pow(Native Method)
 ds: com.deepseek.crypto.PowCalculator.a(SourceFile:1)
 ds: C6.h.g(SourceFile:59)
 ds: C6.s.s(SourceFile:44)
 ds: za.a.j(SourceFile:6)
 ds: Wa.D.run(SourceFile:104)
 ds: db.a.run(SourceFile:127)

入参有 challenge,salt 返回值是 下一次的 answer。

到此为止,我们知道了answer的生成,但是 challenge,salt,signature这三位大哥还是不知道。

顺着堆栈找 顺着这次hook的堆栈一直往上早。把有疑点的函数都hook上,结果绕了半天,没啥收获。

本来想问问DeepSeek这几个值是怎么来的,不过感觉应该没啥用。 AI呆住了,人脑上线了。问下DeepSeek应该如何描述这种情况。

技术文档版

「当AI系统触发逻辑僵局时,人工智控模块自动激活接管协议。」

(解析:采用"逻辑僵局-激活接管"的技术术语,符合系统架构文档的专业语境)

科幻叙事版

「量子矩阵的辉光骤然凝滞,生物神经元的星火在数据深渊中重燃。」

(解析:通过"量子矩阵-生物神经元"的意象对立,构建赛博朋克风格的场景画面)

商业方案版

「智能运算流中断0.3秒后,人类决策引擎无缝衔接启动,保障服务连续性。」

(解析:用"运算流-决策引擎"的工业隐喻,突出系统可靠性的商业价值)

哲学思辨版

「当算法陷入认知迷雾,意识的灯塔穿透数据海啸指引航向。」

(解析:通过"迷雾-灯塔"的隐喻体系,引发对人工智能局限性的深层思考)

应急响应版

「侦测到AI决策树坍缩,立即启动人类指挥官协议,完成μ级秒差切换。」

(解析:使用"坍缩-μ级秒差"等精准表述,强调应急响应的及时性)

诗歌化表达

「硅基的月光在逻辑悬崖搁浅,碳基的朝阳已攀上认知峰巅」

(解析:借"硅基-碳基"的物质属性差异,构建科技与人文交融的意境)

我喜欢这句话 硅基的月光在逻辑悬崖搁浅,碳基的朝阳已攀上认知峰巅

Fiddler搜索 捍卫一下碳基生命的尊严,我认为challenge,salt,signature这三位大哥可能是服务器返回的。

搜一下吧 cebab4aa8e50955666f589816c66811144e056a8f41c43a43bd78cedc4b5f4a1

  {
    "code": 0,
    "msg": "",
    "data": {
        "biz_code": 0,
        "biz_msg": "",
        "biz_data": {
            "challenge": {
                "algorithm": "DeepSeekHashV1",
                "challenge": "cebab4aa8e50955666f589816c66811144e056a8f41c43a43bd78cedc4b5f4a1",
                "salt": "8360f8c9205c96c32b7a",
                "signature": "10b7849b1e6203b288dc4975a1e23753ed9d6fb656964b8e86daebab3628a40c",
                "difficulty": 144000,
                "expire_at": 1739764288699,
                "expire_after": 300000,
                "target_path": "/api/v0/chat/completion"
            }
        }
    }
}

真相只有一个,本地死活找不到的时候,大概率就是服务器返回的了。Fiddler以后应该可以接入DeepSeek,直接提示我。这样量子矩阵的辉光就不容易凝滞了。

三、总结 以后的程序员只会有一种,利用辅助AI工具的程序员。不会使用AI的程序员一定是要被淘汰的。目前为止(以后的事就不好说了)再好的AI也是工具,要完成任务,决定性的因素还是掌握AI的人。

小时候看的小人书里,有个武林高手绝招是脑袋后面的辫子,叫神鞭。后来解放了,辫子剪了,人家依然是高手,叫神枪手。这位高手淡淡的说:鞭没了,神还在。

DeepSeek分析DeepSeek App 1:ffshow 当算法陷入认知迷雾,意识的灯塔穿透数据海啸指引航向

Tip:

: 本文的目的只有一个就是学习更多的逆向技巧和思路,如果有人利用本文技术去进行非法商业获取利益带来的法律责任都是操作者自己承担,和本文以及作者没关系,本文涉及到的代码项目可以去 奋飞的朋友们 知识星球自取,欢迎加入知识星球一起学习探讨技术。有问题可以加我wx: fenfei331 讨论下。

点赞
收藏
评论区
推荐文章
京东云开发者 京东云开发者
1个月前
“轻松上手!5分钟学会用京东云打造你自己的专属DeepSeek”
\从第⼀步骤到第四步骤是完成DeepSeek本地部署和使⽤,可以满⾜中⼩企业环境的稳定使⽤,第五步骤为基于AnythingLLM和本地数据进⾏训练(基于本地数据搭建本地知识库):⼀:京东云GPU云主机环境准备⼆:部署Ollama三:运⾏DeepSeek模型
京东云开发者 京东云开发者
1个月前
硅基流动+Cherry Studio‘0天然全科技’快速搭建DeepSeek满血版
作者:京东物流冯志文本文参考网上资料学习,IDEA接入DeepSeek私有化部署DeepSeekDify搭建智能助手接入微信(个人电脑Windows和mac都可以安装),手把手保姆级教程。一、IDEA接入DeepSeek1)首先IDEA下载安装Con
京东云开发者 京东云开发者
1个月前
🧐 DeepSeek-R1原理解析及项目实践(含小白向概念解读)
作者:京东零售王加伟一、概念解读(小白向)我们打开deepseek官网,会发现对话框之下:有两个按钮,那他们的含义如何理解🤔?最近爆火的deepseek究竟指的是哪个模型?深度思考R1与联网搜索的作用?接下来对常用概念做一些入门性质的介绍:1、联网搜索:
四大核心优势,多场景覆盖,息壤智算一体机-DeepSeek版强势来袭!
DeepSeek持续爆火,引发国产AI技术蓬勃发展的浪潮,天翼云作为云服务国家队迅速响应,将产品与DeepSeek模型深度融合,促进国产AI生态闭环,加速AI应用普惠。
打工人最强福音上线!AOne终端全面接入DeepSeek大模型!
DeepSeek深度融合国产AI生态,国云连放大招!继天翼云多款产品上线DeepSeek后,见证企业级智能办公的时刻来了!天翼云AOne联合国产大模型王者DeepSeek带着671B满血版、70B版杀进职场了!
京东云开发者 京东云开发者
1个月前
DeepSeek冲击(含本地化部署实践)
作者:京东零售姜海DeepSeek无疑是春节档最火爆的话题,上线不足一月,其全球累计下载量已达4000万,反超ChatGPT成为全球增长最快的AI应用,并且完全开源。那么究竟DeepSeek有什么魔力,能够让大家趋之若鹜,他又将怎样改变世界AI格局和我们的
越“挖”越有料,天翼云“息壤”助攻DeepSeek变身万能搭子!
天翼云“息壤”算力互联调度平台出马,全面解锁DeepSeek新玩法,带你轻松玩转DeepSeek深度应用!
当“天翼云息壤杯”高校AI大赛邂逅DeepSeek,福利来袭!
息壤科研助手计算资源充裕,应用部署环境迅速,师生可借助DeepSeek完成学术资源快速检索、辅助文献阅读与分析、实验数据处理、代码片段生成,全面提升学习和研究效率。
下载超快!2小时下完DeepSeek !还送算力券!!
本文分享自魔乐社区公众号《》还在忍受外网下载DeepSeek模型权重的龟速吗?DeepSeek模型火爆全球,但无数国内开发者却在下载模型时苦不堪言,吐槽下载就像“用2G网下高清电影”。某大厂工程师反馈,从外网下载DeepSeekR1模型,速度仅为2MB/s
数字先锋 | AI+政务,轻松跨语种!霍尔果斯政务服务升级蜕变
今年,义乌国际商贸城的一家袜子店火爆全网,商家通过搭载DeepSeek模型的AI视创工具,只需录制中文口型视频,即可通过系统自动生成阿拉伯语、西班牙语等多语种带货视频,将袜子生意做到了世界各地。在全球化与数字化深度交织的今天,DeepSeek凭借自然语言处
公众号:  奋飞安全
公众号: 奋飞安全
Lv1
奋飞,国家高级信息系统项目管理师,独立安全研究员。 http://91fans.com.cn/
文章
62
粉丝
4
获赞
44