會短暫地釋放總線控製權,等待外接設備響應。
這個時間窗口隻有不到兩百毫秒。
陸懷民知道,在後世,這種「上電自檢窗口期漏洞」是早期嵌入式係統的經典缺陷,直到九十年代才被安全研究人員係統性揭露。
而現在,在一九八○年,這是獨屬於他一個人的武器,成為他破解數控係統的契機。
陸懷民的思路很簡單,他打算寫一段彙編程序運行在數控工具機的外接計算機上,在監測到數控係統自檢通過的電平跳變後,於一百八十毫秒內發送一段精心構造的「偽協處理器應答序列」,誘使CPU將運動控製總線的裁決權移交給外接設備。
一旦接管成功,事情就簡單了。
鎖死在ROM裡的後處理程序會被徹底繞過。
割槍將直接由外接計算機上自研的CAM編譯器指揮。
理論上完全可行。
但在一九八〇年,一百八十毫秒意味著什麼?
意味著程序必須用彙編語言寫,每一條指令的執行時間都必須儘量壓縮。
從檢測到電平跳變開始,到發送完最後一個偽應答字節為止,中間不能浪費哪怕一個時鐘周期。
這就像在高速行駛的火車上,把一根針從一扇隻開了幾毫秒的安全門縫裡扔出去。
扔慢了一點,針就撞在門框上。
陸懷民深吸一口氣,開始寫技術文檔。
「程序名:BOOTHOOK.ASM
功能:在System6M上電自檢窗口期內接管運動控製總線
目標平台:DJS係列外接計算機,MC6800指令集時間約束:自檢測到CN1—4腳上升沿起,至發送完最後一個偽應答字節止,必須在180ms內完成全部操作。」】
寫到這裡,陸懷民想了想,又把最後一句話改為:
【時間約束:自檢測到CN1—4腳上升沿起,須在150ms內完成全部操作,留30ms餘量應對硬體離散性。」】
本章節來源於𝑜𝑜𝑝.𝑡𝑤
陸懷民翻過一頁,開始寫主程序的基本結構。
【主程序流程:
STEP 1:初始化串口,設定CN1通信參數STEP2:循環監測CN1—4腳電平,等待上電自檢完成信號STEP15:若驗證通過,轉入正常通信模式,開始接收CAM係統下發的G代碼指令————】
夜深了,但陸懷民鬥誌昂揚,毫無睡意。
第二天一早,陸懷民帶著連夜寫好的技術文檔來找周永年匯報自己的思路。
周永年不是計算機專業出身,對陸懷民所說的其實也不是很懂。
他問道:「你說的這個辦法,理論上有多大的把握?」
陸懷民說道:「最大的變數在於程序能否在兩百毫秒內完成對設備的控製,如果能做到,我有九成以上的把握。」
「那就是說,也有可能失敗。」
「對。」陸懷民坦然地點了點頭。
周永年把身子往椅背上一靠,沉默了。
陸懷民知道他為什麼沉默。
Room板一旦寫入失敗,或者偽協處理器應答序列的校驗和不匹配,係統會直接觸發ROM完整性鎖死。
到那時候,這台十幾萬美元買來的設備,就會變成一塊十幾噸重的廢鐵。
日方一定會以「非法操作造成設備損壞」為由,拒絕任何形式的售後服務。
而江南廠沒有能力自己修,全國也沒有人能修。
這台設備就徹底廢了。
。賭豪場一是這
」?的說了高往心放我讓了為是還,的實打實是,成九個這。握把的上以成九有就你,接橋成完內間時定規在能序程,說才剛你。底個交我跟須必你「:真認很得變然忽氣語,頭起抬然忽年永周」,民懷「
」。笑玩開匯外家國萬十幾拿會不我,工總周「,決堅很民懷陸」。的實打實「
」!你信我!好「:上桌在拍掌巴一後然,鐘秒五足足了看他著盯年永周
」。係關沒民懷陸你跟,係關沒大科們你跟。扛人個一我任責有所,的板拍年永周我是,鐵廢了成真是要子床台這。乾去手放你「:說,上膀肩的民懷陸在按手雙,前麵民懷陸到走,身起站他
。麼什說想,嘴張了張民懷陸
」!把一賭,去出豁如不,氣囊窩個這受其與,大不就來本處用,務服術技的本日買不機具工個這正反「:手擺了擺年永周
」。楚清講您跟在現須必我事件有,過不。輸會不們我,仗一這。心放您,工總周「:頭點了點重重民懷陸
」。說管儘你?事麼什「
」。密機的別級高最為列須必,架構碼代和式方用利洞漏、節細術技心核的體具,法方解破個這的做要們我「:道酌斟民懷陸
」。說外往別們他讓,呼招個打人的間車跟我。了白明我,行「:頭點點後隨,愣一是先年永周」?密保「
了用利是上質本,路思解破個這我是而。們誌同的裡廠過不信我是非絕這,工總周「:道充補續繼,頭搖了搖民懷陸
」。上機具工的號型同不至甚、的口進他其在用,」匙鑰用通種一為作以可全完來將,強極性用復的法辦個這,好得做作工密保果如。洞漏命致個一的構架層底統係
」!了天登如難是更就,解破想再後以們我,復修地性對針家人,聲風露走旦一可「
。來起肅嚴得變間瞬色臉,言聞年永周
」。握把有,品產的代同少至「,頭點了點民懷陸」。能「法辦這用能也,機具工的來回買錢價大花些那廠他其國全,說是你「:動震是滿中眼,民懷陸著看,頭起抬他
。來起了站地猛年永周
。值價的法方個這說所民懷陸了白明間瞬,兵老的來出乾線一從是他
械機到係關是更這,事的廠船們咱是僅僅不這。了單簡得想才剛我是「:道說地重鄭,民懷陸給還,檔文術技份那起拿年永周」。了白明我「