自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

緩沖區(qū)溢出實(shí)戰(zhàn)教程系列(一):頭籌緩沖區(qū)溢出小程序

安全 網(wǎng)站安全
在安全圈里我們會(huì)經(jīng)常聽(tīng)到或用到一些0day漏洞,其實(shí)大部分的0day是緩沖區(qū)溢出漏洞演化而來(lái),只要我們了解了緩沖區(qū)溢出原理,假以時(shí)日也可以自己挖掘出0day漏洞。

在安全圈里我們會(huì)經(jīng)常聽(tīng)到或用到一些0day漏洞,在印象里我們都覺(jué)的只有真正的大神才能挖掘到這樣的漏洞,事實(shí)也的確如此。不過(guò)也不要被嚇到,其實(shí)大部分的0day是緩沖區(qū)溢出漏洞演化而來(lái),只要我們了解了緩沖區(qū)溢出原理,假以時(shí)日也可以自己挖掘出0day漏洞。

由于是本系列的開(kāi)篇,所以不給大家講解過(guò)多的原理,今天先讓大家直觀感受一下什么是緩沖區(qū)溢出,讓各位有一個(gè)初步的認(rèn)識(shí),閑話(huà)少敘,讓我們開(kāi)始。

緩沖區(qū)溢出

給大家一段c語(yǔ)言編寫(xiě)的代碼,大家在DEV中編譯執(zhí)行一下:

  1. #include <stdio.h>  
  2. #include <string.h>      
  3.  
  4. char name[] = "kalikingkalikingkaliking" ;      
  5.  
  6. int main()  
  7.  
  8.  char buffer[8];  
  9.  strcpy(buffer, name);  
  10.  printf("%s\n",buffer);  
  11.  getchar();  
  12.  return 0;  

在win7中會(huì)出現(xiàn)以下報(bào)錯(cuò),如圖所示:

有一點(diǎn)c語(yǔ)言基礎(chǔ)的人就不難看出問(wèn)題所在,在程序中我們要把變量name的值拷貝給變量buffer,但我們分配給變量的空間只有8個(gè)字節(jié),而name的長(zhǎng)度遠(yuǎn)遠(yuǎn)大于8個(gè)字節(jié)。這就導(dǎo)致系統(tǒng)原本分配的空間不足而占用了本來(lái)用于存儲(chǔ)程序返回地址的空間,導(dǎo)致程序無(wú)法正常運(yùn)行。

今天先不講原理,先講講分析緩沖區(qū)溢出必備的幾款軟件:

1. Dev-C ++ 是一個(gè)免費(fèi)的全功能集成開(kāi)發(fā)環(huán)境(IDE),分布在GNU通用公共許可證下,用于 CC ++編程。它是用Delphi編寫(xiě)的。

[[258358]]

免費(fèi)下載地址:://sourceforge.net/projects/orwelldevcpp/files/latest/download

2. OllyDbg(以其作者Oleh Yuschuk命名)是一個(gè)強(qiáng)調(diào)二進(jìn)制代碼分析的x86調(diào)試器。

[[258359]]

免費(fèi)下載地址:http://www.ollydbg.de/odbg201.zip

3. IDA (Interactive Disassembler)是反匯編計(jì)算機(jī)軟件,其生成匯編語(yǔ)言源代碼從機(jī)器可執(zhí)行代碼。它支持多種可執(zhí)行文件格式為不同的處理器操作系統(tǒng)。它還可以用作Windows PE,Mac OS X Mach-OLinux ELF可執(zhí)行文件的調(diào)試器。

[[258360]]

免費(fèi)版下載地址:https://www.hex-rays.com/products/ida/support/download_freeware.shtml

接下來(lái)介紹一下三個(gè)軟件的基本使用方法:

在這里只介紹在程序分析過(guò)程中常用的方法,其余的詳細(xì)使用教程請(qǐng)自行Google

1. Dev c++的使用方法:

(1) 新建源代碼文件

由于我們編寫(xiě)的源代碼,只為了了解緩沖區(qū)溢出的原理,所以不必過(guò)于復(fù)雜,我們只需要新建個(gè)源代碼文件就可以了,沒(méi)必要?jiǎng)?chuàng)建項(xiàng)目文件。

把我們上邊的示例代碼拷貝進(jìn)去,保存與其他編輯器無(wú)異,ctrl+s就ok,我習(xí)慣保存成c文件,這個(gè)大家隨意。

(2) 編譯運(yùn)行:

編譯運(yùn)行就很簡(jiǎn)單了,點(diǎn)擊工具欄最上方的運(yùn)行,接著在下拉菜單中找到編譯和運(yùn)行,點(diǎn)擊:

這時(shí)候會(huì)看到文件夾中多了一個(gè)exe文件這就是我們要用來(lái)調(diào)試的程序:

(3) 調(diào)試和查看匯編代碼

這個(gè)是比較重要的一步,因?yàn)樵诰帉?xiě)shellcode的時(shí)候會(huì)用到,這里只講用法,如何提取shellcode以后再講。

首先設(shè)置斷點(diǎn),選擇設(shè)置斷點(diǎn)的行,可以再前面行標(biāo)出單擊也可以按F4,當(dāng)行標(biāo)處出現(xiàn)紅點(diǎn)說(shuō)明斷點(diǎn)設(shè)置成功。

然后開(kāi)啟調(diào)試模式,我們點(diǎn)擊下方選項(xiàng)卡里的調(diào)試,接著點(diǎn)擊調(diào)試按鈕。

接著點(diǎn)擊查看CPU窗口:

我們就會(huì)看到匯編代碼界面:

dev c++幾個(gè)重要用法已經(jīng)說(shuō)完了,還要跟大家說(shuō)一下如何解決安裝使用過(guò)程中經(jīng)常會(huì)出現(xiàn)zlib2.dll文件丟失的問(wèn)題。

解決辦法如下:

a. 下載zlib1.dll:

http://www.pc6.com/softview/SoftView_81060.html

b. 解壓后放到系統(tǒng)目錄中

  • 32位系統(tǒng):放到C:\Windows\System32\(此處為系統(tǒng)目錄)
  • 64位系統(tǒng):放到C:\Windows\SysWOW64\

為了不使篇幅過(guò)長(zhǎng),其余兩個(gè)軟件使用方法我將在下一篇文章中進(jìn)行講解。

 

責(zé)任編輯:趙寧寧 來(lái)源: Freebuf
相關(guān)推薦

2017-01-09 17:03:34

2014-07-30 11:21:46

2018-01-26 14:52:43

2009-09-24 18:16:40

2010-12-27 10:21:21

2022-05-07 08:27:42

緩沖區(qū)溢出堆棧

2010-10-09 14:45:48

2015-03-06 17:09:10

2020-08-10 08:37:32

漏洞安全數(shù)據(jù)

2010-09-08 15:43:18

2011-03-23 12:39:44

2018-11-01 08:31:05

2022-08-09 08:31:40

C -gets函數(shù)漏洞

2011-11-15 16:00:42

2010-09-29 15:10:58

2019-01-11 09:00:00

2011-03-23 11:35:00

2015-09-02 09:01:03

2010-09-29 15:59:04

2009-05-13 09:21:48

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)