吾愛破解 - LCG - LSG |安卓破解|病毒分析|破解軟件|www.dypczhxn.cn

 找回密碼
 注冊[Register]

QQ登錄

只需一步,快速開始

搜索
查看: 14501|回復: 201
上一主題 下一主題

[原創] 中興光貓配置文件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打開,邊看邊猜,這也是常規的解密方法,終于功夫不負有心人,經過幾天的猜解,終于摸清了文件的結構,寫出了解密程序,今天特來跟大家分享了下。



我們先來說文件結構。文件結構分為文件頭和數據體兩部分,數據體是分塊保存的。結構如下圖:


首先看文件頭,它由60個字節組成,包含文件的大小、解壓后大小、數據分塊大小和數據校驗值等,通過對比F650和F452兩個光貓的配置文件,除校驗值算法未知,這個結構基本如下:


最新更新:校驗值算法已經搞清,校驗值共8個字節,前四個字節是對每個zlib數據塊進行crc32校驗,初始為0,后一塊以前一塊的校驗值為初始值,全部校驗完成后寫入校驗值的前四個字節。然后對文件頭前24個字節進行crc32校驗,初始值為0,得出的結果保存到校驗值的后4個字節。到此這個文件的結構和算法全部搞清楚了,大家可以搞個寫回操作了。



需要說明的是,這個文件的數值保存都是采用 Big endian格式保存的,所以編程時要進行字節序的轉換才行。我編程用的是delphi,轉換字節序的函數如下:

[Delphi] 純文本查看 復制代碼
function Swap32(const Value: LongWord): LongWord;
begin
  Result := Swap(Word(Value)) shl 16 + Swap(Word(Value shr 16));
end;

下面我們來看看最重要的數據塊結構,它是有一個簡單的數據頭和zlib數據塊組成,數據頭中包含了數據解壓后的大小,壓縮塊的大小和下個數據塊的位置,所以我們只要找到第一個數據塊的位置,就可以循環找到下一個,直到最后一個,根據數據塊提供的信息進行解壓合并就行了。數據塊的結構如下:



通過圖片的分析,相信大家都能寫出解密程序,我先貼出我的解密算法,代碼可能比較爛,但確實能用,大家不要噴便是:
[Delphi] 純文本查看 復制代碼
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我會在附件中提供:



我寫的一個小工具中興光貓超密獲取工具也是用的這個算法。本文吾愛破解首發,轉載請注明出處,程序編譯再發布請保留作者信息。

中興配置文件解密.zip (275.12 KB, 下載次數: 387)



免費評分

參與人數 91吾愛幣 +89 熱心值 +82 收起 理由
yjn866y + 1 + 1 我很贊同!
MNXYPRO + 1 + 1 [email protected]
鴿吻與鴿舞 + 1 + 1 我很贊同!
poo4563 + 1 + 1 用心討論,共獲提升!
gongyong728125 + 1 + 1 鼓勵轉貼優秀軟件安全工具和文檔!
cashover + 1 + 1 鼓勵轉貼優秀軟件安全工具和文檔!
SanadaYukimura + 1 + 1 [email protected]
小小de賬號 + 1 + 1 鼓勵轉貼優秀軟件安全工具和文檔!
decker + 1 + 1 用心討論,共獲提升!
maobaozhi + 1 + 1 [email protected]
大毛孩 + 1 + 1 厲害
gemingyu + 1 歡迎分析討論交流,吾愛破解論壇有你更精彩!
ahaolee + 1 + 1 感謝發布原創作品,吾愛破解論壇因你更精彩!
tianzhongyushui + 1 用心討論,共獲提升!
N0LL + 1 + 1 [email protected]
yukeju + 1 + 1 鼓勵轉貼優秀軟件安全工具和文檔!
youhen233 + 1 + 1 [email protected]
zqguang3708 + 1 硬核啊
zswseu + 1 + 1 我很贊同!
q74330 + 1 [email protected]
qj1225 + 1 + 1 [email protected]
lcebear + 1 + 1 用心討論,共獲提升!
清炒藕片丶 + 1 感謝發布原創作品,吾愛破解論壇因你更精彩!
指導員 + 1 我很贊同!
覘望 + 1 [email protected]
ygwh + 1 + 1 [email protected]
shyocean + 1 用心討論,共獲提升!
13299230064 + 1 [email protected]
你正在輸入 + 1 + 1 感謝發布原創作品,吾愛破解論壇因你更精彩!
poisonbcat + 1 + 1 [email protected]
不諳世事的騷年 + 1 + 1 我很贊同!
SD84617942 + 1 + 1 用心討論,共獲提升!
荊城六 + 1 鼓勵轉貼優秀軟件安全工具和文檔!
xuzhouwangchen + 1 + 1 熱心回復!
atgused + 1 [email protected]
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 [email protected]
waltzofjack + 2 + 1 熱心回復!
whc2001 + 2 + 1 想起之前研究某個沒加密的游戲資源包,也是各種猜結構
mengsiyiren + 1 + 1 用心討論,共獲提升!
911061873 + 1 + 1 [email protected]
123-wqy + 1 + 1 用心討論,共獲提升!
shinsbo + 1 + 1 [email protected]
Mr程英俊 + 1 + 1 我很贊同!
cactusliu + 1 熱心回復!
Lugia + 1 + 1 [email protected]
JuncoJet + 3 + 1 所以?并不是AES咯?樓主666
djinni + 1 + 1 用心討論,共獲提升!
3xec3r + 1 + 1 熱心回復!
dioderen + 1 + 1 [email protected]
wc345ly + 1 + 1 我很贊同!
wapj2900958 + 1 + 1 鼓勵轉貼優秀軟件安全工具和文檔!
smile1110 + 3 + 1 [email protected]
蚯蚓翔龍 + 1 + 1 用心討論,共獲提升!
Arinikro + 1 + 1 [email protected]
zzzain46 + 3 + 1 歡迎分析討論交流,吾愛破解論壇有你更精彩!
qq31415920 + 1 + 1 我很贊同!tks
antiol + 3 + 1 我很贊同!
oxxo119 + 1 + 1 [email protected]
chen4321 + 1 我很贊同!
Max.tAop + 1 用心討論,共獲提升!
在那悠遠的穹 + 1 + 1 [email protected]
椎名牧 + 1 + 1 用心討論,共獲提升!
一只奇葩 + 1 + 1 我很贊同!
whdfog + 1 + 1 用心討論,共獲提升!
lookerJ + 1 + 1 [email protected]
笙若 + 1 + 1 [email protected]
xia8520 + 1 + 1 我很贊同!
mnho + 1 感謝發布原創作品,吾愛破解論壇因你更精彩!
zhu0598 + 1 + 1 [email protected]
車俊 + 1 + 1 我很贊同!
少林大蝦 + 1 [email protected]
tinor + 1 鼓勵轉貼優秀軟件安全工具和文檔!
zhczf + 1 + 1 我很贊同!
LuChao + 1 + 1 我很贊同!
liphily + 1 小心中興給你郵寄律師函
山上石 + 1 用心討論,共獲提升!
ywqn + 1 + 1 [email protected]

查看全部評分

發帖前要善用論壇搜索功能,那里可能會有你要找的答案或者已經有人發布過相同內容了,請勿重復發帖。

推薦
 樓主| yulinsoft 發表于 2019-8-11 17:19 <
A_Nuo 發表于 2019-8-11 17:02
這個年代怎么還有人用delphi?樓主為什么不使用更先進的語言?

語言只是工具,只要腦子里有算法,用什么語言只是語法和類庫的不同。

免費評分

參與人數 6吾愛幣 +7 熱心值 +5 收起 理由
itow + 1 + 1 我很贊同!
jixun66 + 3 + 1 我很贊同!
luosir001 + 1 我很贊同!
000000 + 1 + 1 我很贊同!
小表弟 + 1 的確,兄臺這句話說的不錯
JuncoJet + 1 + 1 我很贊同!

查看全部評分

推薦
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盒子里做了轉發,最主要還是窮,沒路由器是低端的。
5#
山上石 發表于 2019-8-10 11:12
這個光貓有沒有辦法讓有線電視變無線的?聯通贈送的IPTV,竟然是要連網線的。。。但是不是寬帶的網絡,是IPTV的線路。難道沒有無線的方案嗎?
6#
 樓主| yulinsoft 發表于 2019-8-10 11:16 <
本帖最后由 yulinsoft 于 2019-8-10 11:19 編輯
山上石 發表于 2019-8-10 11:12
這個光貓有沒有辦法讓有線電視變無線的?聯通贈送的IPTV,竟然是要連網線的。。。但是不是寬帶的網絡,是IP ...

可以把光貓的wifi綁定到IPTV線路,然后盒子用wifi連接就行了,僅限于IPtv是DHCP協議的。你可以試試。
7#
山上石 發表于 2019-8-10 11:35
yulinsoft 發表于 2019-8-10 11:16
可以把光貓的wifi綁定到IPTV線路,然后盒子用wifi連接就行了,僅限于IPtv是DHCP協議的。你可以試試。

我也是這個想法。不知道解密超級密碼后,能不能開啟這個功能。
8#
一只大菜貓 發表于 2019-8-10 11:43
iptv弄不成無線的,第一不穩定,第二協議也不支持,電信的試過了,不行的
9#
ishine 發表于 2019-8-10 12:07
本帖最后由 ishine 于 2019-8-10 12:10 編輯

F450 3.0 的配置文件還是解不開

db_default_cfg.zip (7.38 KB, 下載次數: 11)



免費評分

參與人數 2吾愛幣 +1 熱心值 +2 收起 理由
異靈擺渡 + 1 + 1 怎么把文件復制出來??
JuncoJet + 1 本來就解不開啊……

查看全部評分

10#
 樓主| yulinsoft 發表于 2019-8-10 12:21 <
本帖最后由 yulinsoft 于 2019-8-10 12:26 編輯
ishine 發表于 2019-8-10 12:07
F450 3.0 的配置文件還是解不開

不是同一文件,在我的設備上,這個文件是明文的。配置文件壓縮后至少30k左右。
11#
plmxs2017 發表于 2019-8-10 13:11
哪位大佬給演示一下電信的HS8145C的光貓提取管理員啊?
12#
cfanpc 發表于 2019-8-10 13:15
一只大菜貓 發表于 2019-8-10 11:43
iptv弄不成無線的,第一不穩定,第二協議也不支持,電信的試過了,不行的

電信的可以,但是盒子和WIFI距離不要太遠了,不然會卡頓
13#
ishine 發表于 2019-8-10 14:05
yulinsoft 發表于 2019-8-10 12:21
不是同一文件,在我的設備上,這個文件是明文的。配置文件壓縮后至少30k左右。

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

都解不開
您需要登錄后才可以回帖 登錄 | 注冊[Register]

本版積分規則 警告:禁止回復與主題無關內容,違者重罰!

快速回復 收藏帖子 返回列表 搜索

RSS訂閱|小黑屋|聯系我們|吾愛破解 - LCG - LSG ( 京ICP備16042023號 | 京公網安備 11010502030087號 )

GMT+8, 2019-10-17 15:05

Powered by Discuz!

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表
现在靠网络挣钱的方法