概述
在上一篇《NSA组织“二次约会”间谍软件功能复现及加解密分析》文章中,笔者对“二次约会”v1.1.1.1样本的功能进行了复现,以及对其网络通信模型中所涉及的加解密算法进行了详细的剖析,最终成功编写解密脚本实现对“二次约会”v1.1.1.1样本通信流量的解密还原。
因此,在上一篇文章的基础上,笔者将继续对“二次约会”间谍软件进行剖析,并从如下几个方面开展技术研究:
- 对“二次约会”间谍软件的所有已掌握样本进行对比分析,从通信协议、通信载荷长度、适用架构、解密算法等多角度进行对比,发现多种不同通信载荷:1048字节通信载荷、1060字节通信载荷、56字节通信载荷、60字节通信载荷、不定长通信载荷;
- 对“二次约会”间谍软件的所有已掌握控制端进行对比分析,发现多个不同的指令集;
- 对1048/1060通信载荷间谍软件的会话劫持原理进行剖析;
- 对1048/1060通信载荷间谍软件的通信数据结构进行详细的剖析;
样本版本梳理及对比
通过对泄露资料进行梳理,笔者共提取32个“二次约会”间谍软件:
- 控制端程序17个,被控端程序15个;
- 共涉及17个间谍软件大小版本;
- 支持在Linux、FreeBSD、Solaris、JunOS等各类操作系统上运行,同时兼容i386、x86、x64、SPARC等多种体系架构,适用范围较广;
- 以通信载荷长度作为通信特征,共提取5种不同的通信特征,分别为:1048字节通信载荷、1060字节通信载荷、56字节通信载荷、60字节通信载荷、不定长通信载荷;
- 基于前期编写的解密脚本对通信载荷进行解密尝试,发现1048字节通信载荷与1060字节通信载荷的解密算法及通信模式一致,其余通信载荷的解密算法有所变化;
详细梳理情况如下:
通信协议 | 通信载荷长度 | Client文件名 | Implant文件名 | 备注 |
---|---|---|---|---|
UDP | 1048 | Seconddate_CnC | Seconddate_Implant | v1.1.1.1 |
UDP | 1060 | seconddate_Client_1.3.0.1_UNKNOWN | seconddate_ImplantStandalone_1.3.0.1_linux | |
UDP | 1060 | seconddate_Client_1.5.1.2_UNKNOWN | seconddate_ImplantStandalone_1.5.1.2_linux | |
UDP | 1060 | seconddate_Client_1.5.1.3_UNKNOWN | seconddate_ImplantStandalone_1.5.1.3_linux | |
UDP | 1060 | seconddate_Client_1.6.2.3_UNKNOWN | seconddate_ImplantStandalone_1.6.2.3_linux | |
UDP | 56 | seconddate_Client_1.7.0.3_UNKNOWN | seconddate_ImplantStandalone_1.7.0.3_trunklien | freebsd |
UDP | 56 | seconddate_Client_1.7.0.3_UNKNOWN | seconddate_ImplantStandalone_1.7.0.4_trunklien | freebsd |
UDP | 60 | seconddate_CommonClient_Revoked_2.0.1.1 | ||
UDP | 不定长 | seconddate_CommonClient_1.1.4.0_seconddatecnc_i386-linux | ||
UDP | 不定长 | seconddate_CommonClient_3.0.3.3_configuration_i386-linux | seconddate_ImplantStandalone_3.0.3.1_remote_i386-linux | |
UDP | 不定长 | seconddate_CommonClient_3.0.3.3_configuration_i386-linux | seconddate_ImplantStandalone_3.0.3.2_remote_x86_64-linux | |
UDP | 不定长 | seconddate_CommonClient_3.0.3.3_configuration_i386-linux | seconddate_ImplantStandalone_3.0.3.3_remote_i386-freebsd | freebsd |
UDP | 不定长 | seconddate_CommonClient_3.0.3.3_configuration_i386-linux | seconddate_ImplantStandalone_3.0.3.4_remote_x86_64-freebsd | freebsd |
UDP | 不定长 | seconddate_CommonClient_3.0.3.3_configuration_i386-linux | seconddate_ImplantStandalone_3.0.3.5_remote_sparc-solaris | solaris |
UDP | 不定长 | seconddate_CommonClient_3.0.3.3_configuration_i386-linux | seconddate_ImplantStandalone_3.0.3.6_remote_i386-solaris | solaris |
UDP | 不定长 | seconddate_CommonClient_3.1.0.2_i386-linux | seconddate_ImplantStandalone_3.1.0.2_i386-junos-8.5-abovetrunklien | freebsd |
UDP | 不定长 | seconddate_CommonClient_3.0.3.3_configuration_i386-linux | seconddate_ImplantStandalone_3.1.1.2_i386-junos-8.5-abovetrunklien | freebsd |
1048字节通信载荷
1060字节通信载荷
56字节通信载荷
60字节通信载荷
不定长通信载荷
通过分析,每次启动控制端后,发送的通信载荷长度均为不相同的随机长度。
相关截图如下:
样本远控指令对比
通过对已掌握的17个控制端程序进行分析,发现部分版本控制端程序实际上调用的是其他版本控制端程序,因此进一步梳理,共提取10个不同的控制端程序,对比分析情况如下:
- 随着间谍软件的软件版本迭代,“二次约会”间谍软件的指令集也在同步增加;
- 随着间谍软件的软件版本迭代,“二次约会”间谍软件的集成度也越来越高,逆向难度也越来越大;
详细对比情况如下:
Client文件名 | 支持指令 | 指令数 |
---|---|---|
Seconddate_CnC | clearlog、disable、enable、getinfo、getlog、help、ping、quit、rule、showrule、uninstall | 11 |
seconddate_Client_1.3.0.1_UNKNOWN | clearlog、commit、disable、enable、getinfo、getlog、help、ping、quit、rule、showrule、uninstall | 12 |
seconddate_Client_1.5.1.2_UNKNOWN | clearlog、commit、disable、enable、getinfo、getlog、help、ping、quit、rule、showrule、uninstall | 12 |
seconddate_Client_1.5.1.3_UNKNOWN | clearlog、commit、disable、enable、getinfo、getlog、help、ping、quit、rule、showrule、uninstall | 12 |
seconddate_Client_1.6.2.3_UNKNOWN | clearlog、commit、disable、enable、getinfo、getlog、help、ping、quit、rule、showrule、uninstall | 12 |
seconddate_Client_1.7.0.3_UNKNOWN | channel、clearlog、commit、disable、enable、exit、getinfo、getlog、getrule、help、ping、quit、rule、rulewizard、showrule、uninstall | 16 |
seconddate_CommonClient_Revoked2.0.1.1 | clearlog、commit、disable、enable、exit、getinfo、getlog、getrule、help、network、ping、quit、rule、showrule、sync、uninstall | 16 |
seconddate_CommonClient_1.1.4.0_seconddatecnc_i386-linux | clearlog、commit、disable、enable、delete、exit、getinfo、getlog、getrule、help、network、ping、quit、rule、showrule、sync、uninstall、fin、rekey | 19 |
seconddate_CommonClient_3.0.3.3_configuration_i386-linux | clearlog、commit、disable、enable、delete、exit、getinfo、getlog、getrule、help、network、ping、quit、rule、showrule、sync、uninstall、fin、rekey | 19 |
seconddate_CommonClient_3.1.0.2_i386-linux | clearlog、commit、disable、enable、delete、exit、getinfo、getlog、getrule、help、network、ping、quit、rule、showrule、sync、uninstall、fin、rekey | 19 |
1048/1060通信载荷间谍软件会话劫持原理
通过对“二次约会”间谍软件新老版本进行简单对比分析,发现:
- “二次约会”间谍软件的老版本将调用libpcap 库与 libnet 库中的函数实现网络流量嗅探及特定网络会话劫持篡改功能;
- “二次约会”间谍软件的较新版本将使用BPF技术捕获数据包;
网络流量嗅探-数据包捕获
通过分析,发现在“二次约会”间谍软件的老版本中,间谍软件将调用pcap_findalldevs、pcap_open_live、pcap_compile、pcap_setfilter、pcap_next等函数实现数据包捕获功能:
- pcap_findalldevs:用于获取系统上可用的网络接口设备;
- pcap_open_live:用于打开指定网络接口以进行数据包捕获;
- pcap_compile:用于编译过滤规则以过滤捕获的数据包;
- pcap_setfilter:用于将编译后的过滤规则应用到打开的网络接口上;
- pcap_next:用于从已打开的网络接口中捕获下一个数据包;
相关代码截图如下:
网络流量嗅探-正则表达式匹配
通过分析,发现在“二次约会”间谍软件的老版本中,间谍软件将调用pcre_compile、pcre_exec等函数匹配特定数据包。
- pcre_compile:用于编译正则表达式模式,将其转换为一个内部表示形式,以便后续的匹配操作;
- pcre_exec:用于执行编译后的正则表达式模式,对输入的文本进行匹配;
相关代码截图如下:
特定网络会话劫持篡改
通过分析,发现在“二次约会”间谍软件的老版本中,间谍软件将调用libnet_build_data、libnet_build_tcp、libnet_build_ipv4、libnet_build_ethernet、libnet_write等函数实现特定网络会话劫持篡改功能:
- libnet_build_data:向数据包中添加指定的负载数据;
- libnet_build_tcp:构建 TCP 协议头部,用于创建 TCP 数据包;
- libnet_build_ipv4:构建 IPv4 协议头部,用于创建 IPv4 数据报;
- libnet_build_ethernet:构建以太网帧头部,用于创建以太网数据帧;
- libnet_write:发送数据包;
相关代码截图如下:
1048/1060通信载荷间谍软件网络通信模型剖析
远控指令梳理
通过分析,发现1048/1060通信载荷间谍软件共支持如下几个远控指令,详细情况如下:
指令 | 指令编号 | 功能说明 | 备注 |
---|---|---|---|
help or ? | 帮助说明 | ||
quit or exit | 退出 | ||
ping | 1 | 测试木马通信是否畅通 | |
rule [rulenum] [opts ...] | 2 | 配置规则 | |
enable [rulenum] | 3 | 启用规则 | |
disable [rulenum] | 4 | 关闭规则 | |
showrule [--all or rulenum] | 5 | 显示规则详情 | |
getlog [--log logfile ] [entrynum] | 6 | 获取规则触发日志 | |
getinfo | 7 | 获取程序基本信息及规则触发概要信息 | |
uninstall | 8 | 卸载程序 | |
9 | 第一次执行指令时 | ||
clearlog | 10 | 清除规则触发日志 | |
commit | 11 | 永久存储配置规则 | v1.1.1.1版本后新增 |
通信数据结构
通过分析,发现1048/1060通信载荷间谍软件的网络通信需要层层加密、层层校验,才能成功提取有效载荷数据,因此,在剖析1048/1060通信载荷间谍软件具体指令的网络通信模型前,笔者先对通信数据包的多层通信数据结构进行详细剖析,详细情况如下:
#通信数据包的数据结构
------------------------------------------------
| 第一层加密 | |
| 数据头:12字 | 第一层加密数据:1036字节 |
| 节校验数据 | |
------------------------------------------------
| 8字节 | |
| IV值 | 第二层加密数据:1028字节|
| | |
-----------------------------------
| 8字节 | |
| 校验 | 有效数据载荷: |
| 数据 | 1020字节 |
--------------------------
第一层加密数据头:12字节校验数据
output[:4] : 1.用于校验(output[:4]- 0x61E57CC6);2.用作第一层数据解密的异或key;
output[4:8] : 1.用于校验(output[:4]- 0x61E57CC6 + output[4:8]等于0)
output[8:0xc] : 1.用于校验第一层解密后的数据是否正确,第一层解密后的数据按4字节循环异或后的结果等于output[8:0xc]
8字节IV值
用于RC6算法运算
8字节校验数据
output[:4] : 固定值:0x9e1a833a
output[4:8] : 序列号,控制端程序启动时随机生成,每次指令交互后加1
第一层加密数据头数据校验代码截图如下:
8字节校验数据代码截图如下:
指令9-第一次执行指令时
通过分析,发现每次启动控制端程序后,第一次运行任何一个指令时,均会在执行对应指令代码前执行指令9。
相关代码截图如下:
通信数据详情:
#发送数据--192.168.184.128->192.168.184.129
9e1a833a #固定值
5bb2dc00 #序列号
00000009 #指令
...1016字节随机数据...
#返回数据--192.168.184.129->192.168.184.128
9e1a833a #固定值
5bb2dc00 #序列号
80000009 #指令返回时,将指令数据与0x80000000做或运算
...1016字节:与发送数据相同...
指令1-测试木马通信是否畅通
相关代码截图如下:
指令运行情况如下:
SECONDDATE> ping
[#] Mon, 06 Nov 2023 18:00:02 +0800
OK.
SECONDDATE>
通信数据详情:
#发送数据--192.168.184.128->192.168.184.129
9e1a833a #固定值
5bb2dc01 #序列号,每次指令交互后加1
00000001 #指令
...1016字节00数据...
#返回数据--192.168.184.129->192.168.184.128
9e1a833a #固定值
5bb2dc01 #序列号,每次指令交互后加1
80000001 #指令
...1016字节:与发送数据相同...
指令2-配置规则
此指令为“二次约会”间谍软件的核心功能代码,通过分析此指令,发现此指令支持如下配置参数:
- --srcaddr addr(0)
- --srcmask mask(255.255.255.255)
- --dstaddr addr(0)
- --dstmask mask(255.255.255.255)
- --protocol prot(6/TCP)
- --srcport port(0)
- --dstport port(0)
- --mininterval(60)
- --maxinjections(5)
- --injectwindow(0)
- --checkhttp (default) | --nocheckhttp
- --checkregex (default) | --nocheckregex
- --tcpflag (FIN ACK) URG | ACK | PSH | RST | SYN | FIN
- --regexfile <filename> </filename>
- --injectfile <filename></filename>
被控端相关代码截图如下:
指令运行情况如下:
SECONDDATE> rule 1 --dstport 2345 --maxinjections 2 --injectwindow 600 --nocheckregex --injectfile /root/Desktop/response
[#] Fri, 10 Nov 2023 10:21:43 +0800
OK.
SECONDDATE>
通信数据详情:
#发送数据--192.168.184.128->192.168.184.129
9e1a833a #固定值
5bb2dc02 #序列号,每次指令交互后加1
00000002 #指令
00000000
00000000
00 #g_sdLog_num
01 #checkhttp_or_nocheckhttp
00 #checkregex_or_nocheckregex
19 #tcpflag
00000000 #rulenum
00000000 #srcaddr
00000000 #srcmask
00000000 #dstaddr
00000000 #dstmask
0006 #protocol
0000 #srcport
0929 #dstport
0000
0000003c #mininterval
00000002 #maxinjections
00000258 #injectwindow
00000094 #len_injectfile
00000000
00000000
00000000
00000000
#regexfile-256字节
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000
#injectfile-512字节
485454502f312e3120323030204f4b0a436f6e74656e742d547970653a20746578742f68746d6c0a436f6e74656e742d4
c656e6774683a2038370a0a3c68746d6c3e3c626f64793e48656c6c6f20576f726c6421213c62723e3c62723e54657374
205365636f6e64646174655f436e4320546f6f6c7321213c62723e3c2f696672616d653e3c2f626f64793e3c2f68746d6
c3e0a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000
#...
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000
#返回数据--192.168.184.129->192.168.184.128
9e1a833a #固定值
5bb2dc02 #序列号,每次指令交互后加1
80000002
...1016字节:与发送数据相同...
响应数据包截图如下:(与规则配置中的内容吻合)
指令3-启用规则
此指令运行后,样本将对全局变量g_ruleCount值加1,g_ruleCount值用于判断是否进入后续会话劫持代码。
相关代码截图如下:
指令运行情况如下:
SECONDDATE> enable 1
[#] Sat, 11 Nov 2023 20:48:02 +0800
OK.
SECONDDATE>
通信数据详情:
#发送数据--192.168.184.128->192.168.184.129
9e1a833a #固定值
5bb2dc03 #序列号,每次指令交互后加1
00000003 #指令
...1016字节00数据...
#返回数据--192.168.184.129->192.168.184.128
9e1a833a #固定值
5bb2dc03 #序列号,每次指令交互后加1
80000003
...1016字节:与发送数据相同...
指令4-关闭规则
相关代码截图如下:
指令运行情况如下:
SECONDDATE> disable 1
[#] Sat, 11 Nov 2023 20:48:17 +0800
OK.
SECONDDATE>
通信数据详情:
#发送数据--192.168.184.128->192.168.184.129
9e1a833a
5bb2dc09
00000004
...1016字节00数据...
#返回数据--192.168.184.129->192.168.184.128
9e1a833a
5bb2dc09
80000004
...1016字节:与发送数据相同...
指令5-显示规则详情
相关代码截图如下:
指令运行情况如下:
SECONDDATE> showrule 1
[#] Fri, 10 Nov 2023 10:22:57 +0800
Rule: 1
Enabled: yes
Src Addr: 0.0.0.0
Src Mask: 0.0.0.0
Dst Addr: 0.0.0.0
Dst Mask: 0.0.0.0
Protocol: 6
Src Port: 0
Dst Port: 2345
Min Interval: 60
Max Inject: 2
Inject Window: 600
Inject Length: 148
TCP Flags: --- ACK PSH --- --- FIN
Check HTTP: yes
Custom Regex: no
Next Injection Time: 41
Injection Window End Time: 540
Current Injections: 1
Total Injections: 1
Regex Pattern:
[ BEGIN ]
(NULL)
[ END ]
Inject Text:
[ BEGIN ]
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 87
<html><body>Hello World!!<br><br>Test Seconddate_CnC Tools!!<br></iframe></body></html>
[ END ]
SECONDDATE>
通信数据详情:
#发送数据--192.168.184.128->192.168.184.129
9e1a833a #固定值
5bb2dc04 #序列号,每次指令交互后加1
00000005 #指令
...1016字节00数据...
#返回数据--192.168.184.129->192.168.184.128
9e1a833a #固定值
5bb2dc04 #序列号,每次指令交互后加1
80000005 #指令
00000000
00000000
00 #g_sdLog_num
01 #checkhttp_or_nocheckhttp
00 #checkregex_or_nocheckregex
19 #tcpflag
00000000 #rulenum
00000000 #srcaddr
00000000 #srcmask
00000000 #dstaddr
00000000 #dstmask
0006 #protocol
0000 #srcport
0929 #dstport
0000
0000003c #mininterval
00000002 #maxinjections
00000258 #injectwindow
00000094 #len_injectfile
00000001 #Current Injections
00000001 #Total Injections
00000029 #Next Injection Time
0000021c #Injection Window End Time
#regexfile-256字节
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000
#injectfile-512字节
485454502f312e3120323030204f4b0a436f6e74656e742d547970653a20746578742f68746d6c0a436f6e74656e742d4
c656e6774683a2038370a0a3c68746d6c3e3c626f64793e48656c6c6f20576f726c6421213c62723e3c62723e54657374
205365636f6e64646174655f436e4320546f6f6c7321213c62723e3c2f696672616d653e3c2f626f64793e3c2f68746d6
c3e0a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000
#...
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000
指令6-获取规则触发日志
相关代码截图如下:
指令运行情况如下:
SECONDDATE> getlog
[#] Fri, 10 Nov 2023 10:23:06 +0800
Index Src Address Dest Address Prot Src Port Dst Port Age(secs) rule
----- ----------- ------------ ---- -------- -------- ---------- ------
0 192.168.184.1 192.168.184.129 6 59024 2345 28 1
stopping at curr = 1
SECONDDATE> getinfo
通信数据详情:
#发送数据--192.168.184.128->192.168.184.129
9e1a833a
5bb2dc05
00000006
...1016字节00数据...
#返回数据--192.168.184.129->192.168.184.128
9e1a833a
5bb2dc05
80000006
00000000
654d940a #timestamp(时间戳):命令执行完成时间
00000000 #Index
c0a8b801 #Src Address
c0a8b881 #Dest Address
e690 #Src Port
0929 #Dst Port
654d93ee #timestamp(时间戳):命令下发时间
00000001 #规则编号
06 #protocol
...983字节00数据...
指令7-获取程序基本信息及规则触发概要信息
相关代码截图如下:
指令运行情况如下:
SECONDDATE> getinfo
[#] Fri, 10 Nov 2023 10:23:11 +0800
SecondDate Version: 01010101
Current number of active log entries is 1
Current number of active rules is 1
SECONDDATE>
通信数据详情:
#发送数据--192.168.184.128->192.168.184.129
9e1a833a
5bb2dc06
00000007
...1016字节00数据...
#返回数据--192.168.184.129->192.168.184.128
9e1a833a
5bb2dc06
80000007
00000000
00000000
01010101 #SecondDate Version
00000001 #Current number of active log entries
00000001 #Current number of active rules
...996字节00数据...
指令8-卸载程序
相关代码截图如下:
指令运行情况如下:
SECONDDATE> uninstall
[#] Sat, 11 Nov 2023 20:48:41 +0800
CnC: timedout waiting for a response. Retrying ...
CnC: timedout waiting for a response. Retrying ...
CnC: timedout waiting for a response. Retrying ...
CnC: failed to receive a valid response after 3 retries.
SECONDDATE>
通信数据详情:
#发送数据--192.168.184.128->192.168.184.129
9e1a833a
5bb2dc0c
00000008
...1016字节00数据...
指令10-清除规则触发日志
指令运行情况如下:
SECONDDATE> clearlog
[#] Sat, 11 Nov 2023 20:49:40 +0800
OK.
SECONDDATE>
通信数据详情:
#发送数据--192.168.184.128->192.168.184.129
9e1a833a
5bb2dc0a
0000000a
...1016字节00数据...
#返回数据--192.168.184.129->192.168.184.128
9e1a833a
5bb2dc0a
8000000a
...1016字节:与发送数据相同...
指令11-永久存储配置规则
通过分析,发现自v1.1.1.1版本后,“二次约会”间谍软件新增了commit命令,此命令支持永久存储植入规则;进一步分析,发现此命令的运行原理即为将配置规则加密存放于自身ELF文件中。
相关代码截图如下:
指令运行情况如下:
SECONDDATE> commit
[#] Sat, 11 Nov 2023 20:49:53 +0800
OK.
SECONDDATE>
通信数据详情:
#发送数据--192.168.184.128->192.168.184.129
9e1a833a
031046b2
0000000b
...1028字节00数据...
#返回数据--192.168.184.129->192.168.184.128
9e1a833a
031046b2
8000000b
...1028字节:与发送数据相同...
十六进制文件对比如下: