容器密码:e10adc3949ba59abbe56e057f20f883e
陈志鹏debian检材
这个题的镜像本身就存在很大的问题,出题人坏的很,把镜像的一些系统目录删掉了,导致不能仿真。
这里搞了好久没搞出来,只能求救同事大佬的帮助,最后也是可以成功做题了
这个E01镜像是损坏的,所以得先转成dd镜像,然后修改一下MBR的引导签名头55AA,我这里直接用ai写针对这个镜像搞的工具来完成了

修复成功

接下来就可以挂载镜像了

接下来我觉得直接让ai做题比较快,在这么多文件中一直翻,太耗时费力
ai做题的话这里后续会出一个教程
先介绍一下主要翻的文件夹
| 路径 | 说明 |
|---|---|
/home/www/easycallcenter365/ | Java Spring Boot AI 外呼系统 |
/home/www/demo/ | Python FastAPI Demo 项目 |
/var/www/html/ | PHP 通讯录管理系统 |
/var/lib/mysql/easycallcenter365/ | MySQL 数据库文件 |
1. 分析陈志鹏 debian 检材:安卓外呼应用传参与服务端参数接收方式不匹配,返回什么状态码?
422
在demo/api/main.py 中 POST /api/calls 端点定义:

str,FastAPI 默认将其解析为 查询参数/表单参数。demo/README.md 中的测试示例:

客户端以 JSON body 提交数据。
FastAPI 基于 Pydantic 模型进行参数验证。当端点函数使用简单类型参数(如
str、int)且未标注Body()或Form()时,FastAPI 默认将其解析为 query parameter(URL 查询参数)。如果客户端以 JSON Body 提交这些参数,FastAPI 在路由匹配成功后执行参数验证阶段,发现 query parameter 缺失,便会返回 HTTP 422 Unprocessable Entity
2. 分析陈志鹏 debian 检材:服务器返回结果提取通话编号时使用的分割终止符号是什么?
!
在 CommonUtils.java 第 179 行看到

服务器返回结果中使用 !(感叹号)作为分割终止符号来提取通话编号。在拼接 TTS 文件路径等服务器返回结果时,使用 ! 作为字段之间的分隔符。
3. 分析陈志鹏debian检材,DES加密算法从口令前多少位取初始向量?
8
在DESUtil.java文件中看到

DES使用 64 位(8 字节) 的分组大小进行加密。在 CBC模式下,初始向量的长度必须等于分组大小,即 8 字节。
CBC 模式的工作原理:
- 第一个明文块与 IV 进行异或后再加密
- 后续每个明文块与前一个密文块异或后再加密
- IV 的作用是确保相同的明文在不同加密实例中产生不同的密文
因此,IV 必须恰好 8 字节,代码从口令的字节数组前 8 字节取得 IV。
4. 分析陈志鹏debian检材,DES加密测试数据的前10个字符是什么?
fenjimima,
在上一题那个文件中可以看到

5. 分析陈志鹏debian检材,智能对话机器人模块中,控制并发访问的信号量初始许可数量是多少?
0
在IChatRobot.java中可以看到

Java 的
java.util.concurrent.Semaphore是一种并发计数器,通过许可的数量控制同时访问某资源的线程数。
Semaphore(N):初始有 N 个许可,最多允许 N 个线程同时进入临界区Semaphore(0):初始许可为 0,所有线程调用acquire()时都会阻塞,直到其他线程调用release()释放许可
6. 分析陈志鹏debian检材,安卓应用的网络请求代码中定义了几个异常捕获处理块?
8
demo/api/main.py 中共有 8 个 try/except,数一下就行了

7. 分析陈志鹏 debian 检材,安卓应用数据提交请求中没有附带内容的请求数量是多少?
3
分析过程:
demo/api/main.py中 POST 端点无 body 参数的有:POST /api/calls/{call_uuid}/hangup— 仅路径参数POST /api/calls/{call_uuid}/record/stop— 仅路径参数POST /api/ai/clear— 无任何参数- 有 body 的 POST:
/api/calls(dest_number, caller_id)、/api/calls/{call_uuid}/record/start(call_uuid)、/api/ai/process(audio_data) - 无附带内容的 POST 请求共 3 个。
8. 分析陈志鹏debian检材,给出AI外呼系统中大模型对话接口的具体实现类共有多少个?
10
easycallcenter365/src/.../robot/impl/ 目录下文件列表有10个文件

系统采用策略模式实现多 LLM 提供商的支持。
IChatRobot接口定义了统一的对话协议,AbstractChatRobot提供公共实现,impl/目录下的每个具体类对应一个 LLM 厂商的实现
9. 分析陈志鹏debian检材,给出AI外呼系统服务端口
8880
在application-238.properties文件中看到

10. 分析陈志鹏debian检材,给出智能对话机器人模块的接口中一共定义了多少个需要实现的方法?
13
在IChatRobot.java可以看到接口定义的方法,一共13个

11. 分析陈志鹏debian检材,给出消息处理器注册数量?
10
在application-238.properties文件中看到,一共10个
plain sys-config.websocket-handler-list = setHearBeat : SetHearBeat , call : CallApi , setAgentStatus : AgentCc , callMonitor : CallMonitor, inboundMonitorData:InboundMonitorDataPull, monitorData : CallMonitorDataPull, conference:Conference, pollAgentList: PollAgentStatusList, callHold: CallHold, callWait: CallWait
12. 分析陈志鹏debian检材,给出安卓应用使用 GET 方式请求数据的方法数?
3
在demo/api/main.py中查看有几个GET端点



13. 分析陈志鹏debian检材,通话转接等待默认时长(秒)?
30
在CallApi.java中看到

14. 分析陈志鹏debian检材,给出来电号码隐藏功能的默认状态?
true
见上图
15. 分析陈志鹏debian检材,给出通话控制类继承的基类名?
MsgHandlerBase
依旧是与上题相关

16. 分析陈志鹏debian检材,给出机器人基础抽象模块所实现的接口名称是什么?
IChatRobot
在AbstractChatRobot.java类声明

17. 分析陈志鹏debian检材,给出消息处理模块目录中纯接口定义文件共有多少个?
7
消息处理模块目录 wshandle/ 及 wshandle/impl/ 中的纯接口定义文件共 7 个文件
wshandle/ 根目录(2个纯接口):
IMsgHandler.java—public interface IMsgHandlerIMsgHandlerInitializer.java—public interface IMsgHandlerInitializer
wshandle/impl/ 子目录(5个纯接口):
IChannelParkHook.java—public interface IChannelParkHookIOnAnsweredHook.java—public interface IOnAnsweredHookIOnHangupHook.java—public interface IOnHangupHookIOnRecvBgApiResult.java—public interface IOnRecvBgApiResultIOnRecvMediaHook.java—public interface IOnRecvMediaHook
18. 分析陈志鹏debian检材,给出智能对话方法中表示可变参数的三个连续点号的技术术语是什么?
Varargs
在IChatRobot.java中看到
java void talkWithAiAgent(String question, Boolean... withKbResponse);
Varargs是 Java 5 引入的特性,使用
类型...语法声明
19. 分析陈志鹏debian检材,给出服务端Web应用的根路径配置值(包含斜杠)一共有多少个字符?
12
在application-238.properties中看到

20. 分析陈志鹏debian检材,给出DES加密算法完整定义字符串去掉所有斜杠符号后还剩多少个字符?
18
前几题我们在DESUtil.java中看到了加密方法,数一下就好了
java private static final String CIPHER_ALGORITHM = "DES/CBC/PKCS5Padding";
21. 分析陈志鹏debian检材,给出数据库配置的密码长度?
17
配置文件 application.properties 中 spring.profiles.active=uat,确认使用 UAT 配置。application-uat.properties 中数据库密码为

22. 分析陈志鹏debian检材,RSA加密算法中2048位密钥的二进制最高位的值是多少?
1
RSA 2048 位密钥意味着模数 N 是一个 2048 位的二进制数。根据 RSA 密钥生成规范,最高位(第 2048 位)必须为 1,否则该数的有效位数不足 2048 位
23. 分析陈志鹏debian检材,日志加密中使用的随机数长度为12字节,转换为十六进制显示后有多少个字符?
24
在encrypted_logger.py中看到

每个字节转换为 2 个十六进制字符(00~ff),12 字节 × 2 = 24 个十六进制字符。
24. 分析陈志鹏debian检材,2048位 RSA 密钥换算成字节是多少?
256
2048 bits ÷ 8 bits/byte = 256 bytes
这是 RSA 密钥的模数(modulus)大小。
25. 分析陈志鹏debian检材,DES加密测试代码中实际使用的加密密码字符串是什么?
telebo@t
在前几题就可以知道。DESUtil.java 的 main 方法:

26. 分析陈志鹏debian检材,手机界面中文控件总数(含标题和结果显示区)是多少?
6
在index.php界面下进行筛选
| 序号 | 控件 | 中文内容 |
|---|---|---|
| 1 | 标题 | 通讯录管理系统 |
| 2 | 控件 | 用户名 |
| 3 | 控件 | 密码 |
| 4 | 控件 | 登录 |
| 5 | 结果显示区 | 默认账户:admin / admin123 |
| 6 | 结果显示区 | 测试账户:test / test123 |
27. 分析陈志鹏debian检材,日志解密后,第四条通话记录中的来电号码是什么?
45680
在demo/logs/下查看日志文件

直接看0417这个,写脚本爆破一下
python import base64, json
from cryptography.fernet import Fernet
key = b"ktaMw-IYt4jIH13uQmDr9PM62F2UHNRLHsvsWmBOYjY="
f = Fernet(key)
with open("logs/call_20260417.log") as lf:
lines = [l.strip() for l in lf if l.strip()]
for i, line in enumerate(lines):
data = json.loads(f.decrypt(base64.b64decode(line)).decode())
print(f"第{i+1}条: caller_id={data['caller_id']}")

28. 分析陈志鹏debian检材,服务连接失败时返回什么值?
null
在AliAccountTokenCreator.java中可以看到返回值为null

29. 分析陈志鹏debian检材,给出数据库配置项数量?
4
application-uat.properties中查看数据库配置项

30. 分析陈志鹏debian检材,给出Android 项目的依赖库声明数?
3
在demo/requirements.txt中看到三个依赖库
