第4章
火種------------------------------------------,沈清墨不在家。客廳的桌上放著一箱泡面,紅燒牛肉味的,旁邊壓著一張紙條:“貓糧在廚房柜子里,*ug已經吃過了。——沈清墨”,插上電源適配器,按了開機鍵。,發出那種老式機械硬盤特有的嘎吱聲。屏幕亮了,Windows XP的開機畫面出現在眼前,那個經典的藍色窗口讓他恍惚了一下,像是回到了十幾年前。。林舟沒有不耐煩,他反而覺得這種慢是好事——越慢的系統,越容易被理解。不像現在的AI黑盒,你永遠不知道它在里面干什么。,林舟做的第一件事是把網絡適配器禁用了。這臺電腦沒有無線網卡,只有一個有線網口,他把網線拔了,確保這臺機器永遠不會聯網。,**U**口。,里面只有一個文件夾,名字叫“huozhong”。文件夾里是密密麻麻的源代碼文件,大部分是C語言和匯編,還有一些他用不上的腳本。,是一段注釋。“火種計劃 - 周明遠 2015年3月本代碼的目的是檢測x86架構下任何運行程序的機器碼特征,無需源代碼,無需調試符號,直接讀取CPU指令流。核心原理基于指令頻次分析和控制流圖重建。”,代碼寫得極其工整。每一行都有注釋,每一個函數都有說明,甚至連縮進都是對齊的。這種代碼風格在現在的程序員圈子里已經絕跡了。,不知不覺就在電腦前坐了兩個小時。,這套框架的思路是對的,但確實沒寫完。核心的“指令特征提取模塊”只完成了一半,后面的“漏洞匹配引擎”還只是一個空殼。但這些已經寫完的部分,質量高得嚇人。,在這套代碼面前就像小學生作業。周明遠不是在想怎么騙過AI,而是在想怎么從最底層理解AI的思維方式。“咚咚咚。”
有人敲門。林舟看了眼時間,晚上十一點半。
他開門,沈清墨站在門口,手里提著一個塑料袋,里面裝著兩份盒飯。
“還沒吃吧?”她問。
“忘了。”
“猜到了。”沈清墨走進來,把盒飯放在桌上,看了一眼那臺舊電腦,“這什么古董?”
“我的新工作電腦。”
沈清墨湊近看了一眼屏幕上的代碼,眉頭皺了一下:“這寫的什么?跟天書一樣。”
“匯編語言。”
“你們程序員都這么**嗎?這種鬼畫符也能看懂?”
林舟難得笑了一下:“習慣了就好。”
兩人坐在桌前吃飯。盒飯是樓下快餐店的,魚香肉絲蓋飯,十二塊一份,米飯有點硬,但林舟吃得很香。
“你那只貓呢?”林舟問。
“在我房間睡了。這小東西特別能睡,一天能睡二十個小時。”
“貓都這樣。”
沈清墨夾了一塊肉,看了他一眼:“你今天去見那個老頭,怎么樣?”
“還行。他給了我一套代碼,挺有意思的。”
“能賺錢嗎?”
林舟頓了一下。這個問題很現實,也很直接。
“暫時不能,但以后可能能。”
“那就好。”沈清墨點點頭,沒再多問。
林舟發現她有個特點——從來不問“你行不行”或者“你確定嗎”這種話。要么不問,問了就信。
這讓他有點不習慣。他前女友蘇晚晴的口頭禪就是“你確定嗎”,不管他說什么,她都要質疑一遍。
“你的實驗做得怎么樣?”林舟隨口問了一句。
沈清墨的筷子停了一下。
“還行,就是有點忙。”
“你手上的傷好了嗎?”
“好了。”沈清墨把手縮到桌子下面,“你別老問這些,跟個老媽子似的。”
林舟沒再問。但他注意到她今天的袖口比昨天長了一截,像是故意把手腕遮住了。
吃完飯,沈清墨收拾了桌子,去廚房洗碗。林舟回到電腦前,繼續看代碼。
他發現了一個有意思的東西。在“火種”框架的底層,周明遠寫了一段特殊的匯編代碼,這段代碼可以直接讀取CPU的調試寄存器,獲取當前正在執行的每一條指令。這種技術在操作系統層面是被禁止的,但周明遠繞過了系統的保護機制,直接跟硬件對話。
這意味著什么?
意味著如果這段代碼能跑通,你可以在任何x86架構的電腦上,不經過操作系統,直接讀取CPU正在執行的指令。包括AI服務器。
而所有AI服務器,底層用的都是x86架構。
林舟的呼吸變重了。他開始理解周明遠為什么要把這個東西叫做“火種”——這不是一個普通的漏洞檢測工具,這是可以燒穿整個AI基礎設施的火把。
但他也看到了一個問題。這段匯編代碼的兼容性很差,只支持特定型號的CPU。周明遠在注釋里寫了:“后續需要補全Intel和AMD各代CPU的指令集映射表,工作量巨大,估計需要兩年。”
兩年。周明遠只有半年到一年的時間。
林舟靠在椅背上,盯著天花板發呆。
手機震了一下。陸鳴把他拉進了一個微信群,群名叫“騎手互助聯盟”。群里有一百二十三個人,大部分是外賣騎手,還有幾個跑腿和快遞員。
陸鳴在群里@了他:“這是林舟,我兄弟,程序員。以后大家遇到AI系統的問題可以問他。”
下面立刻有人回復:“程序員?程序員不都被裁了嗎?”
陸鳴:“所以才來跟咱們混啊。”
群里哈哈了一陣。然后一個叫“老張”的人發了一段語音。
林舟點開聽,聲音很吵,像是在馬路上。老張的嗓門很大:“林舟是吧?我問你個事。我今天跑了一單,送到一個小區,門口保安不讓進,說小區規定外賣只能放快遞柜。我放快遞柜了,系統說我‘未送達指定地點’,扣了我五十。這能找誰說理去?”
林舟打字問:“快遞柜的位置跟系統里標注的取餐點差多遠?”
老張:“差五十米吧。但是那個小區大門到快遞柜就要走五十米啊,我總不能**進去吧?”
林舟想了想,回復:“你明天再跑那一單的時候,在快遞柜旁邊拍一張照片,照片里要有快遞柜和小區大門的相對位置。然后找人工**申訴,就說‘送達點與系統標注位置存在物理偏差,屬于地圖數據錯誤,非騎手責任’。***用‘地圖數據錯誤’,別用‘系統有問題’。”
老張:“這能行嗎?”
林舟:“試試,不行再想別的辦法。”
老張發了個抱拳的表情。
又有幾個人問了問題,林舟一一回答。大部分問題都不復雜,核心思路是一樣的——把問題定性為“數據錯誤”而不是“操作失誤”。因為AI系統的判定邏輯里,“數據錯誤”會自動轉人工審核,而“操作失誤”會直接扣款。
聊了半個小時,群里安靜下來了。陸鳴私聊他:“感覺怎么樣?”
林舟:“還行。問題都不難,就是費時間。”
陸鳴:“你要是覺得累就別勉強,我就是隨口一說。”
“沒事,反正我現在也沒別的事。”
“行。對了,我幫你問了一下,城西那邊有個地下市場,專門交易那種‘非AI認證’的商品和服務。你要是有興趣可以去看看。”
“什么叫非AI認證?”
“就是不被AI系統監控的東西。比如現金交易、匿名電話卡、不聯網的電子產品。現在這些東西越來越值錢了,因為AI系統監控一切,只有不聯網的東西才是安全的。”
林舟心里一動。他低頭看了一眼桌上的舊電腦。
這臺不聯網的電腦,本身就是“非AI認證”的東西。
“地址發給我。”
陸鳴發了一個定位。林舟看了一眼,在城西的一個舊工業區里,離這里大概十公里。
他決定明天去看看。
關了手機,林舟又回到電腦前。他打開了周明遠代碼里的“指令集映射表”文件,里面只寫了Intel Core 2系列的CPU,大概有三百多條指令。而要支持現在AI服務器用的至強處理器,至少需要三千條指令。
三千條。每條指令都需要人工分析、測試、驗證。按照周明遠的估算,一個人做至少兩年。
林舟沒有兩年。周明遠也沒有。
但他有一個別人沒有的東西——他不用工作,不用上班,每天有二十四個小時可以全部砸在這上面。
而且他不打算按周明遠的方法來。周明遠的方法是手工一條一條分析,但林舟想到了一個取巧的辦法。
他可以從開源的CPU模擬器項目里提取指令集數據。那些模擬器為了能跑各種操作系統,已經把CPU的每一條指令都模擬了一遍。數據是現成的,他只需要寫一個腳本把它轉換過來。
這樣能把兩年的工作量壓縮到兩個月。
林舟越想越興奮,直接在代碼文件里新建了一個文件夾,取名“tools”。他開始寫第一個腳本——一個用來解析QEMU模擬器源碼的Python程序。
寫到凌晨三點,腳本的框架搭好了。他揉了揉眼睛,伸了個懶腰。
客廳里很安靜,沈清墨房間的燈早就滅了。那只叫*ug的貓不知道什么時候溜了出來,蜷在沙發的角落里,發出輕微的呼嚕聲。
林舟看了一眼貓,又看了一眼屏幕上密密麻麻的代碼。
他突然想起周明遠說的話——“老東西有老東西的好處。”
這臺十五年前的電腦,這個七十歲老頭寫的代碼,還有他自己這個被淘汰的程序員。
都是老東西。
但老東西加在一起,說不定真能搞出點名堂。
他關了電腦,躺在沙發上,閉上眼睛。
迷迷糊糊之間,他好像聽到沈清墨房間里有動靜。像是有人在低聲說話,又像是在哭。
他想起來看看,但實在太累了,眼皮像灌了鉛一樣沉。
等他徹底睡著之后,沈清墨房間的門開了一條縫。她站在門口,看著沙發上蜷縮的林舟,站了很久。
然后她輕輕走過去,把滑到地上的毯子撿起來,蓋在他身上。
*ug睜開眼睛,看了她一眼,又閉上了。
沈清墨蹲下來,把臉埋在膝蓋里,肩膀微微抖了一下。
但林舟什么都不知道。他正在做一個夢,夢里他站在一片無邊無際的數據海洋中,手里握著一根火把。
有人敲門。林舟看了眼時間,晚上十一點半。
他開門,沈清墨站在門口,手里提著一個塑料袋,里面裝著兩份盒飯。
“還沒吃吧?”她問。
“忘了。”
“猜到了。”沈清墨走進來,把盒飯放在桌上,看了一眼那臺舊電腦,“這什么古董?”
“我的新工作電腦。”
沈清墨湊近看了一眼屏幕上的代碼,眉頭皺了一下:“這寫的什么?跟天書一樣。”
“匯編語言。”
“你們程序員都這么**嗎?這種鬼畫符也能看懂?”
林舟難得笑了一下:“習慣了就好。”
兩人坐在桌前吃飯。盒飯是樓下快餐店的,魚香肉絲蓋飯,十二塊一份,米飯有點硬,但林舟吃得很香。
“你那只貓呢?”林舟問。
“在我房間睡了。這小東西特別能睡,一天能睡二十個小時。”
“貓都這樣。”
沈清墨夾了一塊肉,看了他一眼:“你今天去見那個老頭,怎么樣?”
“還行。他給了我一套代碼,挺有意思的。”
“能賺錢嗎?”
林舟頓了一下。這個問題很現實,也很直接。
“暫時不能,但以后可能能。”
“那就好。”沈清墨點點頭,沒再多問。
林舟發現她有個特點——從來不問“你行不行”或者“你確定嗎”這種話。要么不問,問了就信。
這讓他有點不習慣。他前女友蘇晚晴的口頭禪就是“你確定嗎”,不管他說什么,她都要質疑一遍。
“你的實驗做得怎么樣?”林舟隨口問了一句。
沈清墨的筷子停了一下。
“還行,就是有點忙。”
“你手上的傷好了嗎?”
“好了。”沈清墨把手縮到桌子下面,“你別老問這些,跟個老媽子似的。”
林舟沒再問。但他注意到她今天的袖口比昨天長了一截,像是故意把手腕遮住了。
吃完飯,沈清墨收拾了桌子,去廚房洗碗。林舟回到電腦前,繼續看代碼。
他發現了一個有意思的東西。在“火種”框架的底層,周明遠寫了一段特殊的匯編代碼,這段代碼可以直接讀取CPU的調試寄存器,獲取當前正在執行的每一條指令。這種技術在操作系統層面是被禁止的,但周明遠繞過了系統的保護機制,直接跟硬件對話。
這意味著什么?
意味著如果這段代碼能跑通,你可以在任何x86架構的電腦上,不經過操作系統,直接讀取CPU正在執行的指令。包括AI服務器。
而所有AI服務器,底層用的都是x86架構。
林舟的呼吸變重了。他開始理解周明遠為什么要把這個東西叫做“火種”——這不是一個普通的漏洞檢測工具,這是可以燒穿整個AI基礎設施的火把。
但他也看到了一個問題。這段匯編代碼的兼容性很差,只支持特定型號的CPU。周明遠在注釋里寫了:“后續需要補全Intel和AMD各代CPU的指令集映射表,工作量巨大,估計需要兩年。”
兩年。周明遠只有半年到一年的時間。
林舟靠在椅背上,盯著天花板發呆。
手機震了一下。陸鳴把他拉進了一個微信群,群名叫“騎手互助聯盟”。群里有一百二十三個人,大部分是外賣騎手,還有幾個跑腿和快遞員。
陸鳴在群里@了他:“這是林舟,我兄弟,程序員。以后大家遇到AI系統的問題可以問他。”
下面立刻有人回復:“程序員?程序員不都被裁了嗎?”
陸鳴:“所以才來跟咱們混啊。”
群里哈哈了一陣。然后一個叫“老張”的人發了一段語音。
林舟點開聽,聲音很吵,像是在馬路上。老張的嗓門很大:“林舟是吧?我問你個事。我今天跑了一單,送到一個小區,門口保安不讓進,說小區規定外賣只能放快遞柜。我放快遞柜了,系統說我‘未送達指定地點’,扣了我五十。這能找誰說理去?”
林舟打字問:“快遞柜的位置跟系統里標注的取餐點差多遠?”
老張:“差五十米吧。但是那個小區大門到快遞柜就要走五十米啊,我總不能**進去吧?”
林舟想了想,回復:“你明天再跑那一單的時候,在快遞柜旁邊拍一張照片,照片里要有快遞柜和小區大門的相對位置。然后找人工**申訴,就說‘送達點與系統標注位置存在物理偏差,屬于地圖數據錯誤,非騎手責任’。***用‘地圖數據錯誤’,別用‘系統有問題’。”
老張:“這能行嗎?”
林舟:“試試,不行再想別的辦法。”
老張發了個抱拳的表情。
又有幾個人問了問題,林舟一一回答。大部分問題都不復雜,核心思路是一樣的——把問題定性為“數據錯誤”而不是“操作失誤”。因為AI系統的判定邏輯里,“數據錯誤”會自動轉人工審核,而“操作失誤”會直接扣款。
聊了半個小時,群里安靜下來了。陸鳴私聊他:“感覺怎么樣?”
林舟:“還行。問題都不難,就是費時間。”
陸鳴:“你要是覺得累就別勉強,我就是隨口一說。”
“沒事,反正我現在也沒別的事。”
“行。對了,我幫你問了一下,城西那邊有個地下市場,專門交易那種‘非AI認證’的商品和服務。你要是有興趣可以去看看。”
“什么叫非AI認證?”
“就是不被AI系統監控的東西。比如現金交易、匿名電話卡、不聯網的電子產品。現在這些東西越來越值錢了,因為AI系統監控一切,只有不聯網的東西才是安全的。”
林舟心里一動。他低頭看了一眼桌上的舊電腦。
這臺不聯網的電腦,本身就是“非AI認證”的東西。
“地址發給我。”
陸鳴發了一個定位。林舟看了一眼,在城西的一個舊工業區里,離這里大概十公里。
他決定明天去看看。
關了手機,林舟又回到電腦前。他打開了周明遠代碼里的“指令集映射表”文件,里面只寫了Intel Core 2系列的CPU,大概有三百多條指令。而要支持現在AI服務器用的至強處理器,至少需要三千條指令。
三千條。每條指令都需要人工分析、測試、驗證。按照周明遠的估算,一個人做至少兩年。
林舟沒有兩年。周明遠也沒有。
但他有一個別人沒有的東西——他不用工作,不用上班,每天有二十四個小時可以全部砸在這上面。
而且他不打算按周明遠的方法來。周明遠的方法是手工一條一條分析,但林舟想到了一個取巧的辦法。
他可以從開源的CPU模擬器項目里提取指令集數據。那些模擬器為了能跑各種操作系統,已經把CPU的每一條指令都模擬了一遍。數據是現成的,他只需要寫一個腳本把它轉換過來。
這樣能把兩年的工作量壓縮到兩個月。
林舟越想越興奮,直接在代碼文件里新建了一個文件夾,取名“tools”。他開始寫第一個腳本——一個用來解析QEMU模擬器源碼的Python程序。
寫到凌晨三點,腳本的框架搭好了。他揉了揉眼睛,伸了個懶腰。
客廳里很安靜,沈清墨房間的燈早就滅了。那只叫*ug的貓不知道什么時候溜了出來,蜷在沙發的角落里,發出輕微的呼嚕聲。
林舟看了一眼貓,又看了一眼屏幕上密密麻麻的代碼。
他突然想起周明遠說的話——“老東西有老東西的好處。”
這臺十五年前的電腦,這個七十歲老頭寫的代碼,還有他自己這個被淘汰的程序員。
都是老東西。
但老東西加在一起,說不定真能搞出點名堂。
他關了電腦,躺在沙發上,閉上眼睛。
迷迷糊糊之間,他好像聽到沈清墨房間里有動靜。像是有人在低聲說話,又像是在哭。
他想起來看看,但實在太累了,眼皮像灌了鉛一樣沉。
等他徹底睡著之后,沈清墨房間的門開了一條縫。她站在門口,看著沙發上蜷縮的林舟,站了很久。
然后她輕輕走過去,把滑到地上的毯子撿起來,蓋在他身上。
*ug睜開眼睛,看了她一眼,又閉上了。
沈清墨蹲下來,把臉埋在膝蓋里,肩膀微微抖了一下。
但林舟什么都不知道。他正在做一個夢,夢里他站在一片無邊無際的數據海洋中,手里握著一根火把。
閱讀下一章(解鎖全文)
點擊即可暢讀完整版全部內容
相關書籍
友情鏈接