E2633转正官方版分析(Telnet篇)

4292 字
21 分钟
E2633转正官方版分析(Telnet篇)
免责声明与使用约定
  1. 禁止以任何形式出售、打包收费、付费分发、引流获利,或将本教程及随附工具用于其他商业获利行为。
  2. 对教程、文档或工具进行二次修改、转载和再分发时,必须保留原作者 zlion。
  3. 固件刷写、Telnet和 MTD 操作均可能造成数据丢失、设备变砖或其他不可预期后果。操作者应对自己的设备和全部操作结果负责并自行承担风险。
  4. 如本文内容存在侵权、错误引用或其他权益问题,请联系作者核实;确认后将及时删除或修正相关内容。

1. Config.bin的加解密与Telnet开启#

1.1 Config.bin的加解密#

config.bin 不是明文 XML,而是 ZTE 的 Type-4 外层容器。E2631 中使用的是 AES-256-CBC。 中兴巡天及其套娃机的值有多组,这里仅展示一组:

参数值
keySeedE2631Key13515211
ivSeedE2631Iv13515211
keySHA256(keySeed)
ivSHA256(ivSeed) 取前 16 字节
填充关闭,尾部补零到 AES 块边界

解包流程如下:

config.bin Type-4 外层容器

AES-256-CBC 解密

Type-0 内层容器

zlib 解压

最终 XML

config.bin Type-4 外层容器

AES-256-CBC 解密

Type-0 内层容器

zlib 解压

最终 XML

回写流程如下:

修改后的 XML

zlib 压缩

封装 Type-0 内层容器

AES-256-CBC 加密

写回 config.bin

修改后的 XML

zlib 压缩

封装 Type-0 内层容器

AES-256-CBC 加密

写回 config.bin

1.2 修改Config.bin开启Telnet#

这里提供一个一键开启Telnet脚本config-telnet-enable.zip

PortControl 中 TELNET 行:

<DM name="ServName" val="TELNET"/>
<DM name="PortEnable" val="1"/>

TelnetCfg 中启用 LAN、关闭 WAN:

<Tbl name="TelnetCfg" RowCount="1">
<Row No="0">
<DM name="TS_Enable" val="1"/>
<DM name="Wan_Enable" val="0"/>
<DM name="Lan_Enable" val="1"/>
<DM name="TS_Port" val="23"/>
<DM name="TS_UName" val="admin"/>
<DM name="TS_UPwd" val="admin"/>
</Row>
</Tbl>
注意

本工具由 zlion 原创,首发于 zlion.top 禁止倒卖、打包收费或用于任何商业盈利行为,转载须保留完整出处及作者署名。

使用说明
  1. 将 config-telnet-enable.bat、zte_config_telnet_enable.js 和 config.bin 放在同一个目录。
  2. 双击 config-telnet-enable.bat。
  3. 成功后,同目录会生成 config-telnet-enable.bin。
  4. Telnet 端口为 23,账号和密码均为 admin。

运行环境:

  1. 完整工具包已经附带 node.exe,无需安装 Node.js 或 Python。
  2. 请勿单独移动 BAT;config-telnet-enable.bat、zte_config_telnet_enable.js 和 node.exe 必须放在一起。
  3. 不支持的配置会显示“config文件暂不适配”,且不会保留输出文件

2. 本机信息优化#

本节提醒
  1. 适用于保留自己设备的 Tag、Wi-Fi 等身份和无线数据分区
  2. 适用于刷了三方固件无法绑定APP(未验证APP端是否只检测设备型号,仅猜测)

Tag 分区与 Wi-Fi 分区性质不同,处理方式也不同:

分区内容修改方式
Tag(mtd2)裸结构化记录 + CRC32setmac 逐参数改,或 mtd_write_tag 整区写入(2.2)
Wi-Fi(mtd3)JFFS2 文件系统,内含 caldata用备份文件在挂载点写回(2.3)

2.1 Tag 、Wifi 分区读取#

在路由器 Telnet 终端执行:

Terminal window
cat /proc/mtd

可以看到:

mtd2: 00100000 00020000 "tag"
mtd3: 00100000 00020000 "wifi"

两者大小均为 0x100000,即 1048576 字节。

Tag 分区是裸结构化数据,直接读设备节点:

Terminal window
cat /dev/mtd2 > /tmp/tag-backup.bin

Wi-Fi 分区(mtd3)是 JFFS2 文件系统,开机已经挂载在 /wlan,里面只有 caldata 一个文件(196,608 字节)。备份时直接读这个文件 —— 恢复时原样写回即可,不需要任何解包步骤:

Terminal window
cat /wlan/caldata > /tmp/caldata-backup.bin
若 /wlan 没有挂载

先执行 mount -t jffs2 /dev/mtdblock3 /wlan,再按上面的命令备份。

确认电脑的 TFTP 服务已启动,根目录允许写入。

上传 Tag 备份:

Terminal window
tftp -p -l /tmp/tag-backup.bin -r tag-backup.bin 192.168.5.7

上传 Wi-Fi 校准备份:

Terminal window
tftp -p -l /tmp/caldata-backup.bin -r caldata-backup.bin 192.168.5.7

192.168.5.7请替换为电脑当前的局域网 IP。

2.2 修改 Tag:setmac 命令与 mtd_write_tag 工具#

Tag 分区(mtd2)是裸结构化数据加 CRC32 校验,Tag 中同时存在主 MAC、第二 MAC、MAC 前缀、D-SN、S/N、型号和 Wi-Fi 信息。按场景有两种修改方式:

方式原理适用场景
方法一:setmac 命令(推荐)固件自带命令逐参数修改,自动完成 NAND 擦除并重算 CRC32改型号、MAC 等单个字段
方法二:mtd_write_tag 工具自编译 MTD 写入工具,把改好的 Tag 整区镜像一次擦写写入整区替换,或 setmac 不可用的设备

方法一:setmac 命令(推荐)#

设备固件自带 /bin/setmac,它通过 libtagparam.so + libmtduserapi.so 直接读写 Tag 分区,内部会自动完成 NAND 擦除并重算 CRC32 —— 不需要离线改文件,也不需要自编译任何工具。

用法:

Terminal window
setmac # 无参数时打印帮助
setmac show2 # 列出全部具名参数
setmac <action type> <para_id> [<hex string para_val>]

action type 含义:

值动作
1set,写入参数
2get,读取参数
3del,删除参数
4format,格式化整个 Tag 区(危险,勿用)

查看当前参数:

Terminal window
setmac show2

输出示例:

===============Current Status of TagParam===============
Mac[ID: 256] is set to AA BB CC DD EE FF
OUI[ID: 768] is set to AABBCC
DeviceSerialNumber[ID: 512] is set to XXXXXXXXXXXXXXXXX
WirelessNetName[ID: 1024] is set to Example-SSID
WlanPass[ID: 1296] is set to ExamplePass
...
==============

常用参数 ID:

参数ID参数ID
Mac256WirelessNetName1024
第二 MAC257WirelessNetName5G1028
DeviceSerialNumber512WlanPass1296
OUI768WlanPass5G1328
运营商代码1793型号33024
型号不在 show2 列表里

setmac show2 只列出它”具名”的那批参数,型号(ID 33024)不在其中,但可以用 ID 直接读写。 所有 get 的返回值都是十六进制,需要自己解成 ASCII。

改型号(E2633 转 E2631)#
Terminal window
# 1. 读当前型号
setmac 2 33024
# 2633 设备预期返回:5a58484e204532363333 ( "ZXHN E2633" )
# 2. 写入 E2631
setmac 1 33024 5A58484E204532363331
# 3. 回读验证
setmac 2 33024
# 预期返回:5a58484e204532363331

十六进制可以交给设备自己算,不用手推:

Terminal window
printf 'ZXHN E2631' | hexdump -v -e '1/1 "%02x"'
# 5a58484e204532363331

常见形式对照(把末尾 33 改成 31):

型号字符串hex
ZXHN E26335A58484E204532363333
ZXHN E26315A58484E204532363331
ZTE E26335A5445204532363333
E26334532363333
长度要一致

型号字段长度为 10 字节(ZXHN E2631)。setmac 对长度有校验,改型号时请与读取值保持等长, 否则可能被拒绝,或破坏后续记录结构。

只改型号时,其余字段(MAC、S/N、OUI、Wi-Fi)全部保持原值 —— 这正是”其他信息都还是自己贴纸上的”。若需单独修正 MAC:

Terminal window
setmac 2 256 # 读当前主 MAC
setmac 1 256 AABBCCDDEEFF # 主 MAC(2.4G)
setmac 1 257 AABBCCDDEE00 # 第二 MAC(5G)
setmac 1 768 AABBCC # OUI = MAC 前三字节
setmac show2 # 回读确认

改完重启。Tag 在启动阶段被读取(initwifi 会调用 setwlanmac 把 MAC 应用到无线接口),cspd 与 Web 页面也会重新读取:

Terminal window
reboot
风险提示
  • setmac 4 会格式化整个 Tag 分区,MAC、S/N、OUI、Wi-Fi 信息全部清空,不要执行。
  • setmac 3 <id> 删除单个参数,同样危险。
  • 改型号或 MAC 属于改变设备身份,会影响 TR-069 上报、APP 绑定与 Web 显示;操作前建议先用 setmac show2 记录全部原值,并顺手备份:
    Terminal window
    mkdir -p /wlan/bak && cat /dev/mtd2 > /wlan/bak/tag-backup.bin

方法二:mtd_write_tag 整区写入(备选)#

mtd_write_tag 是自己编译的 ARMv7 MTD 写入工具,点此下载 mtd_write_tag_armv7(common-tools 包内也附带,见 6.1 节)。它按 MTD 的擦除块、写入页和坏块规则执行整区擦写,适合需要整区替换(例如离线改好整个 Tag 镜像),或 setmac 不可用的设备。该工具只针对 Tag 的 MTD 写入流程,不能未经验证地用于 Wi-Fi、Bootloader 或其他分区。

若需要离线生成改好的 Tag 镜像,可使用脚本改型号为E2631:把 tag-backup.bin 重命名为 tag.bin,与脚本放在同一级目录,双击脚本即可得到 tag-E2631.bin,其他信息仍是自己设备贴纸上的。

Tag分区信息
Tag分区信息

Tag 结构(离线自行修改镜像时,需要自己重算 CRC32):

0x00 33 33 33 33
0x04 payload size,小端
0x08 CRC32,小端
0x0c 记录区
尾部 ff 填充

CRC32 计算范围从 0x0c 开始,长度由 payload size 决定。

先把改好的 Tag 镜像和工具通过 TFTP 传入路由器(192.168.5.7 是电脑的 TFTP 地址,请按实际网络修改):

Terminal window
ping -c 3 192.168.5.7
rm -f /tmp/tag.bin /tmp/mtd_write_tag
tftp -g -l /tmp/tag.bin -r tag.bin 192.168.5.7
tftp -g -l /tmp/mtd_write_tag -r mtd_write_tag_armv7 192.168.5.7

上面脚本生成的是 tag-E2631.bin,传输时按实际文件名填写 -r 参数即可。

先确认程序用法:

Terminal window
chmod +x /tmp/mtd_write_tag
/tmp/mtd_write_tag

应能看到类似用法:

Usage: /tmp/mtd_write_tag --yes /dev/mtdN file.bin
Example: /tmp/mtd_write_tag --yes /dev/mtd2 /tmp/tag.bin

确认输入文件为目标 Tag 分区大小后执行写入:

Terminal window
ls -l /tmp/tag.bin
cat /sys/class/mtd/mtd2/name 2>/dev/null
cat /sys/class/mtd/mtd2/size 2>/dev/null
/tmp/mtd_write_tag --yes /dev/mtd2 /tmp/tag.bin
sync

出现 MEMUNLOCK warning: Operation not supported 或 fsync: Invalid argument 时,不要只根据警告判断成功或失败,必须继续做读回校验。

写入后在路由器端读回并校验 MD5:

Terminal window
md5sum /tmp/tag.bin
rm -f /tmp/tag-readback.bin
cat /dev/mtd2 > /tmp/tag-readback.bin
md5sum /tmp/tag-readback.bin

两次 MD5 一致,且程序没有报告擦除、写入或读回错误,才可认为 Tag 写入成功。若不一致,保留终端输出,不要重启设备,也不要继续写 Bootloader 或整片 NAND。

2.3 恢复 Wi-Fi 分区:用 2.1 的备份文件写回#

Wi-Fi 分区(mtd3)是 JFFS2 文件系统,开机时挂载在 /wlan,里面只有一个 caldata 文件(196,608 字节)。它与 Tag 性质完全不同:

Tag(mtd2)Wi-Fi(mtd3)
内容裸结构化记录 + CRC32JFFS2 文件系统
是否挂载否是,挂在 /wlan
能用 setmac能不能
能用 cat 裸写不可靠不行

为什么不能用 cat 写: cat 文件 > /dev/mtd3 会被直接拒绝,写请求根本不生效:

# cat /tmp/wifi.bin > /dev/mtd3
/bin/sh: can't create /dev/mtd3: No child processes
# echo $?
1

在 E2631(192.168.5.2)上实测:完整 1 MiB 分区镜像、仅 4 字节内容、追加模式 >>,三种写法返回同一错误;先 umount /wlan 再写也照样失败;写入前后 cat /dev/mtd3 | md5sum 完全相同,分区内容零变化。权限与 MTD 标志均正常(/dev/mtd3 为 crw-r--r--,/sys/class/mtd/mtd3/flags = 0x400,即 MTD_WRITEABLE)。

所以”把自己那份原样写回、MD5 一致”是个假象:写操作从未生效,读回的又是分区原有内容,两者当然一致 —— MD5 相同完全不能证明写入成功。

NAND 的另一个坑

E2631 用的是 SPI NAND,编程时只能把位从 1 变成 0,要把位从 0 变回 1 必须先整块擦除(128 KiB)。这是裸写普遍不可靠的根本原因;不过在这台设备上,cat 连提交写入请求这一步都过不去。

为什么不能用 setmac: 它依赖 libtagparam.so,只认 Tag 分区。

正确做法:恢复挂载点里的 caldata,擦除、ECC、坏块跳过、磨损均衡全部交给 JFFS2。

先确认挂载状态:

Terminal window
mount | grep wlan
ls -l /wlan/

正常应看到:

/dev/mtdblock3 on /wlan type jffs2 (rw,relatime)
---------- 1 Z500_w9b root 196608 Jan 1 1970 caldata

把 2.1 备份的 caldata-backup.bin 传回设备:

Terminal window
tftp -g -l /tmp/caldata -r caldata-backup.bin 192.168.5.7

写回挂载点:

Terminal window
cp /tmp/caldata /wlan/caldata
sync
md5sum /tmp/caldata /wlan/caldata

两个 MD5 必须一致。随后让驱动重新加载校准数据:

Terminal window
rmmod mt7916
insmod /lib/modules/mt7916.ko

mt7916 通常被 tm、plat_zxylzb_9128S 等模块引用,rmmod 会直接失败,此时 reboot 即可。

不要裸写 /dev/mtd3

Wi-Fi 分区是已经挂载的活动 JFFS2 文件系统。对它裸写不只是”写不进去”:一旦部分块真的被写坏,JFFS2 的节点头与校验会错乱,可能导致下次挂载失败、整个分区读不出来 —— 比 Tag 写坏更难恢复。


3. Web 本地上传分析研究#

注意(2026/08/29更新)

中兴官方系统自带Web本地上传升级界面:http://192.168.5.1/supgrade.html 由@cnjn研究发现,以下内容仅作研究分享。

3.1 接口和表单#

抓到的 Web 流程:

GET /?_type=vueData&_tag=vue_nowversion_lua
POST /?_type=vueData&_tag=prepare_firmware_upgrade
POST /?_type=vueData&_tag=do_firmware_upgrade

multipart 字段名:

VersionUpload

核心表单头:

Content-Type: multipart/form-data; boundary=...
Content-Disposition: form-data; name="VersionUpload"; filename="firmware.bin"
Content-Type: application/octet-stream

3.2 SessionTimeout 的定位#

页面返回过 logintoken,响应头也返回过 X_XSRF_TOKEN。曾出现:

HTTP 200
IF_ERRORSTR = SessionTimeout

以及多种 token 组合均失败:

prepare same token => SessionTimeout
prepare sessOnly => SessionTimeout
prepare sessionOnly => SessionTimeout

后续在同一登录 Session 内获取页面 token、Cookie 和 XSRF token,并先调用 vue_loadprevent_data,曾得到:

prepare same:<page token> => SUCC

这只说明准备阶段通过,不说明上传和刷写一定成功。

3.3 升级管理器调试#

Telnet 下可以打开升级管理器日志并查看状态:

Terminal window
sendcmd cspd.cspd.upgrade_mgr setDebug 1
sendcmd cspd.cspd.upgrade_mgr show
sendcmd cspd.cspd.upgrade_mgr -p
sendcmd cspd.cspd.upgrade_mgr -l

show 中的 State、Location、TempDirName、FlashingPid 和 MediaPid 可帮助判断升级是否真正进入后端。研究中 Web 失败后常见:

State :0
Location :
TempDirName :
MediaPid :

同时没有 /var/tmp/fw.bin,这更像请求未进入后端刷写,而不是固件已经写入。

3.4 请求体上限实验#

测试文件现象判断
约 300 KiB100% 后 HTTP 200,SessionTimeout能传完整请求,会话仍有问题,不进入后续校验升级流程
约 320 KiB100% 后连接重置接近/超过请求体限制
约 330 KiB约 97% 后重置multipart 边界也占空间
约 512 KiB约 62% 后重置设备端提前关闭连接
22,413,844 bytes 官方包无法稳定上传不适合该页面

300Kib测试
300Kib测试
320Kib测试
320Kib测试

/bin/httpd 中发现:

content length is beyond limit.
Http request body read fail.
Upload file fail for not enough space, g_nContentLength(%d) >= g_nAllowedSpace(%d)
fwrite fail when upload.
VersionUpload
/var/tmp/fw.bin
do_firmware_upgrade
my_upload_file

这证明有 body length、临时空间和写文件分支;字符串本身不能证明唯一的上限数值。

3.5 /tmp 空间与 Web 限制#

当时读取到:

/var/tmp 约 40960 KiB,可用约 40736 KiB
/tmp 约 20480 KiB,可用约 19456 KiB

官方包约 21.38 MiB,在 /var/tmp 理论上放得下,但仍被 HTTP 处理路径重置。磁盘空间够,不等于请求体限制够,也不等于升级进程会接受该文件。

3.6 Wireshark 过滤器#

只看 HTTP 上传:

ip.addr == 192.168.5.1 && ip.addr == 192.168.5.7 && tcp.port == 80

只看电脑到路由器:

ip.src == 192.168.5.7 && ip.dst == 192.168.5.1 && tcp.dstport == 80

只看重置/重传:

tcp.flags.reset == 1 || tcp.analysis.retransmission

早期过滤 udp 只能看到 DNS、多播或调试包,不能证明 HTTP 升级。抓包中由 192.168.5.1:80 返回 RST, ACK,与设备端连接关闭相符。

3.7 Web 结论#

  • 进度 100% 只表示浏览器发完请求,不表示设备已经校验或写入。
  • SessionTimeout 和 ERR_CONNECTION_RESET 必须分层排查。
  • 大于几百 KiB 的正式升级包应走 Telnet + TFTP + 本地 fw_flashing,不应继续反复提交 Web 请求。
  • 隐藏页面是真实刷写路径,不是安全测试页面。

4. fw-flashing 与双槽启动#

4.1 参数和最小失败测试#

Terminal window
/bin/fw_flashing
/bin/fw_flashing -h

输出包含:

fw_flashing:no parameter
d:r:p:f:m:v:

确认 -f:

Terminal window
echo test > /var/tmp/fw-test.bin
/bin/fw_flashing -f /var/tmp/fw-test.bin
echo $?

输出:

fw_flashing name=/var/tmp/fw-test.bin,states.st_size =5
read magic failed!
GetVersionInfo error==========fw_flashing error==========

说明 -f 确实接受路径,并要求带固件 Magic/版本头。

4.2 官方包成功刷写#

电脑端确认:

Terminal window
dir fw.bin
certutil -hashfile fw.bin MD5

路由器获取并校验:

Terminal window
cd /var/tmp
rm -f /var/tmp/fw.bin
tftp -g -l /var/tmp/fw.bin -r fw.bin 192.168.5.7
ls -l /var/tmp/fw.bin
md5sum /var/tmp/fw.bin

本次包 MD5:

de682a3dce2b128cf7edeb8ac5f958a1

执行:

Terminal window
/bin/fw_flashing -f /var/tmp/fw.bin

关键输出:

RunningVerStartAddr:700000
RunningHeadHighAddr:2300000
g_ver_towrite=2
g_upgrade_startaddr=0x2300000
g_upgrade_endaddr=0x3f00000
firmware_size=22413312
firmware_offset=0x214
sect_size=0x20000
WriteVersion head success!
==========fw_flashing success==================

说明程序选择备用高槽、擦除并写入了包体,同时更新了版本头。

4.3 确认当前槽#

Terminal window
cat /proc/cmdline
cat /proc/zte/verinfo/versionstates
cat /proc/zte/verinfo/softVersion
cat /proc/zte/verinfo/othersoftVersion

槽位关键字段:

字段含义
currentverphyaddr当前运行物理起始地址
backverphyaddr备用槽物理起始地址
curverIsBad当前槽是否标坏
backverIsBad备用槽是否标坏
curverSerialNumber当前记录序号
othersoftVersion备用槽版本记录

本次低槽运行时确认:

currentverphyaddr: 0x00700000
backverphyaddr: 0x02300000

另一次从高槽启动时,/proc/cmdline 尾部出现 0x2300000。两者一致时,才是较强的槽位证据;不能只看 root=/dev/mtdblock8。

4.4 已确认的检查方向#

从 /bin/fw_flashing 字符串、符号和运行输出来看,存在:

read magic failed!
GetVersionInfo
check_ver_board
invalid vid version!
CheckBootFile
CheckFile
Checkheader
CspUserMtdRead / Write / Erase
flash addr overflow
uImage
CRC
CspSwitchVersion

合理的校验链:

  1. 文件大小和可读性。
  2. Magic、版本和升级头。
  3. 板型、VID、版本关系。
  4. 长度和目标槽范围。
  5. uImage 头部/数据 CRC,具体分支由版本决定。
  6. 擦除、写入和写后读回。
  7. 写版本头、切换或等待下一次启动选择。

未找到明确 RSA 公钥验证调用。RSA 可能在 cspd、Web、BootROM 或其他库中,不能仅凭 fw_flashing 字符串判断。

5. 试错部分#

5.1 Tag 直接写失败#

尝试 cat、mknod、chmod 后仍 MD5 不一致。设备没有 mtd_debug、flash_erase、nandwrite,只有 fw_flashing、upgradetest 等程序;这些程序没有暴露 Tag 写入接口。

最终是自己编译 MTD ioctl 工具(mtd_write_tag)完成写入的。

后来才发现,官方固件本身就自带 /bin/setmac(见 2.2 节),它通过 libtagparam.so + libmtduserapi.so 自动完成擦除并重算 CRC32 —— 改 Tag 用一条命令就够了,不需要自编译任何工具。mtd_write_tag 仍然可用,适合需要整区替换或 setmac 不可用的场景。

5.2 Web 反复失败#

升级准备失败:SessionTimeout
上传连接失败
net::ERR_CONNECTION_RESET

进度 31%、62%、97%、100% 后都见过失败。用小文件先拆分问题,确认大文件主要被 HTTP 路径限制后,停止继续提交 22 MiB 包,转为本地 fw_flashing。

5.3 未验证自动回退#

已确认 currentverphyaddr、backverphyaddr、两个 IsBad 字段,但没有故意刷坏包测试回退。不要为了得到一个“确定答案”而破坏当前可启动槽。


6. 通用脚本(自行研究使用)#

6.1 目录#

common-tools/
README.md
zte_type4_config_tool.js
enable_telnet_admin.bat
zte_firmware_analyzer.js
fw_slot_status.sh
mtd_write_tag_armv7

点此下载

6.2 Type-4 配置工具#

Terminal window
node common-tools/zte_type4_config_tool.js inspect config.bin
node common-tools/zte_type4_config_tool.js decrypt config.bin config.xml --profile e2631
node common-tools/zte_type4_config_tool.js encrypt config.xml config-new.bin --profile e2631
node common-tools/zte_type4_config_tool.js enable-telnet config.bin config-telnet.bin --profile e2631 --user admin --password admin

其他机型必须显式提供已验证种子:

Terminal window
node common-tools/zte_type4_config_tool.js decrypt config.bin config.xml --key-seed MODELKeyXXXXXXXX --iv-seed MODELIvXXXXXXXX

6.3 固件分析工具#

Terminal window
node common-tools/zte_firmware_analyzer.js firmware.bin
node common-tools/zte_firmware_analyzer.js firmware.bin --signature-offset 0x37fdcc --signature-size 564

输出哈希、可打印头部、型号标记、uImage CRC 和指定签名区零字节数。签名区非零不等于签名有效。


支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
E2633转正官方版分析(Telnet篇)
https://blog.zlion.top/posts/e2631-research-telnet/
作者
zlion
发布于
2026-08-04
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
Shiyan
Hello, I'm Shiyan.
公告
欢迎来到我的博客!
分类
标签
最新动态
站点统计
文章
12
分类
5
标签
37
总字数
29,913
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
EdgeOne Pages
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0