這不是教學文,這是一篇針對 LINE 軟體架構的檄文。
起因:一場原本很單純的備份
目標很簡單:我要備份某個工作群組裡的 3000 多張照片。
這些是重要的工作資產。
但 LINE 電腦版把圖片鎖死在 %AppData%\Local\LINE\Cache 裡,變成一堆打不開的 .eimg 垃圾。
正常的軟體會給你「匯出」按鈕。
LINE 給你的是 AES 加密,和一堆只有他們工程師才看得懂的私有格式。
為什麼要在本機加密?
這是我最不爽的一點。
檔案都在我硬碟了,為什麼還要加密?
只有一個原因:築牆 (Walled Garden)。
他們不希望你輕易把資料搬走。這不是為了資安,這是為了綁架使用者。
一旦你依賴它傳輸工作檔案,你就被鎖死在這個生態系裡。
過程:從暴力破解到看見真相
我不信邪。
既然螢幕上能顯示,記憶體裡就一定有鑰匙。
我對 LINE 進行了 Memdump(記憶體轉儲),寫了 Python 腳本去暴力枚舉。
結果發現了什麼?
低級錯誤:有 1892 個檔案竟然共用同一組 IV (Initial Vector)。在密碼學上,這跟把鑰匙插在門上沒兩樣。
抓到 Key 了:電腦跑了一小時,我真的挖出了那把 32 bytes 的 AES Key。
然後呢?
我解開了檔案的頭(JPEG Header FF D8 出現了),但後面全是亂碼。
絕望的「瑞士起司」加密法
深入分析 Hex 後,我氣笑了。
這根本不是標準的 AES 加密。
有些檔案解不開,但我在檔案中間發現了「裸奔」的明文 JPEG。
這意味著 LINE 的加密邏輯是:
- 檔頭:加密(裝模作樣)
- 中間:隨便塞張沒加密的縮圖(為了預覽快一點)
- 本體:用了某種非標準的模式(可能是分段加密、Chunked CBC 或 CTR)鎖起來
這叫安全嗎?這叫髒 (Dirty)。
這就像買了個保險箱,結果側面被人拿電鑽開了好幾個洞,只為了方便看裡面有沒有東西。
結論:最噁心的不是爛,是貪
這次逆向工程讓我看清了 LINE 的本質。
我不反對加密,我反對的是「無法匯出」。
我不反對收費,我反對的是「製造問題再賣解決方案」。
虛假的安全性
你說為了安全所以不給雲端同步?
它又不是 Signal。
Signal 是為了極致隱私才犧牲便利,伺服器不留痕跡。但 LINE 靠賣貼圖、賣廣告維生,數據早就被扒光了,這時候才拿「安全」當擋箭牌來說不能同步?
勒索式的備份
Telegram 和 Discord 早就把多裝置同步當成基本功能。
LINE 卻到了 2026 年才打算推出完整的備份方案,而且還要付費。
先把使用者的資料困在爛架構裡,造成備份困難,然後再跟你說:「付錢我就幫你備份喔。」
這不叫服務,這叫勒索。
技術債與歧視
IV Reuse、部分加密、奇怪的 Container 格式。
還有那個死不出 Linux 版的傲慢。
這是一個縫合怪,完全無視電腦使用者的檔案管理需求。
Action Items
我不打算再花時間去猜它的加密模式了,ROI 太低。
我已經備份了所有原始的 .eimg 檔案。
它們現在躺在我的冷儲存硬碟裡,等待哪天有更閒的高手發布解密工具,或是等待哪天我心血來潮再去逆向它的 Assembly。
給所有人的建議:LINE PC 版是一個「不可信任的資料容器」。
工作用的圖檔,落地後請立刻另存。
不要相信它的備份機制,不要把這裡當成資料庫。
趕羚羊。
