沙盤工作原理淺談


最近在研究游戲多開原理時,發現多種實現多開的方法,其中一種方法:使用沙盤,引起我的注意,而且這種方法應用於實現多開可謂是小牛試刀。

沙盤實際上是一種安全軟件,它可以讓進程之間被邏輯隔離,在沙盤中執行的程序不實際修改或防止被修改系統的數據內容,如注冊表、硬盤數據等。

以下是轉載內容,是對沙盤的簡單介紹:

 

因為有人問沙盤是什么,可能有些新人對沙盤還搞不清是什么東西,所以草草寫了這篇小文,僅向新人簡單介紹一下沙盤。

  沙盤英文名sandbox,也叫沙箱,顧名思義可以看做是一種容器,里面所做的一切都可以推倒重來,軍事上常用沙盤來進行一些戰爭區域的地形模擬,這個你見過吧?不用了可以把沙子推平重來。

  我們所說的沙盤是一種安全軟件,可以將一個程序放入沙盤運行,這樣它所創建修改刪除的所有文件和注冊表都會被虛擬化重定向,也就是說所有操作都是虛擬的,真實的文件和注冊表不會被改動,這樣可以確保病毒無法對系統關鍵部位進行改動破壞系統。另外現在沙盤一般都有部分或完整的類似HIPS的程序控制功能,程序的一些高危活動會被禁止,如安裝驅動,底層磁盤操作等。目前沙盤主要有兩大類,一是采用虛擬技術的傳統沙盤,另一個就是采用策略限制的沙盤。

  傳統沙盤的典型代表之一就是sandboxie。看看它是怎么描述自己的,你就知道什么是沙盤了。

什么是sandboxie?

  當你運行一個程序時,程序會讀取硬盤上的數據,這時數據由硬盤流向程序,然后數據經過處理很顯示后再由程序寫回到硬盤中。

 

  如果你運行一個游戲程序,它會先讀取保存在硬盤中的數據記錄,然后在你玩游戲的過程中顯示出來,最后再寫回硬盤以待下次使用。

  sandboxie的作用就是改變了程序寫入數據的地點,不讓它寫回到硬盤中,而是寫到由sandboxie創造的一個虛擬區域。

 

  上圖展示了sandboxie的關鍵特性:一個虛擬的存儲區域,或者稱為沙盤。在讀取數據時,數據由硬盤穿過沙盤到達程序,這個不受影響。但是在程序寫入數據時,這些數據都被保存在沙盤中而不會寫入到硬盤。

  如果你在沙盤環境下運行一個游戲,sandboxie會從硬盤讀取數據並保存,然后游戲讀取沙盤中的數據來滿足它的需要。但是當游戲想寫入數據時,sandboxie會攔截寫入並把數據轉移到沙盤中。

sandboxie的應用

  sbie會在一個被稱為sandbox(沙盤)的隔離的虛擬區域運行程序。程序在此區域內運行不會受到影響,但是不能對系統做出永久的實際改變,程序所做的所有對文件和注冊表的改動都僅僅在沙盤中有效。

  關於sandboxie的詳細介紹請參考置頂教程帖中相關文章。

  除了sandboxie這種利用虛擬技術的沙盤,還有另外一種采用策略限制的軟件也可以稱之為沙盤,因為它也具有可以恢復所有程序所生成的文件和注冊表鍵值的功能,稱之為ROLLBACK(回滾),而對於修改和刪除操作和傳統沙盤不同的是采用的是策略限制。典型代表有defensewall。

  DW這種沙盤沒有采用虛擬技術,因為虛擬技術目前還有一些缺陷的地方,如可能造成沙盤內程序的不穩定或資源占用升高等問題。所以在DW中運行的程序所生成的文件和注冊表鍵值都是實機生成,DW會對它們進行追蹤,所有這些生成的東西都受到策略限制。如在DW內的一個程序生成了一個可執行文件,當運行這個可執行文件時,這個文件會被DW追蹤到自動加入非信任區,受到策略限制,這樣一來確保了該文件不會對你的系統造成損害。而對系統重要文件和注冊表鍵值的修改和刪除同樣會受到策略限制,禁止非信任程序進行操作。而傳統沙盤對修改刪除的操作是采用的虛擬化重定向技術,也就是說所有的修改刪除操作都是在虛擬區域中完成,真正的文件和注冊表是沒有被修改或刪除的。從技術上說DW更接近於傳統HIPS,只是增加了對生成項的追蹤限制功能,所以它是一個比較另類的沙盤。

  有關defensewall的詳細機制的介紹請參考置頂教程帖中相關文章。

  目前比較主流的沙盤有sandboxie, defensewall, safespace, bufferzone, geswall.

 

文章轉自:http://news.sanhaostreet.com/NewsData/2008/3/200834105419516.shtml


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM