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樹的根