導航:首頁 > 編程知識 > 網路編程為什麼要雙緩沖區

網路編程為什麼要雙緩沖區

發布時間:2023-06-04 21:21:03

① 我的畢業設計是一片關於網路滲透技術的論文,求能人給點相關的資料和文獻,本人是毫無頭緒啊。

[計算機科學與技術 ]Web服務緩沖區溢出滲透測試的設計與實現
http://ww2.tabobo.cn/soft/20/233/2007/14452478777.html

摘 要
緩沖區溢出漏洞是安全漏洞中最為常見的一種形式。更為嚴重的是緩沖區溢出漏洞佔了遠程網路攻擊的絕大多數,這種攻擊可以使的一個匿名的Internet用戶有機會獲得一台主機的部分或全部的控制權。由於這類攻擊使任何人都有可能取得主機的控制權,所以它代表了一類極其嚴重的安全威脅。因此,以緩沖區溢出作為一種滲透測試的手段是非常有意義的。
緩沖區溢出是滲透測試中的重要手段。現在大多數緩沖區溢出程序都是基於C/S架構的,所以其使用的便捷性受到一定限制。本課題採用現在最流行的B/S架構,並且最終實現了將緩沖區溢出作為Web服務來檢測遠程主機有無溢出漏洞並提醒用戶盡快修補此漏洞的目的。本文深入介紹了緩沖區溢出的原理,以及三種常見的緩沖區溢出漏洞;實例化地介紹了緩沖區溢出程序的執行流程;shellcode的編寫技術;java網路編程技術。
在對原理研究的基礎之上,本文主要給出了緩沖區溢出作為Web服務的設計和實現過程以及Web服務的其他輔助功能塊(網路安全新聞管理、網路安全論壇)的設計和實現。其中緩沖區溢出模塊和監聽模塊採用JavaBean技術實現,其他部分均採用JSP技術加以實現。
總的來說,本滲透測試平台實現了緩沖區溢出的方便性和廣范性以及安全性,並且可以載入任意的已經編譯成可執行文件的溢出程序。比起傳統的C/S架構下的測試平台前進了一大步。

關鍵字:滲透測試、緩沖區溢出、JSP

目 錄
摘要 1
Abstract 2
第一章 緒論 5
1.1 課題背景 5
1.2滲透測試概述 5
1.2.1滲透測試的的專業性 6
1.2.2 滲透測試的三個階段 6
1.3 論文安排 8
第二章 緩沖區溢出攻擊技術 9
2.1 緩沖區溢出基本原理 9
2.2 常見的緩沖區溢出形式 11
2.2.1 棧溢出 11
2.2.2 堆溢出 12
2.2.3 格式化字元串溢出 13
2.3 緩沖區溢出執行流程 16
2.4 shellcode技術 19
2.4.1 shellcode的編寫語言 19
2.4.2 shellcode本身代碼的重定位 20
2.4.3 shellcode編碼 21
第三章 Java網路編程技術介紹.23
3.1 JavaBean技術 23
3.1.1 JavaBean的概念 23
3.1.2 JavaBean的特性 23
3.1.3 JavaBean的屬性23
3.1.4 JavaBean在JSP頁面里的部署24
3.2 socket網路編程技術 .24
3.3 Java數據流 25
3.3.1 數據流的基本概念 25
3.3.2 數據流的分類介紹 25
第四章 緩沖區溢出滲透測試平台的設計與實現 27
4.1 測試平台框架設計27
4.1.1整體框架設計 27
4.1.2網路安全新聞發布模塊設計 28
4.1.3網路安全論壇模塊設計 29
4.1.4緩沖區溢出滲透測試模塊設計 31
4.2 緩沖區溢出滲透測試編碼實現 34
4.2.1緩沖區溢出漏洞選擇 34
4.2.2溢出模塊實現 34
4.2.3監聽模塊實現 34
4.2.4本地執行命令實現 36
4.2.5緩沖區溢出狀態實現 39
第五章 實驗設計和實驗數據 42
5.1實驗准備 42
5.2 SqlServer2000打sp3補丁前 43
5.2.1實驗數據 43
5.3 SqlServer2000打sp3補丁後 45
5.3.1實驗數據 45
結束語 47
參考文獻 48
致 謝 49

② 網路編程里的同步和非同步有啥區別的

網路編程中,同步的意思是說,進行收發數據,等到數據真正發送出去或者接受到,才返回;而非同步的意思是,可以把數據發送到緩沖區立即返回,而發送成功的消息是通過事件通知的。非同步可以騰出更多的CPU來處理其他事情,所以非同步的方式比較靈活。 線程同步是指,多個線程協同完成一件工作,一個線程需要等待其他線程完成相關的工作,才能接著往下運行。線程同步一般採用互斥體,信號量,消息等方式。

③ java Nio讀寫為什麼是雙向

作者:美團技術團隊
鏈接:https://zhuanlan.hu.com/p/23488863
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。

NIO(Non-blocking I/O,在Java領域,也稱為New I/O),是一種同步非阻塞的I/O模型,也是I/O多路復用的基礎,已經被越來越多地應用到大型應用伺服器,成為解決高並發與大量連接、I/O處理問題的有效方式。

那麼NIO的本質是什麼樣的呢?它是怎樣與事件模型結合來解放線程、提高系統吞吐的呢?

本文會從傳統的阻塞I/O和線程池模型面臨的問題講起,然後對比幾種常見I/O模型,一步步分析NIO怎麼利用事件模型處理I/O,解決線程池瓶頸處理海量連接,包括利用面向事件的方式編寫服務端/客戶端程序。最後延展到一些高級主題,如Reactor與Proactor模型的對比、Selector的喚醒、Buffer的選擇等。

註:本文的代碼都是偽代碼,主要是為了示意,不可用於生產環境。

傳統BIO模型分析

讓我們先回憶一下傳統的伺服器端同步阻塞I/O處理(也就是BIO,Blocking I/O)的經典編程模型:

{
ExecutorService executor = Excutors.newFixedThreadPollExecutor(100);//線程池

ServerSocket serverSocket = new ServerSocket();
serverSocket.bind(8088);
while(!Thread.currentThread.isInturrupted()){//主線程死循環等待新連接到來
Socket socket = serverSocket.accept();
executor.submit(new ConnectIOnHandler(socket));//為新的連接創建新的線程
}

class ConnectIOnHandler extends Thread{
private Socket socket;
public ConnectIOnHandler(Socket socket){
this.socket = socket;
}
public void run(){
while(!Thread.currentThread.isInturrupted()&&!socket.isClosed()){死循環處理讀寫事件
String someThing = socket.read()....//讀取數據
if(someThing!=null){
......//處理數據
socket.write()....//寫數據
}

}
}
}

這是一個經典的每連接每線程的模型,之所以使用多線程,主要原因在於socket.accept()、socket.read()、socket.write()三個主要函數都是同步阻塞的,當一個連接在處理I/O的時候,系統是阻塞的,如果是單線程的話必然就掛死在那裡;但CPU是被釋放出來的,開啟多線程,就可以讓CPU去處理更多的事情。其實這也是所有使用多線程的本質:

閱讀全文

與網路編程為什麼要雙緩沖區相關的資料

熱點內容
紅米4進入最近應用程序 瀏覽:943
word2013官方下載免費版win7 瀏覽:80
在線考試系統資料庫設計表 瀏覽:190
win10訪問不了ftp共享文件夾許可權 瀏覽:1
列印機錯誤709刪除哪個文件 瀏覽:281
java如何編程模擬一個骰子 瀏覽:572
微信賬號文件android 瀏覽:254
linux下庫文件 瀏覽:721
javascript自動全屏 瀏覽:263
視頻文件顯示十幾個小時 瀏覽:276
mediacoder最新版本 瀏覽:80
電腦桌面文件分布軟體 瀏覽:116
迪拜iphone6什麼版本 瀏覽:884
編程的表現有哪些 瀏覽:871
手機上面顯示的文件是什麼 瀏覽:659
哪些網路路由器有API 瀏覽:134
爐石安卓dpi修改器 瀏覽:144
復雜網路邊的權重 瀏覽:891
校園修神錄武器升級 瀏覽:809
蘋果4s怎麼連接4g網路 瀏覽:464

友情鏈接