1. 程式人生 > >eMule分析之ED2K連結格式的建立

eMule分析之ED2K連結格式的建立

ED2K連結格式的建立

2008年10月8日
  
基本ed2k連結 :       ed2k://|file|<檔名稱>|<檔案大小>|<檔案雜湊值>|/

eD2k片段雜湊值連結  ed2k://|file|<檔名稱>|<檔案大小>|<檔案雜湊值>|p=<片段雜湊值>|/

eD2k來源連結         ed2k://|file|<檔名稱>|<檔案大小>|<檔案雜湊值>|/|sources,<IP:埠>|/

eD2k主機連結         ed2k://|file|<檔名稱>|<檔案大小>|<檔案雜湊值>|/|sources,<主機名稱:埠>|/

eD2kHTTP 來源連結    ed2k://|file|<檔名稱>|<檔案大小>|<檔案雜湊值>|s=http://any.com/檔名稱|/

eD2k根雜湊值連結     ed2k://|file|<檔名稱>|<檔案大小>|<檔案雜湊值>|h=<根雜湊值>|/

以上這幾種格式網上經常見到


ed2k://|server|1.1.1.1|1986|/
ed2k://|serverlist|字串|/
這兩個格式我看了程式碼才知道,至於ed2k://|serverlist|字串|/這其中的字串是什麼,暫時還不清除,以後慢慢分析.

1 檔案雜湊值
將檔案分成每塊9.28M大小,一塊9.28M通過Hash演算法(md4)生成一個Hash值,然後根據所有的hash值,再次hash(md4)生成一個Hash值.最後這次計

算的hash值就是檔案hash值

2 P=片段雜湊值(HashSet)
如果檔案大於等於9.28M
每個9.28M的部分將產生一個32個字元的hash值,每32個字元之間用:號隔開

如果小於9.28M,那麼ED2K連結中的片段Hash值為空

3 h=根雜湊值(AICH)

這裡的是分割9.28M的塊,將9.28M(9500K)分成53塊,52塊180K和1塊140K,將所有180K或140K的塊的hash,包括校驗hash組成樹,連結中只有

AICHHash樹的根