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

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

發布時間: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去處理更多的事情。其實這也是所有使用多線程的本質:

閱讀全文

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

熱點內容
看車在哪個網站 瀏覽:820
pptv網路電視330 瀏覽:627
word的讀音 瀏覽:713
幾大資料庫 瀏覽:859
mac如何完全退出程序 瀏覽:111
打地鼠游戲編程如何加背景音樂 瀏覽:882
廣州白雲區PLc編程師哪裡有 瀏覽:216
招行app定期如何自動續期 瀏覽:748
access資料庫的類型什麼 瀏覽:828
查看file文件有多少行 瀏覽:468
如何添加電腦文件後綴 瀏覽:790
bin文件轉化 瀏覽:452
vivo的通話記錄在哪個文件夾 瀏覽:143
蘋果手機的視頻文件如何傳輸到電腦 瀏覽:165
哪裡可以下載銀湖網app 瀏覽:990
excel打開文件後彈出空白窗 瀏覽:539
javascript圖片傳送帶 瀏覽:533
ps怎麼把工程文件發給別人 瀏覽:237
寶貝描述模板製作教程 瀏覽:974
win10桌面文件被隱藏 瀏覽:946

友情鏈接