繁體小說 > 重生之乘風而起 > 第一千八百五十五章 空操作雪橇

第一千八百五十五章 空操作雪橇

⬅ 上一章 📋 目錄 ⚠ 報錯 下一章 ➡
⭐ 加入書籤
推薦閱讀: 花都風流第一兵王 代嫁寵妻是替身 天鋒戰神 穿越古代賺錢養娃 我覺醒了神龍血脈 我的老婆國色天香 隱婚嬌妻別想跑 遲遲也歡喜 全職獵人之佔蔔師

第1858章 空操作雪橇

這個功能可以簡化一些運算,比如邏輯上要給一個數字乘以2然後輸出,在有些時候都不需要運算,隻需要將這些數字輸出完後,再在後麵填上一個NOP,讓等待填裝的接收區在數字後因此自動填上一個0,就可以實現乘2進位的目的。

還有一個重要的作用,就是通過NOP指令可以產生一定的延遲功能。

雖然冇有輸出,但是NOP指令同樣是需要占用計算機的執行時間的,加上循環次數,就可以在相應次數的指令執行時間,讓程式實際上實現「暫停」的功能。

計算機在執行程式的時候,經常是在共用緩衝區記憶體儲數據,這個緩衝區常常需要清空操作,等待總線恢覆成無數據運行的狀態,巧用NOP指令,就能夠實現這樣的功能。

然而就是這麽有用的一條指令,被有心人發現了新「用處」。

在作業係統當中,指令的輸入與返回,是通過堆棧來進行的。

堆棧大體來講好像一個倉庫,倉庫分作了幾個區域,每個區域用來存放一堆「門牌號」,這樣的門牌號,在單片機係統裏叫做「暫存器」,程式調用時,工作方式就是挨著讀取這些門牌號,將這些地址對應的暫存器中內容讀入到棧中,最後將計算結果存放到返回地址當中去。

這時候就有人想到使壞了,因為堆棧的內容填充是從低地址向高地址進行的,最高的位置就是結果地址。

要是在低地址區,比如變量區,給變量填充一個巧妙構造的超長字串,讓這個長字串超過高地址區,其實就會拿這個變量的後半部分內容,替換掉了返回地址的「門牌」。

將這個「門牌」設置成某個變量的地址,那麽現在的返回地址就變成了指向這個變量,如果這個變量當中盛放的是惡意代碼,於是這個惡意代碼就被成功地讀取進了係統裏。

這個方式,叫做「堆棧緩衝區溢位」,通過緩衝區溢位,我們能改變程式原有的正常執行流程,去改為執行黑客準備好的惡意代碼。

這套操作在WINDOWS係統上一用一個準,也是周至他們研發的防火牆和殺毒軟體所保護的重點。

但是這個問題在UNIX為基礎的係統上卻並不存在,因為UNIX係統對於結果緩衝區的地址分配是隨機的,也就是說其返回結果的地址並不一定就在變量地址的後麵,可以被黑客輕易推測到,並且利用緩衝區溢位功能輕易替換。

四葉草集團的內部係統,其實使用的就是基於UNIX架構的自主係統,伺服器版的COS係統。

不過論壇的資訊技術板塊上,有人提出過一個攻擊方法,那就是「nop sled」,翻譯過來就是「空操作雪橇」。

論文指出,雖然UNIX體係的結果返回地址是隨機的,但是隻需要在實際的攻擊代碼前注入很長的nop指令,就可以清出一個很大的空間序列來。

然後還是用之前的緩衝區溢位方式進行攻擊,隻要將程式的控製流指向該序列任意一處,程式計數器逐步加一,直到到達攻擊代碼的存在的地址,並執行。

這就類似於將之前一個小小的靶子變成了一個巨大的牆,之前需要將箭射中靶子才能完成攻擊,現在隻需要將箭射到牆上,箭就會被自動送到牆上掛著的靶子上去。

從程式的執行上來看,這就好像是通過滑雪橇的方式,最終訪問到雪橇的終點一樣,因此被形象地稱為「空操作雪橇」。

這個想法從理論上看是可行的,但是在實際操作中卻存在許多難題,首先就是你要有在係統上運行惡意代碼的機會。

胡天宇他們經過女媧日誌分析,發現是從新版的四葉草瀏覽器開始中招的。

新版瀏覽器采用的JAVA核心,為了鼓勵大家的研發積極性,四葉草集團還釋出了研發工具JDK,包括了Java運行編譯環境,以及一堆java的工具和類庫,並且在不斷地進行擴充。

有了這個,所有的程式愛好者都可以設計出一些嵌入式軟體,將之嵌入在自己的主頁當中,以便他人訪問的時候發現「驚喜」。

以前的瀏覽器所看到的網頁都是靜態的,有了這個嵌入式工具後,就能夠將一些炫酷的動畫丶小視頻丶音樂丶動態字體效果嵌入到網頁上,獲得的效果當然是相當驚人的。

現在論壇上就掛著許多用JAVA開發的「軟體皮膚」,幾乎年輕人喜歡用的軟體如四葉草播放器,扣扣,輸入法等,都有專門的工作組開發出各種花裏胡哨的皮膚來。

甚至有心大的工作組,都開始打起如WINDOWAC這類大型作業係統的「皮膚」替換主題來。

因為JAVA應用是四葉草公司剛剛推出的研發工具,公司內部程式設計師和論壇中的程式開發愛好者有著高度的重合度和深化合作,在這樣的情況下,就難免會有人將外部論壇上的那些小軟體,偷偷安裝到單位內部的係統上來。

當然了,一般的軟體皮膚這種哄年輕人開心的小噱頭還引不起四葉草集團程式設計師違背公司的製度,但是有一款非常方便JAVA開發的代碼編寫環境的話,那就不一樣了。

這位黑客就是這樣的一個高手,他在論壇上釋出了一個叫做JDK NOTEPAD的工具軟體,其實就是一個十分方便用於JDK程式開發的工具,整合了程式設計師非常喜歡的自動排列代碼,功能查錯,多色函數首尾匹配,可隱藏註釋,版本自動記錄等非常方便的功能,最誇張的是還有一個自動優化功能,可以在一定程度上將程式調整得更簡潔,更合理,排布更清晰明瞭,能夠極高地提升程式設計師JAVA程式開發的工作效率。

事後經胡天宇秘密調查,公司裏安裝了這個軟體的人不在少數,在有些部門甚至成了一個普遍現象。

然而誰都冇有想到,有一段惡意代碼就藏在這個軟體的自動優化功能當中。

四葉草公司有嚴格的製度規定,每個程式都有一定的署名規範,嚴格按照ISO軟體產品標準來執行,每個程式的開頭都會有標準註釋,表明這個程式的名稱,作者,所屬部門,程式版本號,曆次修改者,修改時間等資訊。

這個JDK NOTEPAD也非常的貼心,設置了預置選項,隻要你將這些資訊事先填成它管理的參數,以後在你調用程式開發模版的時候,會將這些資訊都給你在程式中提前寫好,程式設計師就無需再做這些重複性的工作,直接在代碼區開始敲代碼就行。

然而他們冇有想到的是,這些資訊被黑客用巧妙的方式獲取了。

第 1 頁
⬅ 上一章 📋 目錄 ⚠ 報錯 下一章 ➡
升級 VIP · 無廣告 + VIP 章節全解鎖
👑 VIP 特權 全站去廣告清爽閱讀 · VIP 章節無限暢讀,月卡僅 $5
報錯獎勵 發現文字亂碼、缺章、內容重複?點上方「章節報錯」回報,審核通過立獲 3天VIP
書單獎勵 前往 個人中心 投稿你的私藏書單,審核通過立獲 7天VIP
⭐ 立即升級 VIP · 月卡僅 $5
還沒有帳號? 免費註冊 | 登入後購買