吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 79747|回复: 495
收起左侧

[原创] 中兴光猫配置文件db_user_cfg.xml结构分析及解密

    [复制链接]
头像被屏蔽
yulinsoft 发表于 2019-8-10 11:00
本帖最后由 yulinsoft 于 2019-8-14 09:01 编辑

       中兴光猫配置文件db_user_cfg.xml保存着光猫的各项配置,包括超级帐号和密码,它一般位于光猫/userconfig/cfg目录下,前文“中兴光猫ZXHN-F650不拆机获取超级密码”,我们通过光猫文件操作的漏洞获取了配置文件,并通过RouterPassView获取了超级密码,后来就想着分析一下这个文件的结构和算法,自己来写一个解密程序。由于这个文件没有公开的文档可用,所在只能用winhex打开,边看边猜,这也是常规的解密方法,终于功夫不负有心人,经过几天的猜解,终于摸清了文件的结构,写出了解密程序,今天特来跟大家分享了下。


(, 下载次数: 6)

我们先来说文件结构。文件结构分为文件头和数据体两部分,数据体是分块保存的。结构如下图:

(, 下载次数: 4)

首先看文件头,它由60个字节组成,包含文件的大小、解压后大小、数据分块大小和数据校验值等,通过对比F650和F452两个光猫的配置文件,除校验值算法未知,这个结构基本如下:

(, 下载次数: 4)

最新更新:校验值算法已经搞清,校验值共8个字节,前四个字节是对每个zlib数据块进行crc32校验,初始为0,后一块以前一块的校验值为初始值,全部校验完成后写入校验值的前四个字节。然后对文件头前24个字节进行crc32校验,初始值为0,得出的结果保存到校验值的后4个字节。到此这个文件的结构和算法全部搞清楚了,大家可以搞个写回操作了。


(, 下载次数: 5)

需要说明的是,这个文件的数值保存都是采用 Big endian格式保存的,所以编程时要进行字节序的转换才行。我编程用的是delphi,转换字节序的函数如下:

[Delphi] 纯文本查看 复制代码
1
2
3
4
function Swap32(const Value: LongWord): LongWord;
begin
  Result := Swap(Word(Value)) shl 16 + Swap(Word(Value shr 16));
end;

下面我们来看看最重要的数据块结构,它是有一个简单的数据头和zlib数据块组成,数据头中包含了数据解压后的大小,压缩块的大小和下个数据块的位置,所以我们只要找到第一个数据块的位置,就可以循环找到下一个,直到最后一个,根据数据块提供的信息进行解压合并就行了。数据块的结构如下:
(, 下载次数: 4)


通过图片的分析,相信大家都能写出解密程序,我先贴出我的解密算法,代码可能比较烂,但确实能用,大家不要喷便是:
[Delphi] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
function UnZipCofing(Fname: string): string;
var
  ds: TDecompressionStream;
  ms, fs, tmpfs: TMemoryStream;
  ss: TStringStream;
  bufferSize, blockSize, nextOff: LongWord;
begin
  fs := TMemoryStream.Create;
  tmpfs := TMemoryStream.Create;
  ms := TMemoryStream.Create;
  ss := TStringStream.Create('');
  if not FileExists(Fname) then
  begin
    ShowMessage('文件不存在!');
    exit;
  end;
  try
    fs.LoadFromFile(Fname);
    nextOff := 60;
    while nextOff > 0 do
    begin
      fs.Seek(nextOff, soFromBeginning);
  //读取缓冲区大小
      fs.Read(bufferSize, SizeOf(bufferSize));
      bufferSize := Swap32(bufferSize);
  //读取压缩块大小
      fs.Read(blockSize, SizeOf(blockSize));
      blockSize := Swap32(blockSize);
  //读取下一块位置
      fs.Read(nextOff, SizeOf(nextOff));
      nextOff := Swap32(nextOff);
      //复制压缩数据块到临时数据流
      tmpfs.Clear;
      tmpfs.CopyFrom(fs, blockSize);
      tmpfs.Position := 0;
      //解压数据块
      ds := TDecompressionStream.Create(tmpfs);
      ms.SetSize(bufferSize);
      ZeroMemory(ms.Memory, bufferSize);
      ms.Position := 0;
      ds.Read(ms.Memory^, bufferSize);
      //将解压后的数据流复制到字符串数据流
      ss.CopyFrom(ms, 0);
      ds.Free;
    end;{end while}
    //输出合并后的字符串流。
    Result := ss.DataString;
  finally
    //垃圾回收
    fs.Free;
    tmpfs.Free;
    ms.Free;
    ss.Free;
  end;
end;

写文不易,分析和制图都花费了不少时间,写代码更是耗时,因为毕竟不是专业程序员。所以写得不好大家不要喷,有不对之处请大家批评指正,写的程序如下,程序源码和编译后的程序及db_user_cfg.xml我会在附件中提供:
(, 下载次数: 3)


我写的一个小工具中兴光猫超密获取工具也是用的这个算法。本文吾爱破解首发,转载请注明出处,程序编译再发布请保留作者信息。

(, 下载次数: 5847)



免费评分

参与人数 122吾爱币 +119 热心值 +111 收起 理由
kxkxy5505 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
haha229 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
shaniaocc + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
cw224 + 1 谢谢@Thanks!
scdyz + 2 + 1 谢谢@Thanks!
luanshils + 3 + 1 热心回复!
天使的微笑07 + 1 + 1 我很赞同!谢谢大佬!
mengqiantang + 1 + 1 我很赞同!y依然好用
gdzstao + 1 + 1 我很赞同!
LJAY + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
rhmagicli + 1 + 1 我很赞同!
哎黑细作 + 1 + 1 谢谢@Thanks!
yinfeng04 + 1 + 1 谢谢@Thanks!
Rothes丶 + 1 感谢发布原创作品,但是V2.0.3P1T2不支持
tanshude + 1 谢谢@Thanks!
Manzen + 1 + 1 用心讨论,共获提升!
m-10306 + 1 + 1 谢谢@Thanks!
缘分你注定 + 1 + 1 我已回帖需要帮助~
fafey80 + 1 + 1 用心讨论,共获提升!
jinghan + 1 + 1 感谢您的宝贵建议,我们会努力争取做得更好!
孽小帅才 + 2 + 1 有没有直接获取宽带账号密码的
490619291 + 1 我很赞同!
yangou168OK + 1 + 1 谢谢@Thanks!
月六点年一倍 + 1 鼓励转贴优秀软件安全工具和文档!
mzone990 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
wuwutian + 1 + 1 热心回复!
qbaby + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
wokl168 + 1 + 1 谢谢@Thanks!
iNIC + 1 + 1 谢谢@Thanks!
zhgang908 + 1 + 1 喜欢你这股捣鼓的精神,必须加分
yelving + 1 我很赞同!
yjn866y + 1 + 1 我很赞同!
MNXYPRO + 1 + 1 谢谢@Thanks!
鸽吻与鸽舞 + 1 + 1 我很赞同!
poo4563 + 1 + 1 用心讨论,共获提升!
gongyong728125 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
cashover + 1 + 1 鼓励转贴优秀软件安全工具和文档!
SanadaYukimura + 1 + 1 谢谢@Thanks!
小小de账号 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
decker + 1 + 1 用心讨论,共获提升!
maobaozhi + 1 + 1 谢谢@Thanks!
大毛孩 + 1 + 1 厉害
gemingyu + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
ahaolee + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
tianzhongyushui + 1 用心讨论,共获提升!
N0LL + 1 + 1 谢谢@Thanks!
yukeju + 1 + 1 鼓励转贴优秀软件安全工具和文档!
youhen233 + 1 + 1 谢谢@Thanks!
zqguang3708 + 1 硬核啊
zswseu + 1 + 1 我很赞同!
q74330 + 1 谢谢@Thanks!
qj1225 + 1 + 1 谢谢@Thanks!
lcebear + 1 + 1 用心讨论,共获提升!
清炒藕片丶 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
指导员 + 1 我很赞同!
觇望 + 1 谢谢@Thanks!
ygwh + 1 + 1 谢谢@Thanks!
shyocean + 1 用心讨论,共获提升!
13299230064 + 1 谢谢@Thanks!
你正在输入 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
poisonbcat + 1 + 1 谢谢@Thanks!
不谙世事的骚年 + 1 + 1 我很赞同!
SD84617942 + 1 + 1 用心讨论,共获提升!
荆城六 + 1 鼓励转贴优秀软件安全工具和文档!
xuzhouwangchen + 1 + 1 热心回复!
atgused + 1 谢谢@Thanks!
hwolf1 + 1 + 1 大佬大佬
好人卡 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
pxcyp + 1 + 1 热心回复!
solly + 1 + 1 用心讨论,共获提升!
mdf3192078 + 1 + 1 用心讨论,共获提升!
MythSky + 1 + 1 我很赞同!
wudi2019 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
tomcath + 1 + 1 用心讨论,共获提升!
yjdh3344 + 1 我很赞同!
fei4chan + 1 + 1 我很赞同!
admsir + 1 + 1 用心讨论,共获提升!
Holdmyhand + 1 + 1 我很赞同!
wangsmile + 1 + 1 我很赞同!
22222 + 1 + 1 我很赞同!
jokin1999 + 1 + 1 谢谢@Thanks!
waltzofjack + 2 + 1 热心回复!
whc2001 + 2 + 1 想起之前研究某个没加密的游戏资源包,也是各种猜结构
mengsiyiren + 1 + 1 用心讨论,共获提升!
911061873 + 1 + 1 谢谢@Thanks!
123-wqy + 1 + 1 用心讨论,共获提升!
shinsbo + 1 + 1 谢谢@Thanks!
Mr程英俊 + 1 + 1 我很赞同!
cactusliu + 1 热心回复!
Lugia + 1 + 1 谢谢@Thanks!
JuncoJet + 3 + 1 所以?并不是AES咯?楼主666
djinni + 1 + 1 用心讨论,共获提升!
3xec3r + 1 + 1 热心回复!
dioderen + 1 + 1 谢谢@Thanks!
wc345ly + 1 + 1 我很赞同!
wapj2900958 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
smile1110 + 3 + 1 谢谢@Thanks!
蚯蚓翔龙 + 1 + 1 用心讨论,共获提升!
Arinikro + 1 + 1 谢谢@Thanks!
zzzain46 + 3 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
 楼主| yulinsoft 发表于 2019-8-11 17:19
A_Nuo 发表于 2019-8-11 17:02
这个年代怎么还有人用delphi?楼主为什么不使用更先进的语言?

语言只是工具,只要脑子里有算法,用什么语言只是语法和类库的不同。

免费评分

参与人数 8吾爱币 +9 热心值 +6 收起 理由
wxc0241 + 1 我很赞同!
joyfirex + 1 + 1 谢谢@Thanks!
itow + 1 + 1 我很赞同!
爱飞的猫 + 3 + 1 我很赞同!
luosir001 + 1 我很赞同!
Avenshy + 1 + 1 我很赞同!
小表弟 + 1 的确,兄台这句话说的不错
JuncoJet + 1 + 1 我很赞同!

查看全部评分

Delta_18 发表于 2020-12-8 15:51
本帖最后由 Delta_18 于 2021-1-25 03:40 编辑
zisain 发表于 2020-11-27 15:05
大神后期会更新解密工具吗???

[软件副本已停止下载]

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
Cappella + 1 + 1 谢谢@Thanks!

查看全部评分

Delta_18 发表于 2021-2-14 19:10
iwy0 发表于 2021-2-11 01:42
天邑768G的CFG文档可以用ROUTERPASSVIEW直接读取出来,但是这个ROUTERPASSVIEW只有WIN和MAC版,没有安卓版 ...

如果有这样的需求,倒不如自己买个好点的光猫换上。
A_Nuo 发表于 2019-8-11 17:02
这个年代怎么还有人用delphi?楼主为什么不使用更先进的语言?
ishine 发表于 2019-8-10 14:05
yulinsoft 发表于 2019-8-10 12:21
不是同一文件,在我的设备上,这个文件是明文的。配置文件压缩后至少30k左右。

F450 3.0 的配置   db_user_cfg.xml和db_default_cfg.xml加密方式一样

都解不开
雷帝彬 发表于 2020-2-25 12:57
ssnode 发表于 2020-2-23 18:17
解压密码:52pojie   解密不了 求帮助谢谢
设备类型GPON天翼网关(4口单频)
产品型号ZXHN F650(GPON ONU) ...

这个版本 配置文件你怎么拿到的?
caoxin 发表于 2019-9-6 19:35
yulinsoft 发表于 2019-8-11 17:19
语言只是工具,只要脑子里有算法,用什么语言只是语法和类库的不同。

pj是一门技术,也是艺术
jxf269 发表于 2019-8-10 19:46
一只大菜猫 发表于 2019-8-10 11:43
iptv弄不成无线的,第一不稳定,第二协议也不支持,电信的试过了,不行的

可以弄的,ssid端口绑定2.4G-2,然后无线设置那里ssid选择2.4G-2,勾选下面的使能框,然后盒子那边就可以发现IPTV的WIFI信号了,然后输入WIFI密码,IP地址那边选择dhcp下面选择md5+3ds认证(不知道有没有写错,我忘了),然后再输入你家IPTV的帐号密码。连上就可以用了。
以前我家的光猫不带wifi,我把itv的网线直接插路由器的lan口,光猫的1号口插路由器的的WLAN口,路由器根本就不用配置,直接就可以正常上网和看IPTV。电脑想看IPTV得手动配置IP,电脑上我不会搞那个md5+3ds的东西,所以在IPTV盒子里做了转发,最主要还是穷,没路由器是低端的。
山上石 发表于 2019-8-10 11:12
这个光猫有没有办法让有线电视变无线的?联通赠送的IPTV,竟然是要连网线的。。。但是不是宽带的网络,是IPTV的线路。难道没有无线的方案吗?
头像被屏蔽
 楼主| yulinsoft 发表于 2019-8-10 11:16
本帖最后由 yulinsoft 于 2019-8-10 11:19 编辑
山上石 发表于 2019-8-10 11:12
这个光猫有没有办法让有线电视变无线的?联通赠送的IPTV,竟然是要连网线的。。。但是不是宽带的网络,是IP ...

可以把光猫的wifi绑定到IPTV线路,然后盒子用wifi连接就行了,仅限于IPtv是DHCP协议的。你可以试试。
山上石 发表于 2019-8-10 11:35
yulinsoft 发表于 2019-8-10 11:16
可以把光猫的wifi绑定到IPTV线路,然后盒子用wifi连接就行了,仅限于IPtv是DHCP协议的。你可以试试。

我也是这个想法。不知道解密超级密码后,能不能开启这个功能。
一只大菜猫 发表于 2019-8-10 11:43
iptv弄不成无线的,第一不稳定,第二协议也不支持,电信的试过了,不行的
ishine 发表于 2019-8-10 12:07
本帖最后由 ishine 于 2019-8-10 12:10 编辑

F450 3.0 的配置文件还是解不开

db_default_cfg.zip (7.38 KB, 下载次数: 97)



免费评分

参与人数 2吾爱币 +1 热心值 +2 收起 理由
异灵摆渡 + 1 + 1 怎么把文件复制出来??
JuncoJet + 1 本来就解不开啊……

查看全部评分

头像被屏蔽
 楼主| yulinsoft 发表于 2019-8-10 12:21
本帖最后由 yulinsoft 于 2019-8-10 12:26 编辑
ishine 发表于 2019-8-10 12:07
F450 3.0 的配置文件还是解不开

不是同一文件,在我的设备上,这个文件是明文的。配置文件压缩后至少30k左右。
plmxs2017 发表于 2019-8-10 13:11
哪位大佬给演示一下电信的HS8145C的光猫提取管理员啊?
cfanpc 发表于 2019-8-10 13:15
一只大菜猫 发表于 2019-8-10 11:43
iptv弄不成无线的,第一不稳定,第二协议也不支持,电信的试过了,不行的

电信的可以,但是盒子和WIFI距离不要太远了,不然会卡顿
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-5-19 13:12

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表