精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Malloc兩種內存獲取方式的區別

安全 終端安全 黑客攻防
既然你正在看這篇文章,那么你就應該知道malloc函數是通過syscall調用從操作系統獲取內存的。 如下圖所示,malloc是通過調用brk或mmap這兩種syscall之一來獲取內存的。

既然你正在看這篇文章,那么你就應該知道malloc函數是通過syscall調用從操作系統獲取內存的。 如下圖所示,malloc是通過調用brk或mmap這兩種syscall之一來獲取內存的。

1.brk方式

brk:brk是通過增設程序斷點來從內核獲取內存(非清零)的。最初堆段的起點(start_brk)和堆段終點(brk)是指向相同的位置的。當ASLR關閉時,start_brk和brk將指向data/bss段(end_data)的末尾。當ASLR打開時,start_brk和brk的值將等于data/bss段(end_data)的結尾加上一個隨機的brk偏移。

正如上面的“進程虛擬內存布局”圖展示的,start_brk是堆段的開始,brk(程序中斷)是堆段的結尾。

例程如下:

  1. /* sbrk and brk example */ 
  2. #include <stdio.h> 
  3. #include <unistd.h> 
  4. #include <sys/types.h> 
  5.  
  6. int main() 
  7.         void *curr_brk, *tmp_brk = NULL
  8.  
  9.         printf("Welcome to sbrk example:%d\n", getpid()); 
  10.  
  11.         /* sbrk(0)返回此進程的斷點位置*/ 
  12.         tmp_brk = curr_brk = sbrk(0); 
  13.         printf("Program Break Location1:%p\n", curr_brk); 
  14.         getchar(); 
  15.  
  16.         /* brk(addr)遞增/遞減程序的斷點位置*/ 
  17.         brk(curr_brk+4096); 
  18.  
  19.         curr_brk = sbrk(0); 
  20.         printf("Program break Location2:%p\n", curr_brk); 
  21.         getchar(); 
  22.  
  23.         brk(tmp_brk); 
  24.  
  25.         curr_brk = sbrk(0); 
  26.         printf("Program Break Location3:%p\n", curr_brk); 
  27.         getchar(); 
  28.  
  29.         return 0; 

輸出分析:在增設程序中斷之前,通過下面的輸出,我們可以看到并沒有堆段。

因此:• start_brk = brk = end_data = 0x804b000

  1. sploitfun@sploitfun-VirtualBox:~/ptmalloc.ppt/syscalls$ ./sbrk  
  2. Welcome to sbrk example:6141 
  3. Program Break Location1:0x804b000 
  4. ... 
  5. sploitfun@sploitfun-VirtualBox:~/ptmalloc.ppt/syscalls$ cat /proc/6141/maps 
  6. ... 
  7. 0804a000-0804b000 rw-p 00001000 08:01 539624     /home/sploitfun/ptmalloc.ppt/syscalls/sbrk 
  8. b7e21000-b7e22000 rw-p 00000000 00:00 0  
  9. ... 
  10. sploitfun@sploitfun-VirtualBox:~/ptmalloc.ppt/syscalls$ 

在增設了程序斷點后:在下面的輸出我們可以觀察到有堆段。

因此:• start_brk = end_data = 0x804b000• brk = 0x804c000

  1. sploitfun@sploitfun-VirtualBox:~/ptmalloc.ppt/syscalls$ ./sbrk  
  2. Welcome to sbrk example:6141 
  3. Program Break Location1:0x804b000 
  4. Program Break Location2:0x804c000 
  5. ... 
  6. sploitfun@sploitfun-VirtualBox:~/ptmalloc.ppt/syscalls$ cat /proc/6141/maps 
  7. ... 
  8. 0804a000-0804b000 rw-p 00001000 08:01 539624     /home/sploitfun/ptmalloc.ppt/syscalls/sbrk 
  9. 0804b000-0804c000 rw-p 00000000 00:00 0          [heap] 
  10. b7e21000-b7e22000 rw-p 00000000 00:00 0  
  11. ... 
  12. sploitfun@sploitfun-VirtualBox:~/ptmalloc.ppt/syscalls$ 

其中0804b000-0804c000是此堆段的虛擬地址范圍

rw-p是Flags(可讀,可寫,不可執行,私有)

00000000是文件偏移 – 由于不存在文件映射,所以這里為零

00:00是主要/次要設備號 – 由于不存在文件映射,所以這里為零

0是Inode編號 – 由于不存在文件映射,所以這里為零

[heap]表示是堆段

2.mmap方式

mmap:malloc使用mmap去創建一個私有的匿名映射段。映射這個私有匿名段的主要目的是為了分配新的內存(已清零),并且這個新的內存將被調用進程獨占使用。

例程:

  1. /* Private anonymous mapping example using mmap syscall */ 
  2. #include <stdio.h> 
  3. #include <sys/mman.h> 
  4. #include <sys/types.h> 
  5. #include <sys/stat.h> 
  6. #include <fcntl.h> 
  7. #include <unistd.h> 
  8. #include <stdlib.h> 
  9.  
  10. void static inline errExit(const char* msg) 
  11.         printf("%s failed. Exiting the process\n", msg); 
  12.         exit(-1); 
  13.  
  14. int main() 
  15.         int ret = -1; 
  16.         printf("Welcome to private anonymous mapping example::PID:%d\n", getpid()); 
  17.         printf("Before mmap\n"); 
  18.         getchar(); 
  19.         char* addr = NULL
  20.         addr = mmap(NULL, (size_t)132*1024, PROT_READ|PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); 
  21.         if (addr == MAP_FAILED) 
  22.                 errExit("mmap"); 
  23.         printf("After mmap\n"); 
  24.         getchar(); 
  25.  
  26.         /* Unmap mapped region. */ 
  27.         ret = munmap(addr, (size_t)132*1024); 
  28.         if(ret == -1) 
  29.                 errExit("munmap"); 
  30.         printf("After munmap\n"); 
  31.         getchar(); 
  32.         return 0; 

輸出分析:

mmap調用前:在下面的輸出中,我們只能看到屬于共享庫libc.so和ld-linux.so的內存映射段

  1. sploitfun@sploitfun-VirtualBox:~/ptmalloc.ppt/syscalls$ cat /proc/6067/maps 
  2. 08048000-08049000 r-xp 00000000 08:01 539691     /home/sploitfun/ptmalloc.ppt/syscalls/mmap 
  3. 08049000-0804a000 r--p 00000000 08:01 539691     /home/sploitfun/ptmalloc.ppt/syscalls/mmap 
  4. 0804a000-0804b000 rw-p 00001000 08:01 539691     /home/sploitfun/ptmalloc.ppt/syscalls/mmap 
  5. b7e21000-b7e22000 rw-p 00000000 00:00 0  
  6. ... 
  7. sploitfun@sploitfun-VirtualBox:~/ptmalloc.ppt/syscalls$ 

mmap調用后:在下面的輸出中,我們可以看到我們的內存映射段(b7e00000 – b7e21000,大小為132KB)與已映射的內存映射段(b7e21000 – b7e22000)拼接在一起了。

  1. sploitfun@sploitfun-VirtualBox:~/ptmalloc.ppt/syscalls$ cat /proc/6067/maps 
  2. 08048000-08049000 r-xp 00000000 08:01 539691     /home/sploitfun/ptmalloc.ppt/syscalls/mmap 
  3. 08049000-0804a000 r--p 00000000 08:01 539691     /home/sploitfun/ptmalloc.ppt/syscalls/mmap 
  4. 0804a000-0804b000 rw-p 00001000 08:01 539691     /home/sploitfun/ptmalloc.ppt/syscalls/mmap 
  5. b7e00000-b7e22000 rw-p 00000000 00:00 0  
  6. ... 
  7. sploitfun@sploitfun-VirtualBox:~/ptmalloc.ppt/syscalls$ 

其中b7e00000-b7e22000是此段的虛擬地址范圍

rw-p是Flags(可讀,可寫,不可執行,私有)

00000000是文件偏移 – 由于不存在文件映射,所以這里為零

00:00是主要/次要設備號 – 由于不存在文件映射,所以這里為零

0是Inode編號 – 由于不存在文件映射,所以這里為零

munmap調用后:在下面的輸出中,我們可以看到我們的內存映射段是未映射的,就是說其相應的內存已經釋放到操作系統了。

  1. sploitfun@sploitfun-VirtualBox:~/ptmalloc.ppt/syscalls$ cat /proc/6067/maps 
  2. 08048000-08049000 r-xp 00000000 08:01 539691     /home/sploitfun/ptmalloc.ppt/syscalls/mmap 
  3. 08049000-0804a000 r--p 00000000 08:01 539691     /home/sploitfun/ptmalloc.ppt/syscalls/mmap 
  4. 0804a000-0804b000 rw-p 00001000 08:01 539691     /home/sploitfun/ptmalloc.ppt/syscalls/mmap 
  5. b7e21000-b7e22000 rw-p 00000000 00:00 0  
  6. ... 
  7. sploitfun@sploitfun-VirtualBox:~/ptmalloc.ppt/syscalls$ 

注意:在我們的示例程序中ASLR是關閉的。

責任編輯:武曉燕 來源: FreeBuf
相關推薦

2024-09-20 11:32:28

.NET內存管理

2010-03-18 10:18:52

python模塊

2009-12-25 16:46:08

2011-03-03 10:26:04

Pureftpd

2021-05-27 10:57:01

TCP定時器網絡協議

2009-06-25 13:43:00

Buffalo AJA

2010-10-21 16:24:18

sql server升

2023-03-29 13:06:36

2010-08-06 09:38:11

Flex讀取XML

2010-09-07 11:09:59

2010-07-27 15:03:37

Flex ArrayC

2011-03-23 11:22:14

oracle dbli

2010-07-14 10:30:26

Perl多線程

2010-05-10 18:19:00

負載平衡技術

2024-02-04 09:24:45

MyBatisSQL語句Spring

2011-04-02 09:48:38

深拷貝

2010-10-20 15:48:56

SQL Server許

2011-06-16 10:02:08

JAVA靜態載入

2021-12-08 10:47:35

RabbitMQ 實現延遲

2010-07-15 14:38:55

Perl eval函數
點贊
收藏

51CTO技術棧公眾號

亚洲国产一区二区三区a毛片| 中文字幕在线中文字幕在线中三区| 精彩视频一区二区| 色综合天天狠天天透天天伊人| 亚洲午夜久久久久久久久| 中文字幕一区久| 亚洲日本丝袜连裤袜办公室| 狠狠色噜噜狠狠色综合久| 欧美日韩 一区二区三区| 91精品一区国产高清在线gif| 日韩精品免费观看| 性生生活大片免费看视频| 毛片在线网站| 亚洲综合成人在线| 亚洲精品免费在线看| 色噜噜在线播放| 国产在线一区二区| 欧美四级电影网| 激情六月天婷婷| √新版天堂资源在线资源| 成+人+亚洲+综合天堂| 国产欧美一区二区三区视频| 青青操免费在线视频| 一区二区三区在线电影| 亚洲无限av看| 91精品小视频| eeuss鲁片一区二区三区| 亚洲精品福利视频网站| 亚洲 日韩 国产第一区| 色吊丝在线永久观看最新版本| 亚洲精品麻豆| 操人视频在线观看欧美| 18啪啪污污免费网站| 三级小说欧洲区亚洲区| 欧美mv和日韩mv的网站| 黄色一级片免费的| 色诱色偷偷久久综合| 中文字幕在线不卡一区 | 久久国产精品波多野结衣| 极品美女一区二区三区| 日韩国产精品亚洲а∨天堂免| 久久久久久久久久久影视| 精品亚洲a∨| 欧美午夜不卡在线观看免费| 欧美日韩一区二区在线免费观看 | 欧美激情偷拍自拍| 欧美日韩国产三级| 国内精品国产三级国产99| 在线观看精品一区二区三区| 久久九九国产精品| 欧美精品国产精品久久久| 中文字幕永久在线观看| 天堂一区二区在线免费观看| 日本精品在线视频| 免费精品在线视频| 日韩影院二区| 精品国内亚洲在观看18黄| 青青青视频在线播放| 成人在线免费观看91| 中文字幕国内精品| 污污视频网站在线免费观看| 91九色精品| 亚洲精品国产电影| 亚洲av成人精品一区二区三区| 一区二区三区四区高清视频| 精品区一区二区| 中文字幕第3页| 日本中文字幕在线一区| 亚洲欧美日韩爽爽影院| 亚洲一级黄色录像| 亚洲国产日韩欧美在线| 欧美日韩福利在线观看| 国产网友自拍视频| 玖玖精品视频| 成人黄色在线免费| 国内精品国产成人国产三级| 日韩不卡一区二区| 国产精品久久久久久av| 国产精品无码在线播放| 成人听书哪个软件好| 久久精品日韩精品| 2021av在线| 一区二区成人在线观看| 看av免费毛片手机播放| 黄污视频在线观看| 亚洲欧洲成人av每日更新| 玖玖精品在线视频| 国产爆初菊在线观看免费视频网站| 国产精品少妇自拍| 妺妺窝人体色www看人体| 婷婷电影在线观看| 欧美日韩高清影院| 国产高清成人久久| 97久久夜色精品国产| 久久久久久久久久久av| 欧美日韩午夜视频| 国产农村妇女毛片精品久久莱园子 | 国产亚洲精品精品精品| 国产一在线精品一区在线观看| 4k岛国日韩精品**专区| 999国产精品视频免费| 91麻豆精品在线观看| 日本精品免费视频| 欧美成人a交片免费看| 日韩一本二本av| 九九九视频在线观看| 1024成人| 亚洲一区亚洲二区亚洲三区| 亚洲怡红院av| 99久久精品免费看| 糖心vlog在线免费观看| 久久r热视频| 欧美精品一区二区蜜臀亚洲| 欧美日韩国产一二三区| 欧美亚洲一区| 肥熟一91porny丨九色丨| 在线视频婷婷| 色88888久久久久久影院按摩| www.四虎精品| 影视一区二区| 国产精品综合不卡av| 香蕉视频成人在线| 亚洲一区中文在线| 一区二区三区四区毛片| 俺要去色综合狠狠| 欧美中文字幕在线播放| 免费国产精品视频| 亚洲综合色噜噜狠狠| 91丝袜超薄交口足| 欧美残忍xxxx极端| 国产日韩欧美在线视频观看| 国产一级片在线| 色天天综合久久久久综合片| 国产一级二级在线观看| 亚洲午夜精品久久久久久app| 成人女保姆的销魂服务| 免费黄色网页在线观看| 欧美视频一区在线| 亚洲色图 激情小说| 日韩av中文在线观看| 欧美精品二区三区四区免费看视频 | 国产色综合视频| 亚洲免费电影在线| 欧美视频亚洲图片| 欧美影院一区| 97免费资源站| gogo久久| 日韩成人中文电影| 国产污视频网站| 麻豆精品久久精品色综合| 青青草原成人| 亚洲承认视频| 中文字幕日韩精品有码视频| 伊人久久中文字幕| 国产精品免费丝袜| 一个色综合久久| 午夜久久黄色| 国产在线精品二区| 制服丝袜专区在线| 在线观看精品国产视频| 一本色道久久综合亚洲| 亚洲色欲色欲www在线观看| 日本中文字幕二区| 国一区二区在线观看| 国产日韩一区二区| 久九九久频精品短视频| 中文字幕久热精品视频在线| 国产免费视频一区二区三区| 亚洲国产cao| 亚洲黄色在线网站| 日本视频中文字幕一区二区三区| 亚洲精品成人三区| 午夜电影一区| 奇米影视亚洲狠狠色| avtt亚洲| 欧美成人高清电影在线| 黄色在线免费观看| 国产精品国产三级国产专播品爱网| 亚洲一二三av| 一区二区三区福利| 亚洲欧洲精品一区二区三区波多野1战4 | 日韩av有码| 99se婷婷在线视频观看| 黑人巨大精品欧美一区二区桃花岛| 色偷偷噜噜噜亚洲男人的天堂| www.国产三级| 色噜噜狠狠成人网p站| 91嫩草丨国产丨精品| 99re这里只有精品首页| 奇米视频7777| 男女精品视频| a级片一区二区| 国产精品美女久久久久久不卡| 成人福利网站在线观看| 多野结衣av一区| 最新日韩中文字幕| 香港三日本三级少妇66| 正在播放亚洲一区| 999视频在线| 亚洲高清不卡在线观看| 精品在线观看一区| 97se亚洲国产综合自在线观| 国产一级片自拍| 久久狠狠婷婷| 欧美视频在线观看网站| 8848成人影院| 国产精品免费视频久久久| 九一国产在线| 日韩精品一区在线观看| 中文字幕无线码一区| 午夜国产精品影院在线观看| 国产精品精品软件男同| 国产色产综合产在线视频| 国产精品成人99一区无码| 国内精品写真在线观看| 黄色一级大片在线观看| 99精品视频免费观看| 免费观看亚洲视频| 亚洲精品tv久久久久久久久久| 日韩电影大全在线观看| 少妇一区二区三区| 国产在线欧美日韩| av动漫精品一区二区| 亚洲伊人一本大道中文字幕| 成人免费在线观看视频| 日韩av黄色在线观看| 黄色在线观看www| 欧美黄色成人网| 91小视频xxxx网站在线| 欧美mv日韩mv国产网站| 国产伦精品一区二区三区视频痴汉 | 国产视频一区二| 国产精品精品视频| 亚洲色图官网| 欧美诱惑福利视频| 免费在线小视频| 91爱爱小视频k| 国产香蕉视频在线看| 亚洲美女精品久久| 日本中文字幕一区二区有码在线| 亚洲第一福利在线观看| 国产成人三级在线观看视频| 精品国产一区久久| 免费观看黄色一级视频| 亚洲精品xxxx| 天天操天天干天天| 亚洲美女性生活视频| 欧美视频免费一区二区三区| 亚洲精品一区中文字幕乱码| 一级爱爱免费视频| 欧美色手机在线观看| 国产一级视频在线播放| 一区二区免费看| 精品少妇久久久| 亚洲成av人片在线| 日韩av片在线播放| 欧美日韩在线一区| www.日韩一区| 欧美日韩精品高清| 99热精品在线播放| 精品国产91久久久久久久妲己| 日本波多野结衣在线| 亚洲国产成人久久综合| 色在线免费视频| 中文字幕日韩av| 成年人网站在线| 韩国欧美亚洲国产| 国产超碰精品| 91免费看国产| 国产乱人伦丫前精品视频| 欧美高清一区二区| 色婷婷色综合| 国产精品久久久久9999爆乳| 日韩综合精品| 中国老女人av| 在线亚洲精品| 国产福利在线免费| 国产成人精品亚洲777人妖| 日本护士做爰视频| 国产精品丝袜91| 91精品人妻一区二区| 亚洲国产精品国自产拍av| av在线免费播放网址| 亚洲综合精品自拍| 自拍偷拍校园春色| 欧美一区二区三区成人| 亚洲色图欧美视频| 日韩在线资源网| 91黄页在线观看| 国产精品久久一区| 999久久久精品一区二区| 欧美日韩成人一区二区三区| 亚洲影视一区| 欧洲av无码放荡人妇网站| 韩国欧美国产一区| 免费看黄色aaaaaa 片| 亚洲欧美综合色| 亚洲熟女综合色一区二区三区| 678五月天丁香亚洲综合网| 婷婷综合激情网| 久久大大胆人体| 88xx成人永久免费观看| 成人蜜桃视频| 午夜精品久久久久久久四虎美女版| 每日在线更新av| 国产成人av福利| 欧美88888| 一本一本久久a久久精品综合麻豆| 亚洲av无码乱码在线观看性色| 一区二区三区久久精品| 91www在线| 亚洲va电影大全| 成人看的视频| 91av在线免费播放| 99视频精品免费视频| 欧美极品视频在线观看| 制服丝袜亚洲色图| 永久av在线| 国产精品18久久久久久首页狼 | 成人美女黄网站| 国产伦精品一区| 中文字幕一区二区精品区| 亚洲欧美日韩一级| 久久精品综合网| 精品国产xxx| 精品亚洲男同gayvideo网站| 国产区美女在线| 91免费在线观看网站| 91久久高清国语自产拍| 中文字幕亚洲乱码| 中文字幕av不卡| 波多野结衣一二区| 亚洲欧美日韩精品久久奇米色影视 | 国产精品久久影院| 亚洲午夜无码久久久久| 亚洲人精品午夜在线观看| 亚洲福利影院| 噜噜噜噜噜久久久久久91| 亚洲欧美视频| a级在线免费观看| 日本久久电影网| 91网页在线观看| 国产日韩欧美视频| 雨宫琴音一区二区三区| 久久久久亚洲av无码麻豆| 99久久国产综合精品色伊 | 亚洲成色精品| 中国极品少妇videossexhd| 亚洲成a人片在线不卡一二三区| 丰满人妻一区二区三区免费视频| 欧美国产日韩一区| heyzo欧美激情| 亚洲熟妇av一区二区三区漫画| 97精品电影院| 波多野结衣日韩| 按摩亚洲人久久| 亚洲专区**| 成年人午夜视频在线观看 | 4438亚洲最大| 日本伦理一区二区| 狠狠色噜噜狠狠狠狠色吗综合| 久久国产免费| 国产3级在线观看| 日韩精品一区二区三区中文精品| 国产经典三级在线| 老牛影视免费一区二区| 蜜臀久久久久久久| 中国毛片直接看| 亚洲成人性视频| 456亚洲精品成人影院| 亚洲人成网站在线观看播放| 久久99精品国产91久久来源| 好吊色视频在线观看| 日韩h在线观看| 狠狠久久综合| bt天堂新版中文在线地址| 久久久久久久国产精品影院| 中文字幕久久久久| 久99久在线视频| 在线日本制服中文欧美| 精品亚洲视频在线| 午夜日韩在线观看| 在线日本视频| 国产视频99| 久久99九九99精品| 日韩免费不卡视频| 精品国内产的精品视频在线观看| 精品久久对白| 黄色手机在线视频| 亚洲a一区二区| 日本中文字幕伦在线观看| 国产高清精品一区| 秋霞av亚洲一区二区三| 久久久久成人精品无码| 亚洲午夜av久久乱码| 一区二区三区四区高清视频 | 精品久久久无码人妻字幂| 久久青草欧美一区二区三区| 国产黄色小视频在线观看| 国产成人综合精品|