大概有三周沒寫週記了。經過了三周的沈澱後,我決定把週記轉為週刊的形式發布。
音樂

還是一樣聽一些 Drone, Rock 還有 Queens of the Stone Age :D
文章
音樂
最近忽然想起來 stu sis 這個名字,其真實身份依舊沒有曝光。已經很久沒有追蹤他了,查了一下,看起來他又從互聯網上消失了。
以前筆者對他的印象只有「在個板打分、會在別人作品下很有梗的留言」的印象,這篇文章用「像在和老朋友聊天的方式」帶我們更深入了解史嘟大,像是他對待評分的態度、他的生活、他的過去等等。
就算看完我們還是不知道他的真實身份,可卻已能大致鉤勒出史嘟大的生活。以前覺得好神秘的評論家,其實跟我們一樣,就只是一個,在白天做服務業,晚上開始在互聯網上衝浪的普通人。但我也希望他永遠保持匿名,這樣才好玩。
資安
逆向工程
一個簡單到不能再簡單的 Crack Me …
$ strings nasm_crack
Enter your password:
Correct!
Wrong!
supersecret
write.asm
msg1
len1
correct
lenc
wrong
lenw
passwd
input
correct_func
__bss_start
_edata
_end
.symtab
.strtab
.shstrtab
.text
.data
哪個是密碼一看就知道了吧 ;)
不過作者以此為例,帶讀者使用 Ghidra 和閱讀組合語言。也是很不錯的點子。
路由器
Router security study 2025: Half of internet users ‘leaving the door open’ to hackers
各位有透過 Web Interface 更新過家裡路由器的韌體嘛?如果沒有的話,建議現在馬上就去檢查!如果路由器是 ISP 直接提供的設備,那通常都有自動更新的功能。可如果沒有,建議重製路由器以後再更新韌體。
根據這篇研究報告,47% 的使用者從未調整過路由器的出廠設置、81% 的使用者未曾更改路由器管理員密碼、84% 的使用者從未更新過路由器的韌體,而其中有 73% 的人並不清楚「為什麼」需要去調整這些安全設定。
也就是說,就算官方為韌體推出了新的修復補丁,只要沒有任何自動更新的手段,就會有 84% 的使用者,因為缺乏相關意識,而讓漏洞繼續存在裝置上,任人宰割。
所以還在等什麼?快去關心家裡的路由器吧!
Router Emulation - Reproducing a PoC of a CVE through ASUS Firmware Emulation
Emulating IoT Firmware Made Easy: Start Hacking Without the Physical Device
這三篇文章教讀者如何使用 QEMU 來使用者空間模擬、系統空間模擬路由器的二進位檔。筆者認為使用者空間模擬通常不是什麼問題,但系統空間模擬, oh boy, it’s a pain in the ass. 而在這些文章裡,你不只能學會如何從頭都用 QEMU 解決,也能學會利用其他工具大幅加速模擬流程。
但有時,你下載了韌體檔,卻發現 binwalk 出來啥都沒有!像文章裡的圖一那樣。文章提供了一種解法:「去下載舊版的韌體,然後祈禱裡面會有 imgdecrypt 可以用來解密那個韌體檔!」不過大部分廠商都是在產品生命週期後期才加密韌體的,因此這個方法還真的可以成功解密許多韌體。
如果真不行,你也可以試著從廠商提供的 GPLv2 Code 來找線索 …
Updated 05 Aug 2016: TP-Link Statement and FAQ for Open Source Firmware
筆者之前修改路由器官方提供的 GPL Code,編譯成韌體檔要更新路由器後,才發現沒辦法正常從 Web Interface 正常升級寫入。就算是用未經修改的原始碼編譯後的韌體去更新也是如此。
筆者還在想,咦?這不是 GPL Code 嘛?那照理來說,在正常編譯後,不應該要能正常寫入路由器才對?仔細研究後才發現,大錯特錯!
路由器的原始碼通常都只須遵守 GPLv2 的協議。所以硬體廠商仍可以透過硬體手段限制使用者執行修改後的二進位檔案。在筆者的例子中,GPL Code 編譯最後的 image_build 階段應該要有個 support list 為整個韌體簽署數位簽章。但 TP-Link 在公開的 GPL Code 中將其移除了。
此問題即稱為 Tivoization,也因此促成了 GPLv3 的誕生。不過因為 Linus 明確表示 Linux Kernel 不會採用 GPLv3,所以大概以後路由器都還是會維持 GPLv2 吧。
LLM
這位作者因為受夠了互聯網上大量的 AI 生成內容,突發奇想,決定搓一個 AI 生成文字檢測器。
作者認為困惑度(Perplexity)的檢測方法不理想,轉而採用了 TF-IDF,也就是統計某個詞在該句子中的頻率,而如果某個詞在特定句子中頻率很高,但在其他地方卻很少,那其便有很高的辨識度。
至於數據來源,作者先找一堆 2022(ChatGPT 發布以前)的網路文章,之後再讓 LLM 根據這些文章重寫一篇長度相當的文章。這樣正樣本和負樣本就有了,在用 TF-DIF 提取特徵以後,使用 LinearSVC 在多為向量空間中找一個 Hyperplane 把人類向量和 AI 向量區隔開來。
接著作者針對 7 個不同的 LLM 分別訓練了 7 個二分類模型。只要有超過 2 個以上的模型判斷某段句型為 AI 生成,系統就會標注該句子。
最屌的地方來了,作者把最強的前五十萬個特徵提取出來,存在一個超級肥大的 JSON 檔案裡面。這樣網頁端就不需要 API 了,直接從裡面算 … 牛逼呀!
個人用起來也覺得超級準的!測試效果在這裡看,接下來我們終於有標準來判斷誰是女巫了 x)
Linux
美國加州通過了一項數位年齡保證法案,要求所有作業系統必須在使用者設定帳號時,提供一個介面讓使用者在上面輸入出生年月日。並且還要提供程式開發者一個 API 接口,讓開發者根據用戶年齡調整相應的內容。
可想而知,這和 Linux 社群的去中心化完全背道而馳,許多主要發行版都在洽談法律顧問,但總之整個社群當然都炸了,甚至有些系統(MidnightBSD, DB48X)直接禁止加州居民使用他們的軟體(Poor Them)。
所以現在大家已經覺得需要有帳號才可以用作業系統嘛 … 這就和要登入才可以用記事本、終端機一樣荒謬耶。
雖然內容有點少,但大概先這樣吧!畢竟目前還在試水溫。