破解無名小站下載相簿照片作者: 井民全前言近幾年來, 網路相簿已經 ...

debut.cis.nctu.edu.tw

破解無名小站下載相簿照片作者: 井民全前言近幾年來, 網路相簿已經 ...

破 解 無 名 小 站 下 載 相 簿 照 片

作 者 : 井 民 全

前 言

近 幾 年 來 , 網 路 相 簿 已 經 成 為 一 個 流 行 的 趨 勢 . 數 位 相 機 不 斷 的 推 陳 出 新 , 幾 乎

大 家 都 人 手 一 台 數 位 相 機 . 隨 著 相 機 性 能 與 親 和 性 的 提 升 , 過 去 需 要 使 用 掃 瞄 機

才 可 以 把 照 片 數 位 化 存 檔 的 手 續 , 現 在 只 要 簡 單 的 傳 輸 線 或 者 是 讀 卡 機 , 就 可 以

把 美 美 的 相 片 儲 存 到 到 電 腦 中 , 並 放 到 網 路 上 與 大 家 分 享 . 用 相 片 寫 日 記 並 且 把

出 遊 的 紀 錄 , 藉 由 網 路 相 簿 與 大 家 一 起 分 享 並 且 參 與 討 論 , 讓 我 們 感 覺 到 生 活 在

現 代 的 美 好 與 便 利 .

目 前 比 較 常 見 的 網 路 相 簿 服 務 公 司 有

國 外 的 Flickr Photo Sharing

網 址 : http://www.flickr.com/

( 版 權 : 這 張 照 為 flickr 公 開 首 頁 內 容 , 版 權 屬 於 該 公 司 )

國 內 無 名 小 站 網 路 相 簿

網 址 : http://www.wretch.cc/album/


Hinet 提 供 的 Xuite 相 簿 服 務

網 址 : http://photo.xuite.net/

( 版 權 : 這 張 照 為 無 名 小 站 公 開 首 頁 內 容 , 版 權 屬 於 該 公 司 )

( 版 權 : 這 張 照 片 為 Xuit 公 開 首 頁 內 容 , 版 權 屬 於 該 公 司 )


使 用 網 路 相 簿 久 了 , 我 們 會 遇 到 一 些 很 美 的 照 片 並 且 很 想 收 藏 起 來 . 例 如 : 我 希

望 收 集 某 位 明 星 的 照 片 . 很 快 地 你 會 發 現 , 國 內 的 網 路 相 簿 公 司 ( 無 名 小 站 , Xuite)

都 不 希 望 你 這 麼 做 . 並 且 設 下 重 重 保 護 . 當 我 在 開 發 " 寶 貝 照 片 瀏 覽 器 "[1] 的 新

功 能 時 , 要 加 入 網 路 照 片 存 取 無 名 相 簿 的 功 能 時 就 會 發 生 問 題 . 直 接 用 程 式 存 取

相 片 就 會 發 生 存 取 錯 誤 的 訊 息 . 國 內 的 網 路 相 簿 公 司 逼 你 一 定 要 使 用 瀏 覽 器 用

那 非 常 陽 春 的 照 片 輪 播 系 統 , 觀 賞 你 自 己 的 圖 片 . 國 外 的 Flickr 並 不 會 反 對 你

下 載 他 們 收 集 的 照 片 , 相 反 的 Flickr 還 提 供 應 用 程 式 介 面 (API)[2], 鼓 勵 使 用 者

利 用 程 式 設 計 技 巧 開 發 與 發 掘 相 關 的 應 用 程 式 [ 註 1]. 現 在 已 經 有 許 多 相 關 的 應

用 被 寫 出 來 了 . 例 如 Judson 先 生 所 撰 寫 的 Flickr 螢 幕 保 護 程 式 [3], 就 是 一 個 明

顯 的 例 子 .

註 1: Flickr API 提 供 了 各 種 程 式 語 言 的 開 發 介 面 .

包 括 ActionScript, Delphi, Java, .Net, Perl, PHP, PHP5, Python, Ruby 等 程 式 語

言 . 詳 情 請 到 Flickr API 官 方 網 站 [2].

怎 麼 把 照 片 從 無 名 網 路 相 簿 中 抓 下 來 呢

Flickr 雖 然 有 提 供 API 供 使 用 者 批 次 抓 圖 , 但 畢 竟 是 外 國 的 網 站 . 要 註 冊 與 上

傳 都 需 要 懂 英 文 的 人 才 能 上 傳 照 片 , 對 於 國 內 廣 大 的 使 用 者 , 還 是 會 有 點 隔 閡 .

在 國 內 無 名 小 站 應 該 是 最 大 的 網 路 相 簿 服 務 廠 商 , 有 很 多 人 都 使 用 無 名 當 作 他

們 的 照 片 日 記 場 所 . 如 果 不 讓 人 抓 圖 備 份 , 甚 至 是 批 次 抓 圖 , 那 就 太 不 盡 人 情 了 .

據 我 所 知 , 網 路 上 已 經 有 軟 體 可 以 批 次 的 抓 無 名 的 圖 . 但 是 很 抱 歉 他 們 都 沒 有 告

訴 我 們 他 們 是 怎 麼 做 的 . 這 似 乎 是 一 個 秘 密 .

有 些 事 情 我 們 就 是 喜 歡 自 己 動 手 做 !

好 了 , 現 在 我 們 來 看 看 , 無 名 小 站 的 秘 密 吧 . 我 們 希 望 把 不 能 抓 圖 的 秘 密 解 開 ,

讓 大 家 的 創 意 不 會 被 廠 商 所 限 制 . 最 後 我 們 會 讓 你 有 能 力 自 己 寫 一 個 批 次 抓 圖

的 軟 體 .

準 備 好 了 嗎 火 車 要 開 了 !!

假 設 下 面 的 一 個 情 況 .

我 們 希 望 能 存 取 某 一 位 朋 友 公 開 在 無 名 的 照 片 , 我 們 希 望 能 夠 把 照 片 收 集 起 來 ,

甚 至 將 來 寫 一 個 自 動 解 析 的 程 式 , 將 某 個 朋 友 或 某 個 群 組 的 照 片 , 一 次 下 載 一 併

收 藏 .

最 簡 單 的 想 法 就 是 :


Step 1. 直 接 取 得 想 要 下 載 圖 片 的 網 址 .

Step 2. 使 用 網 路 串 流 相 關 的 I/O 程 式 , 直 接 存 取 該 圖 片 位 置 並 且 下 載 圖 檔 .

以 無 名 相 簿 中 midastouch's Album 為 例 , 我 們 想 把 下 面 這 張 無 名 照 片 顯 示 網 頁

的 照 片 存 檔 .

( 網 址 : http://www.wretch.cc/album/show.phpi=midastouch&b=19&f=1823158616&p=2)

( 這 張 照 片 屬 於 無 名 公 開 照 片 , 版 權 屬 於 該 所 有 人 )

我 們 立 刻 會 發 現 不 能 存 檔 . 無 名 的 保 護 機 制 讓 我 們 不 能 把 照 片 存 到 自 己 的 硬 碟

中 .

無 名 的 保 護 機 制

瀏 覽 器 保 護 :

使 用 者 無 法 按 下 右 鍵 做 另 存 新 檔 的 動 作 , 進 而 防 止 使 用 者 存 檔 .

我 們 的 處 理 :

很 簡 單 只 要 把 瀏 覽 器 的 執 行 JavaScript 選 項 關 掉 就 可 以 了 .

.


選 擇 Property 可 以 得 知 圖 檔 的 位 置


HTTP 通 訊 協 定 封 包 保 護 :

若 你 想 要 用 程 式 批 次 的 把 照 片 存 檔 , HTTP 通 訊 協 定 封 包 保 護 會 讓 你 無

法 如 願 , 無 名 連 線 伺 服 器 , 會 檢 查 你 上 一 次 來 的 網 頁 , 進 行 檢 查 .

我 們 用 瀏 覽 器 直 接 打 入 圖 片 網 址 , 藉 以 模 擬 程 式 自 動 擷 取 的 情 況 , 我 們 馬 上 就 會

發 現 , 無 名 小 站 拒 絕 我 們 直 接 存 取 照 片 .

我 們 的 處 理 :

伺 服 器 會 檢 查 來 源 我 們 就 給 他 來 源 . 直 接 修 改 封 包 的 來 源 標 頭 記 錄 .

Referer 標 頭 修 改 為 該 張 圖 片 的 無 名 顯 示 網 頁 , 欺 騙 無 名 伺 服 器 . 以 目 前 這 個

例 子 而 言 ,

網 址 為 :

http://www.wretch.cc/album/show.phpi=midastouch&b=19&f=1823158616&p=2

如 此 一 來 , 就 可 以 取 得 美 美 照 片 的 圖 檔 資 料 了 , 接 著 就 是 存 檔 的 動 作 . 於 是 就 大

功 告 成 了

程 式 要 怎 麼 寫 呢

這 是 重 點 , 我 們 已 經 知 道 原 理 了 , 現 在 進 行 程 式 碼 的 實 作 . 寫 程 式 的 重 點 是 觀 念 ,

而 不 是 程 式 語 言 . 不 管 你 使 用 哪 一 種 程 式 語 言 , C#, java, C++ 都 沒 問 題 , 只 要 注


意 一 個 重 點 , 那 就 是 有 提 供 支 援 網 際 網 路 通 訊 協 定 的 程 式 庫 . 下 面 是 Java 與

C# 的 例 子 . 我 想 C++ ( 微 軟 的 MFC 或 BCB 的 VCL) 就 留 給 各 位 當 作 業 吧 !

Java 的 範 例 : 這 個 程 式 會 把 我 們 要 存 取 的 圖 檔 , 存 到 C:\t.jpg 中 .

C# 的 範 例 : 這 個 程 式 會 把 我 們 要 存 取 的 圖 檔 , 存 到 專 案 目 錄 的 a.jpg 中 .


很 簡 單 吧 .

各 位 現 在 就 可 以 把 電 腦 打 開 試 試 看 , 把 程 式 輸 入 進 去 . 你 就 可 以 在 硬 碟 中 , 直 接

取 得 圖 檔 了 .

單 張 圖 檔 已 經 能 成 功 的 利 用 程 式 下 載 , 那 麼 我 們 要 怎 麼 進 行 批 次 的 下 載 呢

其 實 關 鍵 部 分 已 經 完 成 , 我 們 只 要 解 析 出 所 有 要 下 載 照 片 的 位 置 以 及 無 名 顯 示

該 照 片 的 顯 示 網 址 . 填 入 上 面 的 程 式 就 可 以 批 次 的 下 載 照 片 了 .

詳 細 的 解 說 如 下 :

如 同 身 份 證 字 號 的 排 列 順 序 有 一 定 的 規 則 . 如 第 一 個 字 母 對 應 的 是 你 的 出 生 地 ,

第 二 個 數 字 與 你 的 性 別 有 關 (1 代 表 男 性 , 2 代 表 女 性 ).

其 實 我 們 在 無 名 站 上 瀏 覽 照 片 的 網 址 也 是 有 規 則 的 . 以 今 天 的 照 片 為 例 子 .

我 們 在 Referer 填 入 的 無 名 照 片 顯 示 網 址 為 ,

http://www.wretch.cc/album/show.phpi=midastouch&b=19&f=1823158616&p=2

網 址 的 解 析 如 下 :

所 以 如 果 我 們 想 要 把 下 面 19 號 相 簿 的 圖 全 部 抓 回 來 的 話 .

( 網 址 : http://www.wretch.cc/album/album.phpid=midastouch&book=19)


( 這 張 照 片 屬 於 無 名 公 開 照 片 , 版 權 屬 於 該 所 有 人 )

那 麼 我 們 的 處 理 策 略 大 致 上 需 要 三 個 步 驟 : 1. 取 得 總 共 有 多 少 張 照 片 . 2. 得 知 無

名 顯 示 照 片 網 頁 的 網 址 資 訊 3. 得 知 該 顯 示 照 片 的 位 置 .

最 後 使 用 程 式 自 動 填 入 顯 示 照 片 網 頁 的 網 址 與 照 片 真 實 位 置 , 批 次 的 把 整 個 相

簿 全 部 抓 回 來 存 檔 .

Step 1: 取 得 總 共 有 多 少 張 照 片

這 個 資 訊 , 我 們 可 以 解 析 19 號 相 簿 的 html 檔 案 , 其 中 side 類 別 表 格 的 數

量 .



< 略 >


( http://www.wretch.cc/album/album.phpid=midastouch&book=19 網 頁 原 始 碼 片 段 )

Step 2: 得 知 無 名 顯 示 照 片 網 頁 的 網 址 .

由 slide 表 格 內 容 的 分 析 , 我 們 可 以 知 道 顯 示 這 張 照 片 的 無 名 網 站 網 址 .

以 目 前 的 例 子 來 看 , 顯 示 照 片 網 址 的 資 料 列 在 接 下 來 的 標 籤 中 .


接 著 , 就 是 組 合 成 顯 示 照 片 網 頁 的 網 址

等 一 下 我 們 就 是 要 把 這 個 網 址 , 填 到 我 們 程 式 的 Referer 欄 位 中 .

Step 3: 得 知 每 張 照 片 的 位 置

接 下 來 , 解 析 剛 剛 的 顯 示 照 片 的 網 址 可 以 得 知 我 們 想 要 照 片 的 位 置 .

方 法 是 我 們 在 顯 示 照 片 網 頁 原 始 碼 上 , 搜 尋 image id 為 DisplayImage 標

籤 .

接 著 就 是 應 用 我 們 上 面 教 大 家 的 方 式 , 把 圖 抓 回 來 .

我 想 你 讀 到 這 裡 , 應 該 有 能 力 可 以 寫 出 一 個 自 動 批 次 下 載 無 名 小 站 的 程 式 . 因 為

篇 幅 的 關 係 , 這 就 留 給 各 位 當 作 第 二 個 作 業 吧 .

結 論 :

這 次 我 們 介 紹 了 一 個 簡 單 的 照 片 瀏 覽 器 抓 圖 程 式 , 除 了 瞭 解 無 名 小 站 的 處 理 方

式 也 知 道 了 國 外 網 路 照 片 服 務 Flickr 公 司 的 策 略 . 有 很 多 新 的 想 法 就 是 為 了 解

決 問 題 , 也 就 是 處 理 不 方 便 而 提 出 來 的 . 現 在 廣 而 流 行 的 網 路 相 簿 就 是 其 中 的 一

個 例 子 . Google Earth 也 是 一 個 例 子 .

一 個 創 意 的 點 子 也 可 以 孕 生 出 更 多 的 創 意 ,

例 如 在 Google Earth 上 面 提 供 了 國 家 地 理 頻 道 所 提 供 的 知 識 標 籤 , 讓 你 不 僅 知

道 真 實 的 地 理 位 置 , 還 可 以 得 到 該 地 理 資 訊 的 相 關 知 識 .

( 照 片 取 得 網 址 : National Geographic Data Layers

http://bbs.keyhole.com/ubb/showthreaded.php/Cat/0/Number/115465/an/0/page/0#115465)


在 Google Earth 上 已 經 有 超 過 4000 家 飯 店 的 登 錄 , 你 可 以 藉 由 這 項 服 務 直 接

前 往 預 訂 房 間 .

我 總 是 認 為 使 用 甚 麼 樣 的 技 術 不 是 問 題 , 重 點 在 於 你 解 決 了 甚 麼 樣 的 問 題 . 人 們

不 會 在 意 你 使 用 的 是 C++ 還 是 Java 或 .Net, 人 們 在 意 的 是 你 的 工 作 為 他 們 的

生 活 帶 來 了 甚 麼 .

當 我 們 獨 自 一 人 走 在 林 道 享 受 芬 多 精 時 , 你 會 不 會 想 知 道 身 邊 的 植 物 是 甚 麼

現 在 大 部 分 手 機 都 有 照 相 的 功 能 , 這 時 候 有 一 個 自 動 植 物 辨 識 機 器 那 有 多 好 .

你 有 沒 有 想 過 , 當 我 們 走 進 森 林 深 處 , 耳 邊 傳 來 美 妙 的 鳥 叫 聲 , 晚 上 陣 陣 的 蛙 類

叫 聲 , 你 會 不 會 想 知 道 這 是 甚 麼 鳥 , 這 是 甚 麼 青 蛙 在 叫

走 在 宜 蘭 五 結 鄉 的 山 上 與 朋 友 一 起 觀 賞 螢 火 蟲 時 , 走 在 山 上 的 小 路 一 起 回 家 時 ,

抬 頭 滿 天 的 星 斗 . 你 會 不 會 想 知 道 那 是 甚 麼 星 座

留 意 身 邊 的 事 物 , 只 要 把 你 認 為 不 方 便 的 地 方 寫 下 來 與 朋 友 討 論 新 的 點 子 . 或 許

下 一 個 充 滿 創 意 的 應 用 , 就 會 在 台 灣 出 現 .

參 考 資 料 :

[1] 寶 貝 照 片 瀏 覽 器 網 址 :

http://debut.cis.nctu.edu.tw/~ching/Course/Look!Me/page/Look!Me_Chinese.htm

[2] Flickr API 官 方 網 站 網 址 : http://www.flickr.com/services/api/

[3] Flickr 螢 幕 保 護 程 式 網 址 :http://www.wackylabs.net/flickr/flickr-screensaver/

More magazines by this user
Similar magazines