網易相簿列表分析

2021-04-12 18:50:01 字數 4663 閱讀 8158

我是通過抓包和檔案呼叫跟蹤分析,來摸清網易相簿的列表方式的。

值得注意的是,網易相簿的相片位址列表並不是由伺服器處理後再發過來的,而是通過指令碼控制,伺服器只是發個框架和一些控制指令碼過來~~~

用 firefox 2.0 + jsview 瀏覽茜茜的網易相簿 http://photo.163.com/photos/docrack/

再單擊 jsview 的工作列圖示,發現以下js 列表: ²

albumsinfo.php?user=docrack ²

browser.js ²

global.consts.js ²

global.urls.js ²

global.utils.js ²

paginate.js ²

pholders.consts.js ²

pholders.html.js ²

pholders.js ²

pholders.utils.js ²

utils.js ²

photo_ad.js ²

v51,js

在這個 js 指令碼列表中,帶引數那個最可疑,那就先開啟他來看看:

albumsinfo.php?user=docrack

內容如下:

var hasalbum = true;

var hascover = true;

var galbumsinfo = {};

var galbumsids =[106175945,106179880];

var datas = [["705.2449719279.1.450x600",1,9,"

我喜歡的... ","這可是我喜歡的.."]

,["0.0.0.130x98",2,31,"

也是我喜歡的... ","也是我喜歡的哦... "]];

for(var i=0; i

galbumsinfo[galbumsids[i]] = datas[i]; }

datas = null;

很好,和預想中的一樣,這檔案中包含有相簿目錄的整體資訊,我分析得到:

²粗體部分是相簿目錄的

id,一共有兩個,

²斜體部分,是第乙個目錄的介紹資訊

~~~現在解析一下目錄介紹資訊:

²//封面

²705

封面相片所在伺服器

sid²2449719279

封面相片

id,如果為空,就表示是加密相簿

²1                    封面相片相片字尾名型別,

1,jpg;2,gif,如果為空,就表示是加密相簿

²450x600

封面相片原始尺寸,如果為空,就表示是加密相簿

²//簡介

²1                    相簿許可權,

0 私有;1,公開;2,加密

²9                    相簿中相片總數

²我喜歡的

..          相簿名稱

²這可是我喜歡的

..    相簿簡介

就是通過本地指令碼來獲取伺服器上相簿資訊的。開啟

global.consts.js 相面這句話,一看就知道:

上面的705 就是其中的 sid ,即伺服器序號。

從上面綜合,從

使用者名稱

就能獲取指定使用者的相簿資訊

~~~http://photo.163.com/js/albumsinfo.php?user=使用者名稱」就能獲取獲取當前使用者的相簿目錄資訊了,這就有 neteasealbum 類的 getalbums 來控制獲取,由getdate 來完成網路操作;再有 imports 函式來解析相簿目錄列表資訊。就可以完成相簿目錄列表的獲取了。具體看下面的 neteasealbum 類介紹。

點入第乙個沒有加密的相簿,也就是

id 為 106175945 的相簿,這回檢視到的 js 指令碼更多了,但還是帶引數那個有意思。

photosinfo.php?user=docrack&aid=106175945

明顯,user 後面跟使用者名稱

aid 後面跟相簿

id開啟看看:

var hasphoto = true;

var hascover = true;

var haspermission = true;

var galbuminfo =;

var gphotosinfo = {};

var gphotosids = [2449722584,2449722395,2449721659,2449721495,2449721208,2449720964,

2449719654,2449719514,2449719279];

var datas = [[705,1,"470x326","bb_1 "],[705,1,"450x600","bb_2 "],[705,1,"425x562","bb_3 "],[705,1,"404x579","bb_4 "],[705,1,"404x539","bb_5 "],[705,1,"640x640","aa_1 "],[705,1,

"400x533","aa_2 "],[705,1,"450x600","aa_3 "],[705,1,"450x600","aa_4 "]];

for(var i=0; i

gphotosinfo[gphotosids[i]] = datas[i]; }

datas = null;

我的分析如下:

²粗體部分就是說包含的全部相片的

id 了。

²斜體部分就是一張相片的介紹資訊

²705

相片所在伺服器

sid²1                    封面相片相片字尾名型別,

原始尺寸

²bb_1

相片標題

從上面綜合,從

使用者名稱&aid=相簿id

就能獲取指定使用者的指定相簿內的相片信。

http://photo.163.com/js/photosinfo.php?user=使用者名稱&aid=相簿id」就能獲取獲取當前使用者的指定相簿內的相片資訊了,這就有 neteasealbum 類的 getalbums 來控制獲取,由getdate 來完成網路操作;再有 albumsinfo 類的imports 函式來解析相簿內的相片資訊。就可以完成相簿內的相片資訊的獲取了。具體看下面的 neteasealbum 類介紹。

開啟第一張相片,檢視它的鏈結

看看就明白了,

使用者名稱/相簿id/id.jpg

使用者名稱/相簿id/__scale__1_id.jpg

知道這些,就可以使用

photosinfo 類中的 buildurl 來重建相片真實位址和相片縮圖位址了。

一下內容是通過使用

wsockexper 抓包分析得的。

對於加密的相簿,有點麻煩,大概如下:

先向伺服器

post 密碼到:

http://photo.163.com/photos/使用者名稱

/相簿id/

資料格式如下:

checking=1&pass=

密碼&submit=%d1%e9%d6%a4

如果密碼正確,伺服器返回乙個

cookie,其內容如下:

halforder=41826293c391c246f4566b04807f05f8d

然後,再向伺服器傳送這段資訊,以及要提取的相片列表,此時將返回那個加密相簿的全部內容了,如果沒有傳送

cookies ,那麼取回的 js 指令碼,裡面的資料段是空的。

以上驗證過程,是通過

neteasealbum 類的 decrypt 函式來實現。

對於登陸,也需要使用到

cookie ,過程如下。

先向伺服器

post 使用者名稱和密碼到:

資料格式如下:

username=

使用者名稱&password=密碼&

如果使用者名稱和密碼正確,伺服器返回四個

cookie,其內容如下:

ntes_sedd=(hash值)

nttease_ssn=

使用者名稱

nttease_adv=(hash值)

vrsjssionid=(hash值)

然後,再向伺服器傳送這段資訊,以及要提取的相簿目錄列表,此時將返回全部相簿的全部內容了,

以上登陸過程,是通過

neteasealbum 類的 login 函式來實現。

neteasealbum 類以及其他子類的設計框架了。 

相簿磁碟快取分析

相簿磁碟快取主要是imgcache.0,imgcache.1,imgcache.idx三個檔案 其中imgcache.idx位索引檔案,其餘兩個位資料檔案 存放縮圖內容 索引檔案格式 magic max entries max bytes active region active entries a...

20 網易新聞列表

本文是在學習css時做的學習筆記,所有筆記內容為 css學習筆記 仿寫如上所示列表 en utf 8 meta title stylesheet href css reset.css 統一去除下劃線 awidth 300px height 358px 設定居中 margin 0px auto 設定上...

網易相簿 停止新使用者註冊 5月8日停止運營

techweb 3月7日訊息,網易相簿日前發布公告稱,2019年3月6日起,網易相簿 將會停止新使用者註冊 vip充值服務,並且關閉 部分功能 2019年5月8日,網易相簿將會全面停止運營,關閉伺服器。據悉,網易相簿於2003年推出,截至2009年3月31日,網易相簿總使用者數超過3600萬,上傳相...